#pragma once #include #include "Runtime/RetroTypes.hpp" namespace metaforce { enum class EPaletteFormat { IA8 = 0x0, RGB565 = 0x1, RGB5A3 = 0x2, }; class CGraphicsPalette { friend class CTextRenderBuffer; EPaletteFormat x0_fmt; u32 x4_; int x8_entryCount; std::unique_ptr xc_entries; /* x10_ GXTlutObj here */ bool x1c_ = false; public: explicit CGraphicsPalette(EPaletteFormat fmt, int count) : x0_fmt(fmt), x8_entryCount(count), xc_entries(new u16[count]) {} explicit CGraphicsPalette(CInputStream& in) : x0_fmt(EPaletteFormat(in.readUint32Big())) { u16 w = in.readUint16Big(); u16 h = in.readUint16Big(); x8_entryCount = w * h; /* GX Tlut init here */ } }; } // namespace metaforce