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
23 void loadGX(u16, GXTexMapID) const;
24 void entryNum(u16);
25 void addResTIMG(u16, ResTIMG const*);
26 virtual ~J3DTexture() {}
27
28 u16 getNum() const { return mNum; }
29
31 J3D_ASSERT_RANGE(72, index < mNum);
32 return &mpRes[index];
33 }
34
35 void setResTIMG(u16 index, const ResTIMG& timg) {
36 mpRes[index] = timg;
37 mpRes[index].imageOffset = ((mpRes[index].imageOffset + (uintptr_t)&timg - (uintptr_t)(mpRes + index)));
38 mpRes[index].paletteOffset = ((mpRes[index].paletteOffset + (uintptr_t)&timg - (uintptr_t)(mpRes + index)));
39 }
40};
41
43
48class J3DTexMtx {
49public:
53
54 J3DTexMtx(const J3DTexMtxInfo& info) {
55 mTexMtxInfo = info;
56 }
57
58 void load(u32) const;
59 void calc(const Mtx);
60 void calcTexMtx(const Mtx);
61 void calcPostTexMtx(const Mtx);
62 void loadTexMtx(u32) const;
63 void loadPostTexMtx(u32) const;
64
66 Mtx& getMtx() { return mMtx; }
67 void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
68
69private:
71 /* 0x64 */ Mtx mMtx;
72}; // Size: 0x94
73
79 /* 0x0 */ u8 mTexGenType;
80 /* 0x1 */ u8 mTexGenSrc;
81 /* 0x2 */ u8 mTexGenMtx;
82 /* 0x3 */ u8 pad;
83
85 __memcpy(this, &other, sizeof(J3DTexCoordInfo));
86 return *this;
87 }
88};
89
91
106 __memcpy(this, &info, sizeof(J3DTexCoordInfo));
107 }
108
109 u8 getTexGenType() const { return mTexGenType; }
110 u8 getTexGenSrc() const { return mTexGenSrc; }
111 u8 getTexGenMtx() const { return mTexGenMtx; }
112 u32 getTexMtxReg() const { return mTexMtxReg & 0xff; }
113 void setTexGenMtx(u8 param_1) { mTexGenMtx = param_1; }
114 void setTexMtxReg(u16 reg) { mTexMtxReg = reg; }
116#if DEBUG
118#else
119 // Fakematch: Instruction order is wrong with __memcpy or J3DTexCoordInfo::operator=
120 *(u32*)this = *(u32*)&other;
121#endif
122 return *this;
123 }
124
127 }
128
129 /* 0x4 */ u16 mTexMtxReg;
130}; // Size: 0x6
131
132#endif /* J3DTEXTURE_H */
static u8 index[20][3]
Definition GXDraw.c:434
J3DTexMtxInfo const j3dDefaultTexMtxInfo
J3DTexCoordInfo const j3dDefaultTexCoordInfo[8]
Definition J3DTexture.h:48
J3DTexMtx(const J3DTexMtxInfo &info)
Definition J3DTexture.h:54
Mtx & getMtx()
Definition J3DTexture.h:66
void calcPostTexMtx(const Mtx)
Definition J3DTevs.cpp:163
J3DTexMtxInfo mTexMtxInfo
Definition J3DTexture.h:70
void calc(const Mtx)
Definition J3DTevs.cpp:64
void loadTexMtx(u32) const
Definition J3DTevs.cpp:446
void calcTexMtx(const Mtx)
Definition J3DTevs.cpp:68
void loadPostTexMtx(u32) const
Definition J3DTevs.cpp:451
J3DTexMtxInfo & getTexMtxInfo()
Definition J3DTexture.h:65
Mtx mMtx
Definition J3DTexture.h:71
void load(u32) const
Definition J3DTevs.cpp:56
J3DTexMtx()
Definition J3DTexture.h:50
void setEffectMtx(Mtx effectMtx)
Definition J3DTexture.h:67
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:35
virtual ~J3DTexture()
Definition J3DTexture.h:26
u16 getNum() const
Definition J3DTexture.h:28
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:30
void entryNum(u16)
Definition J3DTexture.cpp:35
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
void * __memcpy(void *, const void *, int)
Definition J3DTexture.h:78
u8 mTexGenSrc
Definition J3DTexture.h:80
u8 mTexGenMtx
Definition J3DTexture.h:81
J3DTexCoordInfo & operator=(const J3DTexCoordInfo &other)
Definition J3DTexture.h:84
u8 mTexGenType
Definition J3DTexture.h:79
u8 pad
Definition J3DTexture.h:82
Definition J3DTexture.h:96
void setTexMtxReg(u16 reg)
Definition J3DTexture.h:114
u8 getTexGenMtx() const
Definition J3DTexture.h:111
void setTexGenMtx(u8 param_1)
Definition J3DTexture.h:113
void resetTexMtxReg()
Definition J3DTexture.h:125
void setTexCoordInfo(const J3DTexCoordInfo &info)
Definition J3DTexture.h:105
u16 mTexMtxReg
Definition J3DTexture.h:129
u8 getTexGenSrc() const
Definition J3DTexture.h:110
J3DTexCoord(const J3DTexCoordInfo &info)
Definition J3DTexture.h:101
J3DTexCoord()
Definition J3DTexture.h:97
u32 getTexMtxReg() const
Definition J3DTexture.h:112
u8 getTexGenType() const
Definition J3DTexture.h:109
J3DTexCoord & operator=(const J3DTexCoord &other)
Definition J3DTexture.h:115
Definition J3DStruct.h:97
void setEffectMtx(Mtx)
Definition J3DStruct.cpp:31
Image data header.
Definition JUTTexture.h:18
uintptr_t imageOffset
Definition JUTTexture.h:40
uintptr_t paletteOffset
Definition JUTTexture.h:28