2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _DOLPHIN_GXSTRUCT
|
|
|
|
#define _DOLPHIN_GXSTRUCT
|
2022-08-30 04:05:16 +00:00
|
|
|
|
|
|
|
#include <dolphin/gx/GXEnum.h>
|
2022-09-18 06:05:46 +00:00
|
|
|
#include <dolphin/types.h>
|
2022-08-30 04:05:16 +00:00
|
|
|
|
|
|
|
#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;
|
|
|
|
|
2022-11-30 01:56:37 +00:00
|
|
|
typedef struct _GXTexRegion {
|
|
|
|
u32 dummy[4];
|
|
|
|
} GXTexRegion;
|
|
|
|
|
2022-12-25 01:07:56 +00:00
|
|
|
typedef struct _GXTlutRegion {
|
|
|
|
u32 dummy[4];
|
|
|
|
} GXTlutRegion;
|
|
|
|
|
2022-08-30 04:05:16 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _DOLPHIN_GXSTRUCT
|