1#include <c3d/mtxstack.h>
2#include <c3d/uniforms.h>
9 Mtx_Identity(&stk->m[0]);
12void MtxStack_Bind(C3D_MtxStack* stk, GPU_SHADER_TYPE unifType,
int unifPos,
int unifLen)
14 stk->unifType = unifType;
15 stk->unifPos = unifPos;
16 stk->unifLen = unifLen;
22 if (stk->pos == (C3D_MTXSTACK_SIZE-1))
return NULL;
24 Mtx_Copy(&stk->m[stk->pos], &stk->m[stk->pos-1]);
25 return MtxStack_Cur(stk);
30 if (stk->pos == 0)
return NULL;
32 return MtxStack_Cur(stk);
37 if (!stk->isDirty)
return;
39 if (stk->unifPos != 0xFF)
40 C3D_FVUnifMtxNx4(stk->unifType, stk->unifPos, &stk->m[stk->pos], stk->unifLen);
void MtxStack_Update(C3D_MtxStack *stk)
C3D_Mtx * MtxStack_Push(C3D_MtxStack *stk)
void MtxStack_Init(C3D_MtxStack *stk)
void MtxStack_Bind(C3D_MtxStack *stk, GPU_SHADER_TYPE unifType, int unifPos, int unifLen)
C3D_Mtx * MtxStack_Pop(C3D_MtxStack *stk)