This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
bgfx/src/image.h

110 lines
2.6 KiB
C
Raw Normal View History

/*
2015-01-01 15:04:46 -08:00
* Copyright 2011-2015 Branimir Karadzic. All rights reserved.
* License: http://www.opensource.org/licenses/BSD-2-Clause
*/
#ifndef BGFX_IMAGE_H_HEADER_GUARD
#define BGFX_IMAGE_H_HEADER_GUARD
#include <stdint.h>
namespace bgfx
{
struct ImageContainer
{
void* m_data;
uint32_t m_size;
uint32_t m_offset;
uint32_t m_width;
uint32_t m_height;
uint32_t m_depth;
uint8_t m_format;
uint8_t m_numMips;
bool m_hasAlpha;
bool m_cubeMap;
bool m_ktx;
2015-05-02 22:57:42 -04:00
bool m_srgb;
};
struct ImageMip
{
uint32_t m_width;
uint32_t m_height;
uint32_t m_blockSize;
uint32_t m_size;
uint8_t m_bpp;
uint8_t m_format;
bool m_hasAlpha;
const uint8_t* m_data;
};
2014-03-01 19:27:34 -08:00
struct ImageBlockInfo
{
uint8_t bitsPerPixel;
uint8_t blockWidth;
uint8_t blockHeight;
uint8_t blockSize;
uint8_t minBlockX;
uint8_t minBlockY;
uint8_t depthBits;
uint8_t stencilBits;
2014-03-01 19:27:34 -08:00
};
2014-01-12 13:51:26 -08:00
///
bool isCompressed(TextureFormat::Enum _format);
///
bool isColor(TextureFormat::Enum _format);
///
bool isDepth(TextureFormat::Enum _format);
2013-09-05 21:41:42 -07:00
///
2014-03-01 19:27:34 -08:00
uint8_t getBitsPerPixel(TextureFormat::Enum _format);
///
const ImageBlockInfo& getBlockInfo(TextureFormat::Enum _format);
2013-09-05 21:41:42 -07:00
2014-02-05 23:07:11 -08:00
///
const char* getName(TextureFormat::Enum _format);
///
void imageSolid(uint32_t _width, uint32_t _height, uint32_t _solid, void* _dst);
///
2013-09-03 20:13:07 -07:00
void imageCheckerboard(uint32_t _width, uint32_t _height, uint32_t _step, uint32_t _0, uint32_t _1, void* _dst);
///
2013-11-08 21:07:35 -08:00
void imageRgba8Downsample2x2(uint32_t _width, uint32_t _height, uint32_t _srcPitch, const void* _src, void* _dst);
///
2013-11-08 21:07:35 -08:00
void imageSwizzleBgra8(uint32_t _width, uint32_t _height, uint32_t _srcPitch, const void* _src, void* _dst);
2015-06-20 14:27:59 -07:00
///
void imageCopy(uint32_t _height, uint32_t _srcPitch, const void* _src, uint32_t _dstPitch, void* _dst);
///
2013-11-08 21:07:35 -08:00
void imageCopy(uint32_t _width, uint32_t _height, uint32_t _bpp, uint32_t _srcPitch, const void* _src, void* _dst);
///
void imageWriteTga(bx::WriterI* _writer, uint32_t _width, uint32_t _height, uint32_t _srcPitch, const void* _src, bool _grayscale, bool _yflip);
///
bool imageParse(ImageContainer& _imageContainer, bx::ReaderSeekerI* _reader);
///
bool imageParse(ImageContainer& _imageContainer, const void* _data, uint32_t _size);
///
void imageDecodeToBgra8(uint8_t* _dst, const uint8_t* _src, uint32_t _width, uint32_t _height, uint32_t _pitch, uint8_t _type);
///
void imageDecodeToRgba8(uint8_t* _dst, const uint8_t* _src, uint32_t _width, uint32_t _height, uint32_t _pitch, uint8_t _type);
///
bool imageGetRawData(const ImageContainer& _dds, uint8_t _side, uint8_t _index, const void* _data, uint32_t _size, ImageMip& _mip);
} // namespace bgfx
#endif // BGFX_IMAGE_H_HEADER_GUARD