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