57typedef enum _GXMtxType {
62typedef enum _GXVtxFmt {
66typedef enum _GXPrimitive {
71 GX_TRIANGLESTRIP = 0x98,
72 GX_TRIANGLEFAN = 0xA0,
76typedef enum _GXCompare {
87typedef enum _GXCompCnt {
102typedef enum _GXCompType {
117typedef enum _GXTevStageID {
138typedef enum _GXTevKColorID {
147typedef enum _GXTevColorArg {
168 GX_CC_QUARTER = GX_CC_KONST
171typedef enum _GXTevAlphaArg {
183typedef enum _GXTevBias {
191typedef enum _GXTevScale {
198typedef enum _GXTevOp {
202 GX_TEV_COMP_R8_GT = 8,
206 GX_TEV_COMP_BGR24_GT,
207 GX_TEV_COMP_BGR24_EQ,
211 GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT,
212 GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ
215typedef enum _GXTevRegID {
224typedef enum _GXAlphaOp {
237typedef enum _GXTexFmt {
267 GX_TF_A8 = GX_CTF_YUVA8
270typedef enum _GXTexFilter {
274typedef enum _GXPixelFmt {
278typedef enum _GXTexWrapMode {
286typedef enum _GXTexCoordID {
297 GX_TEXCOORD_NULL = 255
300typedef enum _GXTexGenSrc {
324typedef enum _GXTexGenType {
338typedef enum _GXTexMapID {
349 GX_TEXMAP_NULL = 255,
353typedef enum _GXProjectionType {
358typedef enum _GXChannelID {
372typedef enum _GXColorSrc { GX_SRC_REG, GX_SRC_VTX } GXColorSrc;
374typedef enum _GXLightID {
388typedef enum _GXDiffuseFn { GX_DF_NONE, GX_DF_SIGN, GX_DF_CLAMP } GXDiffuseFn;
390typedef enum _GXAttnFn {
396typedef enum _GXBlendMode {
405typedef enum _GXBlendFactor {
415 GX_BL_DSTCLR = GX_BL_SRCCLR,
416 GX_BL_INVDSTCLR = GX_BL_INVSRCCLR
419typedef enum _GXLogicOp {
448 bool mFieldRendering;
450 u8 mSamplePattern[12][2];
451 u8 mFilterWeights[7];
469extern volatile GXFifo WGPIPE : 0xcc008000;
472extern volatile GXFifo WGPIPE;
475void GXSetProjection(
const Mtx44 *, GXProjectionType);
476void GXLoadPosMtxImm(
const Mtx *, u32);
477void GXSetCurrentMtx(u32
id);
478void GXLoadTexMtxImm(
const Mtx *, u32, GXMtxType);
479void GXSetViewport(
float,
float,
float,
float,
float,
float);
480void GXSetScissor(u32, u32, u32, u32);
482void GXSetVtxDesc(GXAttr, GXAttr);
483void GXClearVtxDesc();
484void GXSetVtxAttrFmt(GXVtxFmt, GXAttr, GXCompCnt, GXCompType, u8);
485void GXSetNumTexGens(u8);
486void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u8, u8, u32);
488void GXBegin(GXPrimitive, GXVtxFmt, u16);
489void GXSetCullMode(
int);
491inline static void GXEnd() {}
493void GXSetNumIndStages(u8);
494void __GXSetIndirectMask(u32);
496void GXSetColorUpdate(u8);
497void GXSetAlphaUpdate(u8);
498void GXSetZMode(u8, GXCompare, u8);
499void GXSetZCompLoc(u8);
501void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg);
502void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg);
503void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
504void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
505void GXSetTevOp(GXTevStageID, u32);
506void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID);
507void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8);
508void GXSetNumTevStages(u8);
510void GXInitTexObj(GXTexObj *,
void *, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, u8);
511void GXLoadTexObj(GXTexObj *, GXTexMapID);
513void GXSetChanMatColor(GXChannelID,
GXColor);
514void GXSetNumChans(u8);
515void GXSetChanCtrl(GXChannelID, u8, GXColorSrc, GXColorSrc, GXLightID, GXDiffuseFn, GXAttnFn);
517void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp);
519void GXInvalidateVtxCache();
521size_t GXGetTexBufferSize(
int width,
int height, GXTexFmt fmt,
bool,
bool);
522void GXInitTexObjLOD(GXTexObj *, GXTexFilter, GXTexFilter,
float,
float,
float,
int,
int,
int);
523void GXSetCopyFilter(
int,
void *,
int,
void *);
524void GXSetTexCopySrc(
int,
int,
int,
int);
525void GXSetTexCopyDst(
int,
int, GXTexFmt, u8);
526void GXCopyTex(
void *,
int);
527void GXSetTevDirect(
int);
529static inline void GXPosition3f32(
float x,
float y,
float z) {
535static inline void GXTexCoord2f32(
float x,
float y) {
struct _GXColor GXColor
A 32-bit RGBA color.
float Mtx44[4][4]
A 4x4 matrix.
float Mtx[3][4]
A 3x4 matrix.