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 _GXTevKColorID {
117typedef enum _GXTevColorArg {
138 GX_CC_QUARTER = GX_CC_KONST
141typedef enum _GXTevAlphaArg {
153typedef enum _GXTevBias {
161typedef enum _GXTevScale {
168typedef enum _GXTevOp {
172 GX_TEV_COMP_R8_GT = 8,
176 GX_TEV_COMP_BGR24_GT,
177 GX_TEV_COMP_BGR24_EQ,
181 GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT,
182 GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ
185typedef enum _GXTevRegID {
194typedef enum _GXAlphaOp {
207typedef enum _GXTexFmt {
237 GX_TF_A8 = GX_CTF_YUVA8
240typedef enum _GXTexFilter {
244typedef enum _GXPixelFmt {
248typedef enum _GXTexWrapMode {
256typedef enum _GXTexCoordID {
267 GX_TEXCOORD_NULL = 255
270typedef enum _GXTexGenSrc {
294typedef enum _GXTexGenType {
308typedef enum _GXTexMapID {
319 GX_TEXMAP_NULL = 255,
323typedef enum _GXProjectionType {
328typedef enum _GXChannelID {
342typedef enum _GXColorSrc { GX_SRC_REG, GX_SRC_VTX } GXColorSrc;
344typedef enum _GXLightID {
358typedef enum _GXDiffuseFn { GX_DF_NONE, GX_DF_SIGN, GX_DF_CLAMP } GXDiffuseFn;
360typedef enum _GXAttnFn {
366typedef enum _GXBlendMode {
375typedef enum _GXBlendFactor {
385 GX_BL_DSTCLR = GX_BL_SRCCLR,
386 GX_BL_INVDSTCLR = GX_BL_INVSRCCLR
389typedef enum _GXLogicOp {
418 bool mFieldRendering;
420 u8 mSamplePattern[12][2];
421 u8 mFilterWeights[7];
439extern volatile GXFifo WGPIPE : 0xcc008000;
442extern volatile GXFifo WGPIPE;
445void GXSetProjection(
const Mtx44 *,
int);
446void GXLoadPosMtxImm(
const Mtx *, u32);
447void GXSetCurrentMtx(u32
id);
448void GXLoadTexMtxImm(
const Mtx *, u32, GXMtxType);
449void GXSetViewport(
float,
float,
float,
float,
float,
float);
450void GXSetScissor(u32, u32, u32, u32);
452void GXSetVtxDesc(GXAttr, GXAttr);
453void GXClearVtxDesc();
454void GXSetVtxAttrFmt(u32, GXAttr, u32, u32, u8);
455void GXSetNumTexGens(u8);
456void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u8, u8, u32);
458void GXBegin(GXPrimitive, GXVtxFmtIdx, u16);
459void GXSetCullMode(
int);
461inline static void GXEnd() {}
463void GXSetNumIndStages(u8);
464void __GXSetIndirectMask(u32);
466void GXSetColorUpdate(u8);
467void GXSetAlphaUpdate(u8);
468void GXSetZMode(u8, GXCompare, u8);
469void GXSetZCompLoc(u8);
471void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg);
472void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg);
473void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
474void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, u8, GXTevRegID);
475void GXSetTevOp(GXTevStageID, u32);
476void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID);
477void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8);
478void GXSetNumTevStages(u8);
480void GXInitTexObj(GXTexObj *,
void *, u16, u16, GXTexFmt, GXTexWrapMode, GXTexWrapMode, u8);
481void GXLoadTexObj(GXTexObj *, GXTexMapID);
483void GXSetChanMatColor(GXChannelID,
GXColor);
484void GXSetNumChans(u8);
485void GXSetChanCtrl(GXChannelID, u8, GXColorSrc, GXColorSrc, GXLightID, GXDiffuseFn, GXAttnFn);
487void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp);
489void GXInvalidateVtxCache();
491size_t GXGetTexBufferSize(
int width,
int height, GXTexFmt fmt,
bool,
bool);
492void GXInitTexObjLOD(GXTexObj *, GXTexFilter, GXTexFilter,
float,
float,
float,
int,
int,
int);
493void GXSetCopyFilter(
int,
void *,
int,
void *);
494void GXSetTexCopySrc(
int,
int,
int,
int);
495void GXSetTexCopyDst(
int,
int, GXTexFmt, u8);
496void GXCopyTex(
void *,
int);
497void GXSetTevDirect(
int);
499static inline void GXPosition3f32(
float x,
float y,
float z) {
505static 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.