diff options
Diffstat (limited to 'arm9/lib/include/GX_struct_2d.h')
-rw-r--r-- | arm9/lib/include/GX_struct_2d.h | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/arm9/lib/include/GX_struct_2d.h b/arm9/lib/include/GX_struct_2d.h new file mode 100644 index 00000000..3b544927 --- /dev/null +++ b/arm9/lib/include/GX_struct_2d.h @@ -0,0 +1,243 @@ +#ifndef GUARD_GX_STRUCT_2D_H +#define GUARD_GX_STRUCT_2D_H + +typedef u16 GXScrFmtText; +#define GX_SCRFMT_TEXT_CHARNAME_SHIFT (0) +#define GX_SCRFMT_TEXT_CHARNAME_MASK (0x03ff) +#define GX_SCRFMT_TEXT_HF_SHIFT (10) +#define GX_SCRFMT_TEXT_HF_MASK (0x0400) +#define GX_SCRFMT_TEXT_VF_SHIFT (11) +#define GX_SCRFMT_TEXT_VF_MASK (0x0800) +#define GX_SCRFMT_TEXT_COLORPLTT_SHIFT (12) +#define GX_SCRFMT_TEXT_COLORPLTT_MASK (0xf000) +#define GX_SCRFMT_TEXT(pltt, vf, hf, name) \ + ((u16)(((name) << GX_SCRFMT_TEXT_CHARNAME_SHIFT) | \ + ((hf) << GX_SCRFMT_TEXT_HF_SHIFT) | \ + ((vf) << GX_SCRFMT_TEXT_VF_SHIFT) | \ + ((pltt) << GX_SCRFMT_TEXT_COLORPLTT_SHIFT))) + +typedef u8 GXScrFmtAffine; +#define GX_SCRFMT_AFFINE_CHARNAME_SHIFT (0) +#define GX_SCRFMT_AFFINE_CHARNAME_MASK (0xff) + +typedef u8 GXScrFmt256Bmp; +#define GX_SCRFMT_256BMP_COLORNO_SHIFT (0) +#define GX_SCRFMT_256BMP_COLORNO_MASK (0xff) + +typedef union +{ + u32 data32[8]; + u16 data16[16]; + u8 data8[32]; +} +GXCharFmt16; + +typedef union +{ + u32 data32[16]; + u16 data16[32]; + u8 data8[64]; +} +GXCharFmt256; + +typedef union +{ + u16 data16[16]; + u32 data32[8]; + GXRgb rgb[16]; +} +GXBGPltt16; + +typedef GXBGPltt16 GXOBJPltt16; + +typedef union +{ + u16 data16[256]; + u32 data32[128]; + GXRgb rgb[256]; +} +GXBGPltt256; + +typedef GXBGPltt256 GXOBJPltt256; + +typedef union +{ + u16 data16[32 * 32]; + u32 data32[32 * 32 / 2]; + GXScrFmtText scr[32][32]; +} +GXScrText32x32; + +typedef union +{ + u16 data16[64 * 32]; + u32 data32[64 * 32 / 2]; + GXScrFmtText scr[64][32]; +} +GXScrText64x32; + +typedef union +{ + // 4K bytes + u16 data16[32 * 64]; + u32 data32[32 * 64 / 2]; + GXScrFmtText scr[32][64]; +} +GXScrText32x64; + +typedef union +{ + u16 data16[64 * 64]; + u32 data32[64 * 64 / 2]; + GXScrFmtText scr[64][64]; +} +GXScrText64x64; + +typedef union +{ + u8 data8[16 * 16]; + u32 data32[16 * 16 / 4]; + GXScrFmtAffine scr[16][16]; +} +GXScrAffine16x16; + +typedef union +{ + u8 data8[32 * 32]; + u32 data32[32 * 32 / 4]; + GXScrFmtAffine scr[32][32]; +} +GXScrAffine32x32; + +typedef union +{ + u8 data8[64 * 64]; + u32 data32[64 * 64 / 4]; + GXScrFmtAffine scr[64][64]; +} +GXScrAffine64x64; + +typedef union +{ + u8 data8[128 * 128]; + u32 data32[128 * 128 / 4]; + GXScrFmtAffine scr[128][128]; +} +GXScrAffine128x128; + +typedef union +{ + u8 data8[128 * 128]; + u32 data32[128 * 128 / 4]; + GXScrFmt256Bmp scr[128][128]; +} +GXScr256Bmp128x128; + +typedef union +{ + u8 data8[256 * 256]; + u32 data32[256 * 256 / 4]; + GXScrFmt256Bmp scr[256][256]; +} +GXScr256Bmp256x256; + +typedef union +{ + u8 data8[512 * 256]; + u32 data32[512 * 256 / 4]; + GXScrFmt256Bmp scr[512][256]; +} +GXScr256Bmp512x256; + +typedef union +{ + u8 data8[512 * 512]; + u32 data32[512 * 512 / 4]; + GXScrFmt256Bmp scr[512][512]; +} +GXScr256Bmp512x512; + +typedef union +{ + u16 data16[128 * 128]; + u32 data32[128 * 128 / 2]; + GXRgba scr[128][128]; +} +GXScrDCBmp128x128; + +typedef union +{ + u16 data16[256 * 256]; + u32 data32[256 * 256 / 2]; + GXRgba scr[256][256]; +} +GXScrDCBmp256x256; + +typedef union +{ + u16 data16[512 * 256]; + u32 data32[512 * 256 / 2]; + GXRgba scr[512][256]; +} +GXScrDCBmp512x256; + +typedef union +{ + u16 data16[512 * 512]; + u32 data32[512 * 512 / 2]; + GXRgba scr[512][512]; +} +GXScrDCBmp512x512; + +typedef struct +{ + GXCharFmt16 ch[1024]; +} +GXCharBGText16; + +typedef struct +{ + GXCharFmt256 ch[1024]; +} +GXCharBGText256; + +typedef struct +{ + GXCharFmt256 ch[256]; +} +GXCharBGAffine256; + +typedef union +{ + GXBGPltt256 pltt256; + GXBGPltt16 pltt16[16]; +} +GXBGStdPlttData; + +typedef union +{ + GXOBJPltt256 pltt256; + GXOBJPltt16 pltt16[16]; +} +GXOBJStdPlttData; + +typedef struct +{ + GXBGStdPlttData bgPltt; + GXOBJStdPlttData objPltt; +} +GXStdPlttData; + +typedef struct +{ + GXBGPltt256 pltt256[16]; +} +GXBGExtPlttData; + +typedef struct +{ + GXOBJPltt256 pltt256[16]; +} +GXOBJExtPlttData; + +#endif //GUARD_GX_STRUCT_2D_H |