Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DSys.h
Go to the documentation of this file.
1#ifndef J3DSYS_H
2#define J3DSYS_H
3
4#include <dolphin/gx.h>
5#include <dolphin/mtx.h>
6#include "JSystem/J3DAssert.h"
7
8// Perhaps move to a new J3DEnum.h?
13
17
18 /* 0x2 */ J3DSysDrawBuf_MAX
19};
20
21class J3DMtxCalc;
22class J3DModel;
23class J3DMatPacket;
24class J3DShapePacket;
25class J3DShape;
26class J3DDrawBuffer;
27class J3DTexture;
28
34 /* 0x0 */ u16 field_0x00;
35 /* 0x2 */ u16 field_0x02;
36 /* 0x4 */ u16 field_0x04;
37 /* 0x6 */ u16 field_0x06;
38};
39
44};
45
50struct J3DSys {
51 /* 0x000 */ Mtx mViewMtx;
53 /* 0x034 */ u32 mFlags;
54 /* 0x038 */ J3DModel* mModel;
57 /* 0x044 */ J3DShape* mShape;
59 /* 0x050 */ u32 mDrawMode;
60 /* 0x054 */ u32 mMaterialMode;
61 /* 0x058 */ J3DTexture* mTexture;
62 /* 0x05C */ u8 unk_0x5c[0x60 - 0x5C];
65 /* 0x0E4 */ u8 unk_0xe4[0x104 - 0xE4];
66 /* 0x104 */ Mtx* mModelDrawMtx;
67 /* 0x108 */ Mtx33* mModelNrmMtx;
68 /* 0x10C */ void* mVtxPos;
69 /* 0x110 */ void* mVtxNrm;
70 /* 0x114 */ GXColor* mVtxCol;
71 /* 0x118 */ Vec* mNBTScale;
72
73 J3DSys();
74 void loadPosMtxIndx(int, u16) const;
75 void loadNrmMtxIndx(int, u16) const;
77 void drawInit();
78 void reinitGX();
79 void reinitGenMode();
80 void reinitLighting();
81 void reinitTransform();
82 void reinitTexture();
83 void reinitTevStages();
84 void reinitIndStages();
85 void reinitPixelProc();
86
91
92 MtxP getViewMtx() { return mViewMtx; }
93
96
97 void* getVtxPos() { return mVtxPos; }
98 void setVtxPos(void* pVtxPos) { mVtxPos = pVtxPos; }
99
100 void* getVtxNrm() { return mVtxNrm; }
101 void setVtxNrm(void* pVtxNrm) { mVtxNrm = pVtxNrm; }
102
103 void* getVtxCol() { return mVtxCol; }
104 void setVtxCol(GXColor* pVtxCol) { mVtxCol = pVtxCol; }
105
107 J3D_ASSERT_RANGE(114, type >= 0 && type < J3DSysDrawBuf_MAX);
108 J3D_ASSERT_NULLPTR(115, buffer);
109 mDrawBuffer[type] = buffer;
110 }
111
113 J3D_ASSERT_RANGE(121, type >= 0 && type < J3DSysDrawBuf_MAX);
114 return mDrawBuffer[type];
115 }
116
117 void setMatPacket(J3DMatPacket* pPacket) {
118 J3D_ASSERT_NULLPTR(162, pPacket != NULL);
119 mMatPacket = pPacket;
120 }
121
123 J3D_ASSERT_NULLPTR(172, pPacket != NULL);
124 mShapePacket = pPacket;
125 }
126
127 void setModel(J3DModel* pModel) {
128 J3D_ASSERT_NULLPTR(200, pModel != NULL);
129 mModel = pModel;
130 }
131
134
136 J3D_ASSERT_NULLPTR(210, pCalc != NULL);
137 mCurrentMtxCalc = pCalc;
138 }
139
141
142 void setTexture(J3DTexture* pTex) { mTexture = pTex; }
144
145 void setNBTScale(Vec* scale) { mNBTScale = scale; }
146 Vec* getNBTScale() { return mNBTScale; }
147
148 void onFlag(u32 flag) { mFlags |= flag; }
149
150 void offFlag(u32 flag) { mFlags &= ~flag; }
151
152 bool checkFlag(u32 flag) { return mFlags & flag ? true : false; }
153
154 void setModelDrawMtx(Mtx* pMtxArr) {
155 J3D_ASSERT_NULLPTR(230, pMtxArr);
156 mModelDrawMtx = pMtxArr;
158 }
159
160 void setModelNrmMtx(Mtx33* pMtxArr) {
161 J3D_ASSERT_NULLPTR(241, pMtxArr);
162 mModelNrmMtx = pMtxArr;
164 }
165
168
169 void setViewMtx(const Mtx m) { MTXCopy(m, mViewMtx); }
170
171 J3DModel* getModel() { return mModel; }
172
175 static Vec mParentS;
177};
178
179extern u32 j3dDefaultViewNo;
180extern J3DSys j3dSys;
181
182#endif /* J3DSYS_H */
static BOOL flag
Definition DEMOAVX.c:20
J3DSysFlag
Definition J3DSys.h:40
@ J3DSysFlag_SkinNrmCpu
Definition J3DSys.h:42
@ J3DSysFlag_SkinPosCpu
Definition J3DSys.h:41
@ J3DSysFlag_PostTexMtx
Definition J3DSys.h:43
J3DSysDrawBuf
Definition J3DSys.h:14
@ J3DSysDrawBuf_Opa
Definition J3DSys.h:15
@ J3DSysDrawBuf_Xlu
Definition J3DSys.h:16
@ J3DSysDrawBuf_MAX
Definition J3DSys.h:18
u32 j3dDefaultViewNo
Definition J3DSys.cpp:32
J3DError
Definition J3DSys.h:9
@ kJ3DError_Success
Definition J3DSys.h:10
@ kJ3DError_Alloc
Definition J3DSys.h:11
J3DSys j3dSys
Definition J3DSys.cpp:9
Definition J3DDrawBuffer.h:60
Definition J3DPacket.h:258
Definition J3DModel.h:43
Definition J3DJoint.h:17
Definition J3DPacket.h:218
Definition J3DShape.h:118
Definition J3DTexture.h:14
static OSTime buffer
Definition ai.c:24
void GXSetArray(GXAttr attr, void *base_ptr, u8 stride)
Definition GXAttr.c:508
enum _GXTexCacheSize GXTexCacheSize
@ GX_NRM_MTX_ARRAY
Definition GXEnum.h:110
@ GX_POS_MTX_ARRAY
Definition GXEnum.h:109
u32 mode
Definition GXTev.c:56
f32 Mtx33[3][3]
Definition mtx.h:35
f32 Mtx[3][4]
Definition mtx.h:25
f32(* MtxP)[4]
Definition mtx.h:38
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
int m
Definition e_atan2.c:62
Definition J3DSys.h:50
void reinitTevStages()
Definition J3DSys.cpp:279
Mtx * mModelDrawMtx
Definition J3DSys.h:66
J3DModel * getModel()
Definition J3DSys.h:171
Mtx & getModelDrawMtx(u16 no)
Definition J3DSys.h:166
Mtx33 * mModelNrmMtx
Definition J3DSys.h:67
J3DShape * mShape
Definition J3DSys.h:57
static Mtx mCurrentMtx
Definition J3DSys.h:173
void * mVtxNrm
Definition J3DSys.h:69
void * getVtxCol()
Definition J3DSys.h:103
void offFlag(u32 flag)
Definition J3DSys.h:150
J3DDrawBuffer * mDrawBuffer[J3DSysDrawBuf_MAX]
Definition J3DSys.h:58
void setVtxCol(GXColor *pVtxCol)
Definition J3DSys.h:104
void setVtxNrm(void *pVtxNrm)
Definition J3DSys.h:101
void reinitLighting()
Definition J3DSys.cpp:243
void setDrawModeXlu()
Definition J3DSys.h:95
J3DMatPacket * mMatPacket
Definition J3DSys.h:55
J3DMtxCalc * mCurrentMtxCalc
Definition J3DSys.h:52
void reinitTexture()
Definition J3DSys.cpp:266
void setShapePacket(J3DShapePacket *pPacket)
Definition J3DSys.h:122
void setCurrentMtxCalc(J3DMtxCalc *pCalc)
Definition J3DSys.h:135
void * mVtxPos
Definition J3DSys.h:68
void reinitIndStages()
Definition J3DSys.cpp:326
void setDrawBuffer(J3DDrawBuffer *buffer, int type)
Definition J3DSys.h:106
GXColor * mVtxCol
Definition J3DSys.h:70
void setNBTScale(Vec *scale)
Definition J3DSys.h:145
MtxP getViewMtx()
Definition J3DSys.h:92
void onFlag(u32 flag)
Definition J3DSys.h:148
void loadNrmMtxIndx(int, u16) const
Definition J3DSys.cpp:76
u32 mTexCacheRegionNum
Definition J3DSys.h:63
Mtx mViewMtx
Definition J3DSys.h:51
u8 unk_0x5c[0x60 - 0x5C]
Definition J3DSys.h:62
void setMatPacket(J3DMatPacket *pPacket)
Definition J3DSys.h:117
void loadPosMtxIndx(int, u16) const
Definition J3DSys.cpp:71
J3DDrawBuffer * getDrawBuffer(int type)
Definition J3DSys.h:112
void setModelDrawMtx(Mtx *pMtxArr)
Definition J3DSys.h:154
void setModelNrmMtx(Mtx33 *pMtxArr)
Definition J3DSys.h:160
void reinitGX()
Definition J3DSys.cpp:223
u32 mMaterialMode
Definition J3DSys.h:60
Vec * getNBTScale()
Definition J3DSys.h:146
void * getVtxPos()
Definition J3DSys.h:97
J3DMtxCalc * getCurrentMtxCalc() const
Definition J3DSys.h:140
GXTexRegion mTexCacheRegion[8]
Definition J3DSys.h:64
void setMaterialMode(u32 mode)
Definition J3DSys.h:133
J3DSysDrawMode
Definition J3DSys.h:87
@ J3DSysDrawMode_Xlu
Definition J3DSys.h:89
@ J3DSysDrawMode_OpaTexEdge
Definition J3DSys.h:88
static Vec mCurrentS
Definition J3DSys.h:174
void setVtxPos(void *pVtxPos)
Definition J3DSys.h:98
J3DTexture * mTexture
Definition J3DSys.h:61
void drawInit()
Definition J3DSys.cpp:118
J3DSys()
Definition J3DSys.cpp:38
J3DModel * mModel
Definition J3DSys.h:54
void reinitPixelProc()
Definition J3DSys.cpp:345
u32 mFlags
Definition J3DSys.h:53
J3DShapePacket * getShapePacket()
Definition J3DSys.h:167
void reinitGenMode()
Definition J3DSys.cpp:234
Vec * mNBTScale
Definition J3DSys.h:71
void * getVtxNrm()
Definition J3DSys.h:100
J3DMatPacket * getMatPacket()
Definition J3DSys.h:132
void setModel(J3DModel *pModel)
Definition J3DSys.h:127
u8 unk_0xe4[0x104 - 0xE4]
Definition J3DSys.h:65
static J3DTexCoordScaleInfo sTexCoordScaleTable[8]
Definition J3DSys.h:176
u32 mDrawMode
Definition J3DSys.h:59
bool checkFlag(u32 flag)
Definition J3DSys.h:152
J3DTexture * getTexture()
Definition J3DSys.h:143
void setViewMtx(const Mtx m)
Definition J3DSys.h:169
J3DShapePacket * mShapePacket
Definition J3DSys.h:56
void setTexCacheRegion(GXTexCacheSize)
Definition J3DSys.cpp:80
void setDrawModeOpaTexEdge()
Definition J3DSys.h:94
static Vec mParentS
Definition J3DSys.h:175
void reinitTransform()
Definition J3DSys.cpp:254
void setTexture(J3DTexture *pTex)
Definition J3DSys.h:142
Definition J3DSys.h:33
u16 field_0x06
Definition J3DSys.h:37
u16 field_0x02
Definition J3DSys.h:35
u16 field_0x04
Definition J3DSys.h:36
u16 field_0x00
Definition J3DSys.h:34
Definition mtx.h:13
Definition GXStruct.h:30
Definition GXStruct.h:46