ISXMr/libs/isxdk/include/ISUI/LGUITexture.h

76 lines
1.4 KiB
C++

#pragma once
#define TR_TEXTURERECT 1
#define TR_ALPHA 2
#define TR_COLORMASK 4
#define TR_NOSIZE 8
#define TR_TEXTURETRIANGLE 16
struct LGUITexturedRect
{
public:
class LGUITexture *pTexture;
RECT Rect;
DWORD Flags;
RECT TextureRect;
unsigned char Alpha;
unsigned int ColorMask;
unsigned char Orientation;
};
struct LGUITriangle
{
POINT2F Point[3];
};
struct LGUITexturedTriangle
{
public:
class LGUITexture *pTexture;
LGUITriangle Triangle;
DWORD Flags;
LGUITriangle TextureTriangle;
unsigned char Alpha;
unsigned int ColorMask;
unsigned char Orientation;
};
class LGUITexture
{
public:
LGUITexture(const char *p_Name);
LGUITexture(const LGUITexture&);
~LGUITexture();
void CopyFrom(const LGUITexture &other);
LGUI_API static LGUITexture *New(const char *p_Name);
LGUI_API static LGUITexture *New(const LGUITexture&);
LGUI_API void Delete();
LGUI_API bool Prepare();
LGUI_API bool GetSize();
LGUI_API bool FromXML(class XMLNode *pXML);
LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate);
LGUI_API void Set(const char *Filename, unsigned int ColorKey=0);
LGUI_API void SetFrom(const LGUITexture& other);
char *Name;
unsigned int TextureID;
unsigned int ColorKey;
DWORD Flags;
RECT TextureRect;
LGUITriangle TextureTriangle;
float Alpha;
unsigned int ColorMask;
unsigned int Border;
unsigned char Orientation;
};