SSBM Decomp
Loading...
Searching...
No Matches
GXTransform.c File Reference
#include <macros.h>
#include "__gx.h"
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include <dolphin/os.h>

Macros

#define qr0   0
#define GX_WRITE_MTX_ELEM(addr, value)
#define SET_REG_FIELD_(line, reg, size, shift, val)

Functions

void GXProject (f32 x, f32 y, f32 z, f32 mtx[3][4], f32 *pm, f32 *vp, f32 *sx, f32 *sy, f32 *sz)
void GXSetProjection (f32 mtx[4][4], GXProjectionType type)
void GXSetProjectionv (f32 *ptr)
void GXGetProjectionv (f32 *ptr)
static asm void WriteMTXPS4x3 (register f32 mtx[3][4], register volatile f32 *dest)
static asm void WriteMTXPS3x3from3x4 (register f32 mtx[3][4], register volatile f32 *dest)
static asm void WriteMTXPS3x3 (register f32 mtx[3][3], register volatile f32 *dest)
static asm void WriteMTXPS4x2 (register f32 mtx[2][4], register volatile f32 *dest)
void GXLoadPosMtxImm (f32 mtx[3][4], u32 id)
void GXLoadPosMtxIndx (u16 mtx_indx, u32 id)
void GXLoadNrmMtxImm (f32 mtx[3][4], u32 id)
void GXLoadNrmMtxImm3x3 (f32 mtx[3][3], u32 id)
void GXLoadNrmMtxIndx3x3 (u16 mtx_indx, u32 id)
void GXSetCurrentMtx (u32 id)
void GXLoadTexMtxImm (f32 mtx[][4], u32 id, GXTexMtxType type)
void GXLoadTexMtxIndx (u16 mtx_indx, u32 id, GXTexMtxType type)
void GXSetViewportJitter (f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field)
void GXSetViewport (f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz)
void GXGetViewportv (f32 *vp)
void GXSetScissor (u32 left, u32 top, u32 wd, u32 ht)
void GXGetScissor (u32 *left, u32 *top, u32 *wd, u32 *ht)
void GXSetScissorBoxOffset (s32 x_off, s32 y_off)
void GXSetClipMode (GXClipMode mode)
void __GXSetMatrixIndex (GXAttr matIdxAttr)

Macro Definition Documentation

◆ qr0

#define qr0   0

◆ GX_WRITE_MTX_ELEM

#define GX_WRITE_MTX_ELEM ( addr,
value )
Value:
do { \
f32 xfData = (value); \
GX_WRITE_F32(value); \
VERIF_MTXLIGHT((addr), *(u32*) &xfData); \
} while (0)
unsigned int u32
Definition types.h:13
float f32
Definition types.h:18

◆ SET_REG_FIELD_

#define SET_REG_FIELD_ ( line,
reg,
size,
shift,
val )
Value:
do { \
ASSERTMSGLINE(line, ((s32) (val) & ~((1 << (size)) - 1)) == 0, \
"GX Internal: Register field out of range"); \
(reg) = ((u32) (reg) & ~(((1 << (size)) - 1) << (shift))) | \
((u32) (val) << (shift)); \
} while (0)
size_t size
Definition __os.h:98
signed int s32
Definition types.h:12

Function Documentation

◆ GXProject()

void GXProject ( f32 x,
f32 y,
f32 z,
f32 mtx[3][4],
f32 * pm,
f32 * vp,
f32 * sx,
f32 * sy,
f32 * sz )

◆ GXSetProjection()

void GXSetProjection ( f32 mtx[4][4],
GXProjectionType type )

◆ GXSetProjectionv()

void GXSetProjectionv ( f32 * ptr)

◆ GXGetProjectionv()

void GXGetProjectionv ( f32 * ptr)

◆ WriteMTXPS4x3()

asm void WriteMTXPS4x3 ( register f32 mtx[3][4],
register volatile f32 * dest )
static

◆ WriteMTXPS3x3from3x4()

asm void WriteMTXPS3x3from3x4 ( register f32 mtx[3][4],
register volatile f32 * dest )
static

◆ WriteMTXPS3x3()

asm void WriteMTXPS3x3 ( register f32 mtx[3][3],
register volatile f32 * dest )
static

◆ WriteMTXPS4x2()

asm void WriteMTXPS4x2 ( register f32 mtx[2][4],
register volatile f32 * dest )
static

◆ GXLoadPosMtxImm()

void GXLoadPosMtxImm ( f32 mtx[3][4],
u32 id )

◆ GXLoadPosMtxIndx()

void GXLoadPosMtxIndx ( u16 mtx_indx,
u32 id )

◆ GXLoadNrmMtxImm()

void GXLoadNrmMtxImm ( f32 mtx[3][4],
u32 id )

◆ GXLoadNrmMtxImm3x3()

void GXLoadNrmMtxImm3x3 ( f32 mtx[3][3],
u32 id )

◆ GXLoadNrmMtxIndx3x3()

void GXLoadNrmMtxIndx3x3 ( u16 mtx_indx,
u32 id )

◆ GXSetCurrentMtx()

void GXSetCurrentMtx ( u32 id)

◆ GXLoadTexMtxImm()

void GXLoadTexMtxImm ( f32 mtx[][4],
u32 id,
GXTexMtxType type )

◆ GXLoadTexMtxIndx()

void GXLoadTexMtxIndx ( u16 mtx_indx,
u32 id,
GXTexMtxType type )

◆ GXSetViewportJitter()

void GXSetViewportJitter ( f32 left,
f32 top,
f32 wd,
f32 ht,
f32 nearz,
f32 farz,
u32 field )

◆ GXSetViewport()

void GXSetViewport ( f32 left,
f32 top,
f32 wd,
f32 ht,
f32 nearz,
f32 farz )

◆ GXGetViewportv()

void GXGetViewportv ( f32 * vp)

◆ GXSetScissor()

void GXSetScissor ( u32 left,
u32 top,
u32 wd,
u32 ht )

◆ GXGetScissor()

void GXGetScissor ( u32 * left,
u32 * top,
u32 * wd,
u32 * ht )

◆ GXSetScissorBoxOffset()

void GXSetScissorBoxOffset ( s32 x_off,
s32 y_off )

◆ GXSetClipMode()

void GXSetClipMode ( GXClipMode mode)

◆ __GXSetMatrixIndex()

void __GXSetMatrixIndex ( GXAttr matIdxAttr)