57typedef enum _GXMtxType {
62typedef enum _GXVtxFmtIdx {
66typedef enum _GXPrimitive {
71 GX_TRIANGLESTRIP = 0x98,
72 GX_TRIANGLEFAN = 0xA0,
76typedef enum _GXCompare {
87typedef enum _GXTevStageID {
108typedef enum _GXTevColorArg {
129 GX_CC_QUARTER = GX_CC_KONST
132typedef enum _GXTevAlphaArg {
144typedef enum _GXTevBias {
152typedef enum _GXTevScale {
159typedef enum _GXTevOp {
163 GX_TEV_COMP_R8_GT = 8,
167 GX_TEV_COMP_BGR24_GT,
168 GX_TEV_COMP_BGR24_EQ,
172 GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT,
173 GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ
176typedef enum _GXTevRegID {
185typedef enum _GXAlphaOp {
198typedef enum _GXTexFmt {
228 GX_TF_A8 = GX_CTF_YUVA8
231typedef enum _GXTexWrapMode {
239typedef enum _GXTexCoordID {
250 GX_TEXCOORD_NULL = 255
253typedef enum _GXTexGenSrc {
277typedef enum _GXTexGenType {
291typedef enum _GXTexMapID {
302 GX_TEXMAP_NULL = 255,
306typedef enum _GXProjectionType {
311typedef enum _GXChannelID {
325typedef enum _GXColorSrc { GX_SRC_REG, GX_SRC_VTX } GXColorSrc;
327typedef enum _GXLightID {
341typedef enum _GXDiffuseFn { GX_DF_NONE, GX_DF_SIGN, GX_DF_CLAMP } GXDiffuseFn;
343typedef enum _GXAttnFn {
349typedef enum _GXBlendMode {
358typedef enum _GXBlendFactor {
368 GX_BL_DSTCLR = GX_BL_SRCCLR,
369 GX_BL_INVDSTCLR = GX_BL_INVSRCCLR
372typedef enum _GXLogicOp {
406extern volatile GXFifo WGPIPE : 0xcc008000;
409extern volatile GXFifo WGPIPE;
412void GXSetProjection(
const Mtx44 *,
int);
413void GXLoadPosMtxImm(
const Mtx *, u32);
414void GXSetCurrentMtx(u32
id);
415void GXLoadTexMtxImm(
const Mtx *, u32, GXMtxType);
416void GXSetViewport(
float,
float,
float,
float,
float,
float);
417void GXSetScissor(u32, u32, u32, u32);
419void GXSetVtxDesc(GXAttr, GXAttr);
420void GXClearVtxDesc();
421void GXSetVtxAttrFmt(u32, GXAttr, u32, u32, u8);
422void GXSetNumTexGens(u8);
423void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u8, u8, u32);
425void GXBegin(GXPrimitive, GXVtxFmtIdx, u16);
426void GXSetCullMode(
int);
428inline static void GXEnd() {}
430void GXSetNumIndStages(u8);
431void __GXSetIndirectMask(u32);
433void GXSetColorUpdate(u8);
434void GXSetAlphaUpdate(u8);
435void GXSetZMode(u8, GXCompare, u8);
436void GXSetZCompLoc(u8);
438void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg);
439void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg);
440void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
441void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
442void GXSetTevOp(GXTevStageID, u32);
443void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID);
444void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8);
445void GXSetNumTevStages(u8);
447void GXInitTexObj(
GXTexObj *,
void *, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, u8);
448void GXLoadTexObj(
GXTexObj *, GXTexMapID);
450void GXSetChanMatColor(GXChannelID,
GXColor);
451void GXSetNumChans(u8);
452void GXSetChanCtrl(GXChannelID, u8, GXColorSrc, GXColorSrc, GXLightID, GXDiffuseFn, GXAttnFn);
454void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp);
456void GXInvalidateVtxCache();
458static inline void GXPosition3f32(
float x,
float y,
float z) {
464static 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.