Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
J3DMaterial.h
Go to the documentation of this file.
1#ifndef J3DMATERIAL_H
2#define J3DMATERIAL_H
3
7#include "dolphin/types.h"
8
9class J3DJoint;
10class J3DMaterialAnm;
11
16class J3DMaterial {
17public:
18 /* 803157A0 */ static J3DColorBlock* createColorBlock(u32);
19 /* 803159A0 */ static J3DTexGenBlock* createTexGenBlock(u32);
20 /* 80315B04 */ static J3DTevBlock* createTevBlock(int);
21 /* 80315E78 */ static J3DIndBlock* createIndBlock(int);
22 /* 80315F60 */ static J3DPEBlock* createPEBlock(u32, u32);
23 /* 80316100 */ static u32 calcSizeColorBlock(u32);
24 /* 80316150 */ static u32 calcSizeTexGenBlock(u32);
25 /* 8031617C */ static u32 calcSizeTevBlock(int);
26 /* 803161C4 */ static u32 calcSizeIndBlock(int);
27 /* 803161D8 */ static u32 calcSizePEBlock(u32, u32);
28 /* 80316240 */ void initialize();
29 /* 80316290 */ u32 countDLSize();
30 /* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*);
31 /* 80316AB0 */ void setCurrentMtx();
32 /* 80316AC8 */ void calcCurrentMtx();
33 /* 80316D68 */ void copy(J3DMaterial*);
34 /* 80316E90 */ s32 newSharedDisplayList(u32);
35 /* 80316F24 */ s32 newSingleSharedDisplayList(u32);
36
37 /* 803169DC */ virtual void calc(f32 const (*)[4]);
38 /* 80316A54 */ virtual void calcDiffTexMtx(f32 const (*)[4]);
39 /* 80316620 */ virtual void makeDisplayList();
40 /* 80316668 */ virtual void makeSharedDisplayList();
41 /* 8031668C */ virtual void load();
42 /* 803166DC */ virtual void loadSharedDL();
43 /* 80316740 */ virtual void patch();
44 /* 803167D8 */ virtual void diff(u32);
45 /* 80316E14 */ virtual void reset();
46 /* 80316E70 */ virtual void change();
47
50 J3DMaterial* getNext() { return mNext; }
51 J3DShape* getShape() { return mShape; }
57 J3DJoint* getJoint() { return mJoint; }
59 if ((u32)mMaterialAnm < 0xC0000000) {
60 return mMaterialAnm;
61 } else {
62 return NULL;
63 }
64 }
66 u16 getTexNo(u32 idx) { return mTevBlock->getTexNo(idx); }
67 J3DGXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
68 J3DGXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
69 J3DFog* getFog() { return mPEBlock->getFog(); }
71 u16 getIndex() { return mIndex; }
72 bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
74 void onInvalid() { mInvalid = 1; }
81
82 void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
83 void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
84 void setAmbColor(u32 i, const J3DGXColor* i_color) { mColorBlock->setAmbColor(i, i_color); }
85 void setLight(u32 i, J3DLightObj* i_lightobj) { mColorBlock->setLight(i, i_lightobj); }
86 void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
87 void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
89 void setZCompLoc(u8 i_comploc) { mPEBlock->setZCompLoc(i_comploc); }
90 void setMaterialMode(u32 i_mode) { mMaterialMode = i_mode; }
91
92public:
93 /* 0x04 */ J3DMaterial* mNext;
94 /* 0x08 */ J3DShape* mShape;
95 /* 0x0C */ J3DJoint* mJoint;
96 /* 0x10 */ u32 mMaterialMode;
97 /* 0x14 */ u16 mIndex;
98 /* 0x18 */ u32 mInvalid;
99 /* 0x1C */ u32 field_0x1c;
100 /* 0x20 */ u32 mDiffFlag;
105 /* 0x34 */ J3DPEBlock* mPEBlock;
110};
111
117public:
119 /* 80316FB8 */ void initialize();
120
121 /* 80316FD8 */ virtual void makeDisplayList();
122 /* 80316FDC */ virtual void makeSharedDisplayList();
123 /* 80316FE0 */ virtual void load();
124 /* 80316FFC */ virtual void loadSharedDL();
125 /* 8031703C */ virtual void reset();
126 /* 80317040 */ virtual void change();
127};
128
134public:
136 /* 80317044 */ void initialize();
137
138 /* 803170D0 */ virtual void calc(f32 const (*)[4]);
139 /* 80317064 */ virtual void makeDisplayList();
140 /* 80317068 */ virtual void makeSharedDisplayList();
141 /* 8031706C */ virtual void load();
142 /* 80317088 */ virtual void loadSharedDL();
143 /* 803170C8 */ virtual void patch();
144 /* 803170CC */ virtual void diff(u32);
145 /* 803170D4 */ virtual void reset();
146 /* 803170D8 */ virtual void change();
147};
148
149#endif /* J3DMATERIAL_H */
static Mtx mtx[10]
Definition c_lib.cpp:512
Definition J3DMatBlock.h:1204
virtual void setLight(u32, J3DLightObj *)
Definition J3DMatBlock.h:1230
virtual void setAmbColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:1221
virtual void setCullMode(u8 const *)
Definition J3DMatBlock.h:1232
virtual J3DColorChan * getColorChan(u32)
Definition J3DMatBlock.h:1229
Definition J3DShape.h:34
Definition J3DPacket.h:65
Definition J3DMatBlock.h:1042
Definition J3DStruct.h:29
Definition J3DMaterial.h:133
virtual void reset()
Definition J3DMaterial.cpp:475
virtual void load()
Definition J3DMaterial.cpp:444
virtual void calc(f32 const (*)[4])
Definition J3DMaterial.cpp:470
J3DLockedMaterial()
Definition J3DMaterial.h:135
virtual void change()
Definition J3DMaterial.cpp:480
virtual void loadSharedDL()
Definition J3DMaterial.cpp:453
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:439
void initialize()
Definition J3DMaterial.cpp:428
virtual void patch()
Definition J3DMaterial.cpp:460
virtual void diff(u32)
Definition J3DMaterial.cpp:465
virtual void makeDisplayList()
Definition J3DMaterial.cpp:433
Definition J3DMatBlock.h:792
virtual J3DBlend * getBlend()
Definition J3DMatBlock.h:810
virtual J3DFog * getFog()
Definition J3DMatBlock.h:804
virtual J3DZMode * getZMode()
Definition J3DMatBlock.h:813
virtual void setZCompLoc(u8 const *)
Definition J3DMatBlock.h:814
Definition J3DMaterial.h:116
virtual void load()
Definition J3DMaterial.cpp:402
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:397
virtual void reset()
Definition J3DMaterial.cpp:417
virtual void change()
Definition J3DMaterial.cpp:422
virtual void loadSharedDL()
Definition J3DMaterial.cpp:410
virtual void makeDisplayList()
Definition J3DMaterial.cpp:391
J3DPatchedMaterial()
Definition J3DMaterial.h:118
void initialize()
Definition J3DMaterial.cpp:386
Definition J3DShape.h:82
Definition J3DMatBlock.h:201
virtual void setTevColor(u32, J3DGXColorS10 const *)
Definition J3DMatBlock.h:225
virtual J3DGXColor * getTevKColor(u32)
Definition J3DMatBlock.h:230
virtual J3DGXColorS10 * getTevColor(u32)
Definition J3DMatBlock.h:227
virtual u16 getTexNo(u32) const
Definition J3DMatBlock.h:221
virtual void setTevKColor(u32, J3DGXColor const *)
Definition J3DMatBlock.h:228
virtual u8 getTevStageNum() const
Definition J3DMatBlock.h:239
Definition J3DMatBlock.h:66
virtual J3DTexMtx * getTexMtx(u32)
Definition J3DMatBlock.h:86
virtual void setTexMtx(u32, J3DTexMtx *)
Definition J3DMatBlock.h:85
virtual J3DNBTScale * getNBTScale()
Definition J3DMatBlock.h:89
virtual u32 getTexGenNum() const
Definition J3DMatBlock.h:82
virtual J3DTexCoord * getTexCoord(u32)
Definition J3DMatBlock.h:84
Definition J3DTexture.h:40
int i
Definition e_pow.c:165
Definition J3DMatBlock.h:696
Definition J3DMatBlock.h:1158
Definition J3DMatBlock.h:719
Definition J3DMatBlock.h:12
Definition J3DMatBlock.h:30
Definition d_a_hozelda.cpp:239
Definition d_a_hozelda.cpp:229
Definition d_a_hozelda.cpp:93
bool isDrawModeOpaTexEdge()
Definition J3DMaterial.h:72
u8 getTevStageNum() const
Definition J3DMaterial.h:76
J3DZMode * getZMode()
Definition J3DMaterial.h:78
static u32 calcSizeColorBlock(u32)
Definition J3DMaterial.cpp:92
void setCurrentMtx()
Definition J3DMaterial.cpp:286
virtual void change()
Definition J3DMaterial.cpp:340
virtual void makeDisplayList()
Definition J3DMaterial.cpp:208
J3DMaterialAnm * getMaterialAnm()
Definition J3DMaterial.h:58
virtual void reset()
Definition J3DMaterial.cpp:329
J3DDisplayListObj * mSharedDLObj
Definition J3DMaterial.h:109
void calcCurrentMtx()
Definition J3DMaterial.cpp:292
J3DPEBlock * getPEBlock()
Definition J3DMaterial.h:73
static J3DIndBlock * createIndBlock(int)
Definition J3DMaterial.cpp:56
s32 newSingleSharedDisplayList(u32)
Definition J3DMaterial.cpp:367
u32 field_0x1c
Definition J3DMaterial.h:99
J3DColorBlock * mColorBlock
Definition J3DMaterial.h:101
static J3DColorBlock * createColorBlock(u32)
Definition J3DMaterial.cpp:11
void setMaterialMode(u32 i_mode)
Definition J3DMaterial.h:90
J3DMaterial * getNext()
Definition J3DMaterial.h:50
J3DJoint * mJoint
Definition J3DMaterial.h:95
J3DTexGenBlock * getTexGenBlock()
Definition J3DMaterial.h:54
void setMaterialAnm(J3DMaterialAnm *i_anm)
Definition J3DMaterial.h:86
J3DMaterial * mNext
Definition J3DMaterial.h:93
J3DShape * getShape()
Definition J3DMaterial.h:51
J3DDisplayListObj * getSharedDisplayListObj()
Definition J3DMaterial.h:55
void setTevColor(u32 i, const J3DGXColorS10 *i_color)
Definition J3DMaterial.h:82
virtual void calcDiffTexMtx(f32 const (*)[4])
Definition J3DMaterial.cpp:277
static u32 calcSizeTevBlock(int)
Definition J3DMaterial.cpp:122
u32 mDiffFlag
Definition J3DMaterial.h:100
void setAmbColor(u32 i, const J3DGXColor *i_color)
Definition J3DMaterial.h:84
J3DMaterial * mpOrigMaterial
Definition J3DMaterial.h:106
J3DTexCoord * getTexCoord(u32 idx)
Definition J3DMaterial.h:77
static u32 calcSizePEBlock(u32, u32)
Definition J3DMaterial.cpp:148
void setCullMode(u8 i_mode)
Definition J3DMaterial.h:87
J3DTevBlock * getTevBlock()
Definition J3DMaterial.h:52
void setZCompLoc(u8 i_comploc)
Definition J3DMaterial.h:89
J3DIndBlock * getIndBlock()
Definition J3DMaterial.h:56
J3DColorChan * getColorChan(u32 idx)
Definition J3DMaterial.h:80
J3DMaterial()
Definition J3DMaterial.h:48
u32 getTexGenNum() const
Definition J3DMaterial.h:75
void initialize()
Definition J3DMaterial.cpp:168
u16 mIndex
Definition J3DMaterial.h:97
J3DTevBlock * mTevBlock
Definition J3DMaterial.h:103
u16 getTexNo(u32 idx)
Definition J3DMaterial.h:66
virtual void calc(f32 const (*)[4])
Definition J3DMaterial.cpp:265
virtual void load()
Definition J3DMaterial.cpp:221
static J3DPEBlock * createPEBlock(u32, u32)
Definition J3DMaterial.cpp:66
J3DBlend * getBlend()
Definition J3DMaterial.h:79
void onInvalid()
Definition J3DMaterial.h:74
u32 countDLSize()
Definition J3DMaterial.cpp:187
void copy(J3DMaterial *)
Definition J3DMaterial.cpp:320
s32 newSharedDisplayList(u32)
Definition J3DMaterial.cpp:348
void makeDisplayList_private(J3DDisplayListObj *)
Definition J3DMaterial.cpp:194
void setTevKColor(u32 i, const J3DGXColor *i_color)
Definition J3DMaterial.h:83
J3DIndBlock * mIndBlock
Definition J3DMaterial.h:104
J3DTexGenBlock * mTexGenBlock
Definition J3DMaterial.h:102
J3DJoint * getJoint()
Definition J3DMaterial.h:57
J3DGXColorS10 * getTevColor(u32 param_0)
Definition J3DMaterial.h:68
J3DFog * getFog()
Definition J3DMaterial.h:69
virtual void loadSharedDL()
Definition J3DMaterial.cpp:229
J3DCurrentMtx mCurrentMtx
Definition J3DMaterial.h:108
u32 mInvalid
Definition J3DMaterial.h:98
void setLight(u32 i, J3DLightObj *i_lightobj)
Definition J3DMaterial.h:85
static u32 calcSizeTexGenBlock(u32)
Definition J3DMaterial.cpp:110
J3DMaterialAnm * mMaterialAnm
Definition J3DMaterial.h:107
u32 mMaterialMode
Definition J3DMaterial.h:96
void setTexMtx(u32 idx, J3DTexMtx *mtx)
Definition J3DMaterial.h:88
J3DPEBlock * mPEBlock
Definition J3DMaterial.h:105
J3DShape * mShape
Definition J3DMaterial.h:94
static J3DTevBlock * createTevBlock(int)
Definition J3DMaterial.cpp:41
J3DNBTScale * getNBTScale()
Definition J3DMaterial.h:65
J3DColorBlock * getColorBlock()
Definition J3DMaterial.h:53
J3DTexMtx * getTexMtx(u32 idx)
Definition J3DMaterial.h:70
J3DGXColor * getTevKColor(u32 param_0)
Definition J3DMaterial.h:67
virtual void patch()
Definition J3DMaterial.cpp:238
virtual void diff(u32)
Definition J3DMaterial.cpp:248
static J3DTexGenBlock * createTexGenBlock(u32)
Definition J3DMaterial.cpp:30
virtual void makeSharedDisplayList()
Definition J3DMaterial.cpp:216
u16 getIndex()
Definition J3DMaterial.h:71
~J3DMaterial()
Definition J3DMaterial.h:49
static u32 calcSizeIndBlock(int)
Definition J3DMaterial.cpp:138
Definition J3DMatBlock.h:51
Definition J3DTexture.h:81
Definition J3DMatBlock.h:645
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5