summaryrefslogtreecommitdiff
path: root/include/dolphin/gx/GXStruct.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dolphin/gx/GXStruct.h')
-rw-r--r--include/dolphin/gx/GXStruct.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/include/dolphin/gx/GXStruct.h b/include/dolphin/gx/GXStruct.h
new file mode 100644
index 0000000..eebc736
--- /dev/null
+++ b/include/dolphin/gx/GXStruct.h
@@ -0,0 +1,108 @@
+#ifndef _DOLPHIN_GXSTRUCT
+#define _DOLPHIN_GXSTRUCT
+
+#include <dolphin/gx/GXEnum.h>
+#include <dolphin/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define VI_TVMODE(format, interlace) (((format) << 2) + (interlace))
+
+#define VI_INTERLACE 0
+#define VI_NON_INTERLACE 1
+#define VI_PROGRESSIVE 2
+
+#define VI_NTSC 0
+#define VI_PAL 1
+#define VI_MPAL 2
+#define VI_DEBUG 3
+#define VI_DEBUG_PAL 4
+#define VI_EURGB60 5
+
+typedef enum {
+ VI_TVMODE_NTSC_INT = VI_TVMODE(VI_NTSC, VI_INTERLACE),
+ VI_TVMODE_NTSC_DS = VI_TVMODE(VI_NTSC, VI_NON_INTERLACE),
+ VI_TVMODE_NTSC_PROG = VI_TVMODE(VI_NTSC, VI_PROGRESSIVE),
+ VI_TVMODE_PAL_INT = VI_TVMODE(VI_PAL, VI_INTERLACE),
+ VI_TVMODE_PAL_DS = VI_TVMODE(VI_PAL, VI_NON_INTERLACE),
+ VI_TVMODE_EURGB60_INT = VI_TVMODE(VI_EURGB60, VI_INTERLACE),
+ VI_TVMODE_EURGB60_DS = VI_TVMODE(VI_EURGB60, VI_NON_INTERLACE),
+ VI_TVMODE_MPAL_INT = VI_TVMODE(VI_MPAL, VI_INTERLACE),
+ VI_TVMODE_MPAL_DS = VI_TVMODE(VI_MPAL, VI_NON_INTERLACE),
+ VI_TVMODE_DEBUG_INT = VI_TVMODE(VI_DEBUG, VI_INTERLACE),
+ VI_TVMODE_DEBUG_PAL_INT = VI_TVMODE(VI_DEBUG_PAL, VI_INTERLACE),
+ VI_TVMODE_DEBUG_PAL_DS = VI_TVMODE(VI_DEBUG_PAL, VI_NON_INTERLACE)
+} VITVMode;
+
+typedef enum { VI_XFBMODE_SF = 0, VI_XFBMODE_DF } VIXFBMode;
+
+typedef struct _GXRenderModeObj {
+ /*0x00*/ VITVMode viTVmode;
+ /*0x04*/ u16 fbWidth;
+ /*0x06*/ u16 efbHeight;
+ /*0x08*/ u16 xfbHeight;
+ /*0x0A*/ u16 viXOrigin;
+ /*0x0C*/ u16 viYOrigin;
+ /*0x0E*/ u16 viWidth;
+ /*0x10*/ u16 viHeight;
+ /*0x14*/ VIXFBMode xFBmode;
+ /*0x18*/ u8 field_rendering;
+ u8 aa;
+ u8 sample_pattern[12][2];
+ u8 vfilter[7];
+} GXRenderModeObj;
+
+typedef struct _GXColor {
+ u8 r;
+ u8 g;
+ u8 b;
+ u8 a;
+} GXColor;
+
+typedef struct _GXTexObj {
+#ifdef TARGET_PC
+ u32 dummy[22];
+#else
+ u32 dummy[8];
+#endif
+} GXTexObj;
+
+typedef struct _GXTlutObj {
+#ifdef TARGET_PC
+ u32 dummy[4];
+#else
+ u32 dummy[3];
+#endif
+} GXTlutObj;
+
+typedef struct _GXLightObj {
+ u32 dummy[16];
+} GXLightObj;
+
+typedef struct _GXVtxDescList {
+ GXAttr attr;
+ GXAttrType type;
+} GXVtxDescList;
+
+typedef struct _GXColorS10 {
+ s16 r;
+ s16 g;
+ s16 b;
+ s16 a;
+} GXColorS10;
+
+typedef struct _GXTexRegion {
+ u32 dummy[4];
+} GXTexRegion;
+
+typedef struct _GXTlutRegion {
+ u32 dummy[4];
+} GXTlutRegion;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DOLPHIN_GXSTRUCT