tp/include/JSystem/JUtility/JUTPalette.h

52 lines
1.2 KiB
C++

#ifndef JUTPALETTE_H
#define JUTPALETTE_H
#include <dolphin/gx.h>
enum JUTTransparency { UNK0, UNK1 };
/**
* @ingroup jsystem-jutility
*
*/
struct ResTLUT {
u8 format;
u8 transparency;
u16 numColors;
};
/**
* @ingroup jsystem-jutility
*
*/
class JUTPalette {
public:
JUTPalette(GXTlut p1, GXTlutFmt p2, JUTTransparency p3, u16 p4, void* p5) {
this->storeTLUT(p1, p2, p3, p4, p5);
}
JUTPalette(GXTlut tlutNo, ResTLUT* p_tlutRes) {
storeTLUT(tlutNo, p_tlutRes);
}
void storeTLUT(GXTlut, ResTLUT*);
void storeTLUT(GXTlut, GXTlutFmt, JUTTransparency, u16, void*);
bool load();
GXTlut getTlutName() const { return GXTlut(mTlutName); }
GXTlutFmt getFormat() const { return GXTlutFmt(mFormat); }
JUTTransparency getTransparency() const { return JUTTransparency(mTransparency); }
u16 getNumColors() const { return mNumColors; }
ResTLUT* getColorTable() const { return mColorTable; }
private:
/* 0x00 */ GXTlutObj mTlutObj;
/* 0x0C */ u8 mTlutName;
/* 0x0D */ u8 mFormat;
/* 0x10 */ ResTLUT* mColorTable;
/* 0x14 */ u16 mNumColors;
/* 0x16 */ u8 mTransparency;
};
#endif /* JUTPALETTE_H */