Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DTexture.h
Go to the documentation of this file.
1#ifndef J3DTEXTURE_H
2#define J3DTEXTURE_H
3
5#include "JSystem/J3DAssert.h"
7#include "global.h"
8#include <stdint.h>
9
15private:
16 /* 0x0 */ u16 mNum;
17 /* 0x2 */ u16 unk_0x2;
18 /* 0x4 */ ResTIMG* mpRes;
19
20public:
21 J3DTexture(u16 num, ResTIMG* res) : mNum(num), unk_0x2(0), mpRes(res) {
22 J3D_ASSERT_NULLPTR(52, res && num);
23 }
24
25 void loadGX(u16, GXTexMapID) const;
26 void entryNum(u16);
27 void addResTIMG(u16, ResTIMG const*);
28 virtual ~J3DTexture() {}
29
30 u16 getNum() const { return mNum; }
31
33 J3D_ASSERT_RANGE(72, index < mNum);
34 return &mpRes[index];
35 }
36
37 void setResTIMG(u16 index, const ResTIMG& timg) {
38 J3D_ASSERT_RANGE(81, index < mNum);
39 mpRes[index] = timg;
40 mpRes[index].imageOffset = ((mpRes[index].imageOffset + (uintptr_t)&timg - (uintptr_t)(mpRes + index)));
41 mpRes[index].paletteOffset = ((mpRes[index].paletteOffset + (uintptr_t)&timg - (uintptr_t)(mpRes + index)));
42 }
43};
44
46
51class J3DTexMtx {
52public:
56
57 J3DTexMtx(const J3DTexMtxInfo& info) {
58 mTexMtxInfo = info;
59 }
60
61 void load(u32) const;
62 void calc(const Mtx);
63 void calcTexMtx(const Mtx);
64 void calcPostTexMtx(const Mtx);
65 void loadTexMtx(u32) const;
66 void loadPostTexMtx(u32) const;
67
69 Mtx& getMtx() { return mMtx; }
70 void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
71
72private:
74 /* 0x64 */ Mtx mMtx;
75}; // Size: 0x94
76
78
95
96 u8 getTexGenType() const { return mTexGenType; }
97 u8 getTexGenSrc() const { return mTexGenSrc; }
98 u8 getTexGenMtx() const { return mTexGenMtx; }
99 u32 getTexMtxReg() const { return mTexMtxReg & 0xff; }
100 void setTexGenMtx(u8 param_1) { mTexGenMtx = param_1; }
101 void setTexMtxReg(u16 reg) { mTexMtxReg = reg; }
103#if DEBUG
105#else
106 // Fakematch: Instruction order is wrong with __memcpy or J3DTexCoordInfo::operator=
107 *(u32*)this = *(u32*)&other;
108#endif
109 return *this;
110 }
111
114 }
115
116 /* 0x4 */ u16 mTexMtxReg;
117}; // Size: 0x6
118
119#endif /* J3DTEXTURE_H */
J3DTexMtxInfo const j3dDefaultTexMtxInfo
Definition J3DTevs.cpp:333
J3DTexCoordInfo const j3dDefaultTexCoordInfo[8]
Definition J3DTevs.cpp:326
Definition J3DTexture.h:51
J3DTexMtx(const J3DTexMtxInfo &info)
Definition J3DTexture.h:57
Mtx & getMtx()
Definition J3DTexture.h:69
void calcPostTexMtx(const Mtx)
Definition J3DTevs.cpp:163
J3DTexMtxInfo mTexMtxInfo
Definition J3DTexture.h:73
void calc(const Mtx)
Definition J3DTevs.cpp:64
void loadTexMtx(u32) const
Definition J3DTevs.cpp:445
void calcTexMtx(const Mtx)
Definition J3DTevs.cpp:68
void loadPostTexMtx(u32) const
Definition J3DTevs.cpp:450
J3DTexMtxInfo & getTexMtxInfo()
Definition J3DTexture.h:68
Mtx mMtx
Definition J3DTexture.h:74
void load(u32) const
Definition J3DTevs.cpp:56
J3DTexMtx()
Definition J3DTexture.h:53
void setEffectMtx(Mtx effectMtx)
Definition J3DTexture.h:70
Definition J3DTexture.h:14
u16 unk_0x2
Definition J3DTexture.h:17
void addResTIMG(u16, ResTIMG const *)
Definition J3DTexture.cpp:48
void setResTIMG(u16 index, const ResTIMG &timg)
Definition J3DTexture.h:37
virtual ~J3DTexture()
Definition J3DTexture.h:28
u16 getNum() const
Definition J3DTexture.h:30
void loadGX(u16, GXTexMapID) const
Definition J3DTexture.cpp:6
u16 mNum
Definition J3DTexture.h:16
ResTIMG * mpRes
Definition J3DTexture.h:18
J3DTexture(u16 num, ResTIMG *res)
Definition J3DTexture.h:21
ResTIMG * getResTIMG(u16 index) const
Definition J3DTexture.h:32
void entryNum(u16)
Definition J3DTexture.cpp:35
static u8 index[20][3]
Definition GXDraw.c:434
enum _GXTexMapID GXTexMapID
f32 Mtx[3][4]
Definition mtx.h:25
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition J3DStruct.h:218
u8 mTexGenSrc
Definition J3DStruct.h:220
u8 mTexGenMtx
Definition J3DStruct.h:221
J3DTexCoordInfo & operator=(const J3DTexCoordInfo &other)
Definition J3DStruct.h:224
u8 mTexGenType
Definition J3DStruct.h:219
Definition J3DTexture.h:83
void setTexMtxReg(u16 reg)
Definition J3DTexture.h:101
u8 getTexGenMtx() const
Definition J3DTexture.h:98
void setTexGenMtx(u8 param_1)
Definition J3DTexture.h:100
void resetTexMtxReg()
Definition J3DTexture.h:112
void setTexCoordInfo(const J3DTexCoordInfo &info)
Definition J3DTexture.h:92
u16 mTexMtxReg
Definition J3DTexture.h:116
u8 getTexGenSrc() const
Definition J3DTexture.h:97
J3DTexCoord(const J3DTexCoordInfo &info)
Definition J3DTexture.h:88
J3DTexCoord()
Definition J3DTexture.h:84
u32 getTexMtxReg() const
Definition J3DTexture.h:99
u8 getTexGenType() const
Definition J3DTexture.h:96
J3DTexCoord & operator=(const J3DTexCoord &other)
Definition J3DTexture.h:102
Definition J3DStruct.h:78
void setEffectMtx(Mtx)
Definition J3DStruct.cpp:102
Image data header.
Definition JUTTexture.h:18
uintptr_t imageOffset
Definition JUTTexture.h:40
uintptr_t paletteOffset
Definition JUTTexture.h:28