mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-19 13:32:59 +01:00
65 lines
1.1 KiB
C++
65 lines
1.1 KiB
C++
/*
|
|
* Copyright 2011-2012 Branimir Karadzic. All rights reserved.
|
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
|
*/
|
|
|
|
#ifndef __DDS_H__
|
|
#define __DDS_H__
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace bgfx
|
|
{
|
|
struct TextureFormat
|
|
{
|
|
enum Enum
|
|
{
|
|
Dxt1,
|
|
Dxt3,
|
|
Dxt5,
|
|
Unknown, // compressed formats are above
|
|
L8,
|
|
XRGB8,
|
|
ARGB8,
|
|
ABGR16,
|
|
|
|
Count
|
|
};
|
|
};
|
|
|
|
struct Dds
|
|
{
|
|
TextureFormat::Enum m_type;
|
|
uint32_t m_width;
|
|
uint32_t m_height;
|
|
uint32_t m_depth;
|
|
uint8_t m_blockSize;
|
|
uint8_t m_numMips;
|
|
uint8_t m_bpp;
|
|
bool m_hasAlpha;
|
|
bool m_cubeMap;
|
|
};
|
|
|
|
struct Mip
|
|
{
|
|
uint32_t m_width;
|
|
uint32_t m_height;
|
|
uint32_t m_blockSize;
|
|
uint32_t m_size;
|
|
uint8_t m_bpp;
|
|
uint8_t m_type;
|
|
bool m_hasAlpha;
|
|
const uint8_t* m_data;
|
|
|
|
uint32_t getDecodedSize() const;
|
|
void decode(uint8_t* _dst);
|
|
};
|
|
|
|
bool isDds(const Memory* _mem);
|
|
bool parseDds(Dds& _dds, const Memory* _mem);
|
|
bool getRawImageData(const Dds& _dds, uint8_t _side, uint8_t _index, const Memory* _mem, Mip& _mip);
|
|
|
|
} // namespace bgfx
|
|
|
|
#endif // __DDS_H__
|