mirror of https://github.com/zeldaret/tp.git
J2DMatBlock
This commit is contained in:
parent
f17a48b011
commit
482e14d270
|
@ -16,6 +16,16 @@ struct ResTLUT;
|
|||
|
||||
struct J2DGXColorS10 : public GXColorS10 {
|
||||
/* 802F1B90 */ J2DGXColorS10();
|
||||
|
||||
/*
|
||||
J2DGXColorS10& operator=(const GXColorS10& other) {
|
||||
r = other.r;
|
||||
g = other.g;
|
||||
b = other.b;
|
||||
a = other.a;
|
||||
return *this;
|
||||
}
|
||||
*/
|
||||
};
|
||||
|
||||
struct J2DTevSwapModeInfo;
|
||||
|
|
|
@ -124,25 +124,6 @@ private:
|
|||
/* 0x0 */ J2DIndTexCoordScaleInfo mInfo;
|
||||
}; // Size: 0x2
|
||||
|
||||
class J2DIndTevStage {
|
||||
public:
|
||||
/* 802EA044 */ void load(u8);
|
||||
/* 802F18A0 */ J2DIndTevStage();
|
||||
|
||||
private:
|
||||
/* 0x0 */ u32 mFlags;
|
||||
|
||||
GXIndTexStageID getIndStage() const { return (GXIndTexStageID)(mFlags & 0x03); }
|
||||
GXIndTexFormat getIndFormat() const { return (GXIndTexFormat)((mFlags >> 2) & 0x03); }
|
||||
GXIndTexBiasSel getBiasSel() const { return (GXIndTexBiasSel)((mFlags >> 4) & 0x07); }
|
||||
GXIndTexWrap getWrapS() const { return (GXIndTexWrap)((mFlags >> 8) & 0x07); }
|
||||
GXIndTexWrap getWrapT() const { return (GXIndTexWrap)((mFlags >> 11) & 0x07); }
|
||||
GXIndTexMtxID getMtxSel() const { return (GXIndTexMtxID)((mFlags >> 16) & 0x0F); }
|
||||
GXBool getPrev() const { return (GXBool)((mFlags >> 20) & 0x01); }
|
||||
GXBool getLod() const { return (GXBool)((mFlags >> 21) & 0x01); }
|
||||
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
|
||||
};
|
||||
|
||||
struct J2DIndTevStageInfo {
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
|
@ -161,6 +142,27 @@ inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) {
|
|||
(info.field_0x2 << 4) | (info.field_0x1 << 2) | info.field_0x0;
|
||||
}
|
||||
|
||||
class J2DIndTevStage {
|
||||
public:
|
||||
/* 802EA044 */ void load(u8);
|
||||
/* 802F18A0 */ J2DIndTevStage();
|
||||
|
||||
void setIndTevStageInfo(const J2DIndTevStageInfo& info) { mFlags = J2DCalcIndTevStage(info); }
|
||||
|
||||
private:
|
||||
/* 0x0 */ u32 mFlags;
|
||||
|
||||
GXIndTexStageID getIndStage() const { return (GXIndTexStageID)(mFlags & 0x03); }
|
||||
GXIndTexFormat getIndFormat() const { return (GXIndTexFormat)((mFlags >> 2) & 0x03); }
|
||||
GXIndTexBiasSel getBiasSel() const { return (GXIndTexBiasSel)((mFlags >> 4) & 0x07); }
|
||||
GXIndTexWrap getWrapS() const { return (GXIndTexWrap)((mFlags >> 8) & 0x07); }
|
||||
GXIndTexWrap getWrapT() const { return (GXIndTexWrap)((mFlags >> 11) & 0x07); }
|
||||
GXIndTexMtxID getMtxSel() const { return (GXIndTexMtxID)((mFlags >> 16) & 0x0F); }
|
||||
GXBool getPrev() const { return (GXBool)((mFlags >> 20) & 0x01); }
|
||||
GXBool getLod() const { return (GXBool)((mFlags >> 21) & 0x01); }
|
||||
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
|
||||
};
|
||||
|
||||
struct J2DTexCoordInfo {
|
||||
/* 0x0 */ u8 mTexGenType;
|
||||
/* 0x1 */ u8 mTexGenSrc;
|
||||
|
@ -191,18 +193,26 @@ struct J2DTevOrderInfo {
|
|||
/* 0x0 */ u8 mTexCoord;
|
||||
/* 0x1 */ u8 mTexMap;
|
||||
/* 0x2 */ u8 mColor;
|
||||
/* 0x3 */ u8 field_0x3;
|
||||
|
||||
J2DTevOrderInfo& operator=(const J2DTevOrderInfo& other) {
|
||||
mTexCoord = other.mTexCoord;
|
||||
mTexMap = other.mTexMap;
|
||||
mColor = other.mColor;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
class J2DTevOrder {
|
||||
public:
|
||||
/* 802F1B70 */ J2DTevOrder();
|
||||
|
||||
void setTevOrderInfo(const J2DTevOrderInfo& info) {mTevOrderInfo = info; }
|
||||
GXChannelID getColor() const { return (GXChannelID)mTevOrderInfo.mColor; }
|
||||
GXTexMapID getTexMap() const { return (GXTexMapID)mTevOrderInfo.mTexMap; }
|
||||
GXTexCoordID getTexCoord() const { return (GXTexCoordID)mTevOrderInfo.mTexCoord; }
|
||||
|
||||
/* 0x0 */ J2DTevOrderInfo mTevOrderInfo;
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
};
|
||||
|
||||
struct J2DTevStageInfo {
|
||||
|
@ -240,6 +250,11 @@ public:
|
|||
/* 802F1940 */ J2DTevStage();
|
||||
/* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&);
|
||||
|
||||
void setStageNo(u32 param_0) {
|
||||
field_0x0 = (param_0 << 1) - 0x40;
|
||||
field_0x4 = (param_0 << 1) - 0x3f;
|
||||
}
|
||||
|
||||
void setTevSwapModeInfo(const J2DTevSwapModeInfo& swapInfo) {
|
||||
setTexSel(swapInfo.field_0x1);
|
||||
setRasSel(swapInfo.field_0x0);
|
||||
|
@ -358,10 +373,24 @@ private:
|
|||
/* 0x7 */ u8 field_0x7;
|
||||
};
|
||||
|
||||
struct J2DTevSwapModeTableInfo {
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ u8 field_0x2;
|
||||
/* 0x3 */ u8 field_0x3;
|
||||
};
|
||||
|
||||
inline u8 J2DCalcTevSwapTable(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
|
||||
return (param_0 << 6) + (param_1 << 4) + (param_2 << 2) + param_3;
|
||||
}
|
||||
|
||||
class J2DTevSwapModeTable {
|
||||
public:
|
||||
/* 802F1934 */ J2DTevSwapModeTable();
|
||||
|
||||
void setTevSwapModeTableInfo(const J2DTevSwapModeTableInfo& info) {
|
||||
field_0x0 = J2DCalcTevSwapTable(info.field_0x0, info.field_0x1, info.field_0x2, info.field_0x3);
|
||||
}
|
||||
u8 getR() { return field_0x0 >> 6 & 3; }
|
||||
u8 getG() { return field_0x0 >> 4 & 3; }
|
||||
u8 getB() { return field_0x0 >> 2 & 3; }
|
||||
|
|
|
@ -358,11 +358,11 @@ extern "C" extern void* __vt__11J2DIndBlock[14];
|
|||
extern "C" extern GXColor j2dDefaultColInfo;
|
||||
extern "C" extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
|
||||
extern "C" extern u16 j2dDefaultIndTexOrderNull[1 + 1 /* padding */];
|
||||
extern "C" extern u8 j2dDefaultTevColor[8];
|
||||
extern "C" extern J2DGXColorS10 j2dDefaultTevColor;
|
||||
extern "C" extern u8 j2dDefaultIndTexCoordScaleInfo[2 + 2 /* padding */];
|
||||
extern "C" extern u32 j2dDefaultTevKColor;
|
||||
extern "C" extern GXColor j2dDefaultTevKColor;
|
||||
extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
|
||||
extern "C" extern u32 j2dDefaultTevSwapModeTable;
|
||||
extern "C" extern J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable;
|
||||
extern "C" extern u8 data_804561A4;
|
||||
extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
|
||||
extern "C" extern u8 data_804561AC;
|
||||
|
@ -771,6 +771,29 @@ J2DTevBlock1::~J2DTevBlock1() {
|
|||
}
|
||||
|
||||
/* 802EBA50-802EBC0C 2E6390 01BC+00 1/0 0/0 0/0 .text initialize__12J2DTevBlock1Fv */
|
||||
// inlines
|
||||
#ifdef NONMATCHING
|
||||
void J2DTevBlock1::initialize() {
|
||||
mTexNo[0] = -1;
|
||||
mFontNo = -1;
|
||||
mTevOrder[0].setTevOrderInfo(j2dDefaultTevOrderInfoNull);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevColor[i] = j2dDefaultTevColor;
|
||||
}
|
||||
mTevStage[0].setStageNo(0);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColor[i] = j2dDefaultTevKColor;
|
||||
}
|
||||
mTevKColorSel[0] = -1;
|
||||
mTevKAlphaSel[0] = -1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevSwapModeTable[i].setTevSwapModeTableInfo(j2dDefaultTevSwapModeTable);
|
||||
}
|
||||
mIndTevStage[0].setIndTevStageInfo(j2dDefaultIndTevStageInfo);
|
||||
mPalette[0] = NULL;
|
||||
mFont = NULL;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -780,6 +803,7 @@ extern "C" asm void initialize__12J2DTevBlock1Fv() {
|
|||
#include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock1Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802EBC0C-802EBCC0 2E654C 00B4+00 1/0 0/0 0/0 .text prepareTexture__12J2DTevBlock1FUc
|
||||
*/
|
||||
|
@ -1526,6 +1550,42 @@ J2DTevBlock4::~J2DTevBlock4() {
|
|||
}
|
||||
|
||||
/* 802EDAC4-802EDD34 2E8404 0270+00 1/0 0/0 0/0 .text initialize__12J2DTevBlock4Fv */
|
||||
// inlines
|
||||
#ifdef NONMATCHING
|
||||
void J2DTevBlock4::initialize() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTexNo[i] = -1;
|
||||
}
|
||||
mFontNo = -1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevOrder[i].setTevOrderInfo(j2dDefaultTevOrderInfoNull);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevColor[i] = j2dDefaultTevColor;
|
||||
}
|
||||
mTevStageNum = 1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevStage[i].setStageNo(i);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColor[i] = j2dDefaultTevKColor;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColorSel[i] = -1;
|
||||
mTevKAlphaSel[i] = -1;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevSwapModeTable[i].setTevSwapModeTableInfo(j2dDefaultTevSwapModeTable);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mIndTevStage[i].setIndTevStageInfo(j2dDefaultIndTevStageInfo);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mPalette[i] = NULL;
|
||||
}
|
||||
mFont = NULL;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -1535,6 +1595,7 @@ extern "C" asm void initialize__12J2DTevBlock4Fv() {
|
|||
#include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock4Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802EDD34-802EDE04 2E8674 00D0+00 1/0 0/0 0/0 .text prepareTexture__12J2DTevBlock4FUc
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue