2013-09-02 16:22:53 -07:00
/*
* Copyright 2011 - 2013 Branimir Karadzic . All rights reserved .
* License : http : //www.opensource.org/licenses/BSD-2-Clause
*/
# ifndef __IMAGE_H__
# define __IMAGE_H__
# include <stdint.h>
namespace bgfx
{
struct ImageContainer
{
2013-09-08 21:03:03 -07:00
void * m_data ;
uint32_t m_size ;
2013-09-02 16:22:53 -07:00
uint32_t m_offset ;
uint32_t m_width ;
uint32_t m_height ;
uint32_t m_depth ;
2013-09-08 21:03:03 -07:00
uint8_t m_format ;
2013-09-02 16:22:53 -07:00
uint8_t m_blockSize ;
uint8_t m_numMips ;
uint8_t m_bpp ;
bool m_hasAlpha ;
bool m_cubeMap ;
bool m_ktx ;
} ;
2013-09-08 21:03:03 -07:00
struct ImageMip
2013-09-02 16:22:53 -07:00
{
uint32_t m_width ;
uint32_t m_height ;
uint32_t m_blockSize ;
uint32_t m_size ;
uint8_t m_bpp ;
2013-09-08 21:03:03 -07:00
uint8_t m_format ;
2013-09-02 16:22:53 -07:00
bool m_hasAlpha ;
const uint8_t * m_data ;
} ;
2013-09-05 21:41:42 -07:00
///
uint32_t getBitsPerPixel ( TextureFormat : : Enum _format ) ;
2013-09-02 16:22:53 -07:00
///
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-09-02 16:22:53 -07:00
///
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-09-02 16:22:53 -07:00
///
2013-11-08 21:07:35 -08:00
void imageSwizzleBgra8 ( uint32_t _width , uint32_t _height , uint32_t _srcPitch , const void * _src , void * _dst ) ;
2013-09-02 16:22:53 -07:00
2013-11-08 20:53:23 -08:00
///
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 ) ;
2013-11-08 20:53:23 -08:00
2013-09-02 16:22:53 -07:00
///
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 ) ;
///
2013-09-08 21:03:03 -07:00
bool imageParse ( ImageContainer & _imageContainer , const void * _data , uint32_t _size ) ;
///
2013-11-08 21:07:35 -08:00
void imageDecodeToBgra8 ( uint8_t * _dst , const uint8_t * _src , uint32_t _width , uint32_t _height , uint32_t _srcPitch , uint8_t _type ) ;
2013-09-02 16:22:53 -07:00
///
2013-09-08 21:03:03 -07:00
bool imageGetRawData ( const ImageContainer & _dds , uint8_t _side , uint8_t _index , const void * _data , uint32_t _size , ImageMip & _mip ) ;
2013-09-02 16:22:53 -07:00
} // namespace bgfx
# endif // __IMAGE_H__