Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DDrawBuffer.h
Go to the documentation of this file.
1#ifndef J3DDRAWBUFFER_H
2#define J3DDRAWBUFFER_H
3
5
6// matches debug
7inline f32 J3DCalcZValue(__REGISTER MtxP m, __REGISTER Vec v) {
8#ifdef __MWERKS__
9 __REGISTER f32 temp_f4;
10 __REGISTER f32 out;
11 __REGISTER f32 temp_f0;
12 __REGISTER f32 temp_f2;
13 __REGISTER f32 temp_f1 = 1.0f;
14
15 // clang-format off
16 asm {
17 psq_l temp_f0, 0(v), 0, 0 /* qr0 */
18 lfs temp_f2, 8(v)
19 psq_l temp_f4, 32(m), 0, 0 /* qr0 */
20 psq_l out, 40(m), 0, 0 /* qr0 */
21 ps_merge00 temp_f2, temp_f2, temp_f1
22 ps_mul temp_f4, temp_f0, temp_f4
23 ps_madd out, temp_f2, out, temp_f4
24 ps_sum0 out, out, out, out
25 }
26 // clang-format on
27
28 return out;
29#endif
30}
31
32class J3DDrawBuffer;
33class J3DPacket;
34class J3DDrawPacket;
35class J3DMatPacket;
36class J3DShapePacket;
37
44
55
61public:
63 typedef void (J3DDrawBuffer::*drawFunc)() const;
64
67 void initialize();
68 int allocBuffer(u32);
69 void frameInit();
76 int entryImm(J3DPacket* pPacket, u16 index);
77 void draw() const;
78 void drawHead() const;
79 void drawTail() const;
80
82 int getSortMode() { return mSortMode; }
83
84 inline void calcZRatio();
87 void setZMtx(MtxP mtx) { mpZMtx = mtx; }
88
89public:
90 /* 0x00 */ J3DPacket** mpBuffer;
91 /* 0x04 */ u32 mEntryTableSize;
92 /* 0x08 */ u32 mDrawMode;
93 /* 0x0C */ u32 mSortMode;
94 /* 0x10 */ f32 mZNear;
95 /* 0x14 */ f32 mZFar;
96 /* 0x18 */ f32 mZRatio;
97 /* 0x1C */ MtxP mpZMtx;
99
100 static sortFunc sortFuncTable[6];
101 static drawFunc drawFuncTable[2];
102 static int entryNum;
103};
104
105#endif /* J3DDRAWBUFFER_H */
J3DDrawBufSortMode
Definition J3DDrawBuffer.h:45
@ J3DDrawBufSortMode_Invalid
Definition J3DDrawBuffer.h:50
@ J3DDrawBufSortMode_Z
Definition J3DDrawBuffer.h:48
@ J3DDrawBufSortMode_Model
Definition J3DDrawBuffer.h:49
@ J3DDrawBufSortMode_MatAnm
Definition J3DDrawBuffer.h:47
@ J3DDrawBufSortMode_Mat
Definition J3DDrawBuffer.h:46
@ J3DDrawBufSortMode_MAX
Definition J3DDrawBuffer.h:53
@ J3DDrawBufSortMode_Non
Definition J3DDrawBuffer.h:51
f32 J3DCalcZValue(__REGISTER MtxP m, __REGISTER Vec v)
Definition J3DDrawBuffer.h:7
J3DDrawBufDrawMode
Definition J3DDrawBuffer.h:38
@ J3DDrawBufDrawMode_Tail
Definition J3DDrawBuffer.h:40
@ J3DDrawBufDrawMode_MAX
Definition J3DDrawBuffer.h:42
@ J3DDrawBufDrawMode_Head
Definition J3DDrawBuffer.h:39
static Mtx mtx[10]
Definition c_lib.cpp:486
Definition J3DDrawBuffer.h:60
J3DPacket ** mpBuffer
Definition J3DDrawBuffer.h:90
~J3DDrawBuffer()
Definition J3DDrawBuffer.cpp:39
int getSortMode()
Definition J3DDrawBuffer.h:82
int(J3DDrawBuffer::*) sortFunc(J3DMatPacket *)
Definition J3DDrawBuffer.h:62
static int entryNum
Definition J3DDrawBuffer.h:102
int entryMatSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:54
static drawFunc drawFuncTable[2]
Definition J3DDrawBuffer.h:212
void calcZRatio()
Definition J3DDrawBuffer.cpp:12
int entryNonSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:187
u32 mEntryTableSize
Definition J3DDrawBuffer.h:91
u32 mDrawMode
Definition J3DDrawBuffer.h:92
void initialize()
Definition J3DDrawBuffer.cpp:16
void setZSort()
Definition J3DDrawBuffer.h:86
u32 mSortMode
Definition J3DDrawBuffer.h:93
f32 mZRatio
Definition J3DDrawBuffer.h:96
static sortFunc sortFuncTable[6]
Definition J3DDrawBuffer.h:207
void draw() const
Definition J3DDrawBuffer.cpp:219
void drawTail() const
Definition J3DDrawBuffer.cpp:237
u32 getEntryTableSize()
Definition J3DDrawBuffer.h:81
int entryMatAnmSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:97
int allocBuffer(u32)
Definition J3DDrawBuffer.cpp:27
void setZMtx(MtxP mtx)
Definition J3DDrawBuffer.h:87
J3DDrawBuffer()
Definition J3DDrawBuffer.h:65
int entryZSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:129
int entryImm(J3DPacket *pPacket, u16 index)
Definition J3DDrawBuffer.cpp:198
int entryModelSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:159
void(J3DDrawBuffer::*) drawFunc() const
Definition J3DDrawBuffer.h:63
void setNonSort()
Definition J3DDrawBuffer.h:85
void drawHead() const
Definition J3DDrawBuffer.cpp:226
int entryInvalidSort(J3DMatPacket *)
Definition J3DDrawBuffer.cpp:173
MtxP mpZMtx
Definition J3DDrawBuffer.h:97
f32 mZNear
Definition J3DDrawBuffer.h:94
void frameInit()
Definition J3DDrawBuffer.cpp:46
f32 mZFar
Definition J3DDrawBuffer.h:95
J3DPacket * mpCallBackPacket
Definition J3DDrawBuffer.h:98
Definition J3DPacket.h:174
Definition J3DPacket.h:258
Definition J3DPacket.h:139
Definition J3DPacket.h:218
static u8 index[20][3]
Definition GXDraw.c:434
f32(* MtxP)[4]
Definition mtx.h:38
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
int m
Definition e_atan2.c:62
double v
Definition e_pow.c:163
Definition mtx.h:13