mirror of
https://github.com/vcmi/vcmi.git
synced 2025-07-17 01:32:21 +02:00
47 lines
775 B
C++
47 lines
775 B
C++
#pragma once
|
|
|
|
namespace Gfx
|
|
{
|
|
|
|
#pragma pack(1)
|
|
|
|
typedef ui8 ColorRGB[3]; // 24bit RGB color
|
|
|
|
union ColorRGBA // 32bit RGBA color
|
|
{
|
|
ui32 color32;
|
|
ui8 arr[4];
|
|
struct {
|
|
ui8 R,G,B,A;
|
|
} comp;
|
|
|
|
inline ColorRGBA() {};
|
|
inline ColorRGBA(ui32 c) : color32(c) {};
|
|
};
|
|
|
|
#pragma pack()
|
|
|
|
|
|
class CPaletteRGBA
|
|
{
|
|
friend class CPalettedAnimation;
|
|
|
|
ui32 texHandle; // OpenGL texture handle
|
|
bool shared;
|
|
ColorRGBA buffer[256];
|
|
|
|
~CPaletteRGBA();
|
|
|
|
public:
|
|
CPaletteRGBA(const ColorRGBA palBuff[]); // 32bit RGBA source
|
|
CPaletteRGBA(const ColorRGB palBuff[], int alphaMode, bool shr=false); // 24-bit RGB source
|
|
|
|
void Unlink();
|
|
|
|
inline ui32 getTexHandle() { return texHandle; };
|
|
void loadToVideoRAM();
|
|
void unloadFromVideoRAM();
|
|
};
|
|
|
|
}
|