pokediamond/arm9/lib/include/GX_struct_2d.h

244 lines
4.3 KiB
C

#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