summaryrefslogtreecommitdiff
path: root/src/JSystem/J2DGraph/J2DMatBlock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/J2DGraph/J2DMatBlock.cpp')
-rw-r--r--src/JSystem/J2DGraph/J2DMatBlock.cpp101
1 files changed, 54 insertions, 47 deletions
diff --git a/src/JSystem/J2DGraph/J2DMatBlock.cpp b/src/JSystem/J2DGraph/J2DMatBlock.cpp
index b7e34c8338..f8f530924a 100644
--- a/src/JSystem/J2DGraph/J2DMatBlock.cpp
+++ b/src/JSystem/J2DGraph/J2DMatBlock.cpp
@@ -76,11 +76,13 @@ void J2DTexGenBlock::setTexMtx(u32 param_0, J2DTexMtx& param_1) {
void J2DTexGenBlock::getTexMtx(u32 param_0, J2DTexMtx& param_1) {
J3D_PANIC(123, param_0 < 8, "Error : range over.");
-
- if (mTexMtx[param_0]) {
- J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
- param_1.setTexMtxInfo(texMtxInfo);
+
+ if (!mTexMtx[param_0]) {
+ return;
}
+
+ J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
+ param_1.setTexMtxInfo(texMtxInfo);
}
JUTTexture* J2DTevBlock::getTexture(u32) {
@@ -349,6 +351,7 @@ void J2DTevBlock1::shiftDeleteFlag(u8, bool) {
void J2DTevBlock1::setGX() {
loadTexture(GX_TEXMAP0, 0);
+ (void)bool(mFont);
GXSetTevOrder(GX_TEVSTAGE0, (GXTexCoordID)mTevOrder[0].getTexCoord(), (GXTexMapID)mTevOrder[0].getTexMap(), (GXChannelID)mTevOrder[0].getColor());
for (int i = 0; i < 4; i++) {
@@ -366,10 +369,10 @@ void J2DTevBlock1::setGX() {
GXTevAlphaArg(mTevStage[0].getAlphaD()));
GXSetTevColorOp(GX_TEVSTAGE0, GXTevOp(mTevStage[0].getCOp()),
GXTevBias(mTevStage[0].getCBias()), GXTevScale(mTevStage[0].getCScale()),
- mTevStage[0].getCClamp(), GXTevRegID(mTevStage[0].getCReg()));
+ GXBool(mTevStage[0].getCClamp()), GXTevRegID(mTevStage[0].getCReg()));
GXSetTevAlphaOp(GX_TEVSTAGE0, (GXTevOp)mTevStage[0].getAOp(),
GXTevBias(mTevStage[0].getABias()), GXTevScale(mTevStage[0].getAScale()),
- mTevStage[0].getAClamp(), GXTevRegID(mTevStage[0].getAReg()));
+ GXBool(mTevStage[0].getAClamp()), GXTevRegID(mTevStage[0].getAReg()));
GXSetTevKColorSel(GX_TEVSTAGE0, mTevKColorSel[0] != 0xff ? GXTevKColorSel(mTevKColorSel[0]) : GX_TEV_KCSEL_1);
GXSetTevKAlphaSel(GX_TEVSTAGE0, mTevKAlphaSel[0] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[0]) : GX_TEV_KASEL_1);
for (int i = 0; i < 4; i++) {
@@ -483,28 +486,27 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
return false;
}
- JUTTexture* tex;
u8 tlutid = 0;
- if (p_timg->indexTexture && p_tlut == NULL) {
- tex = mTexture[0];
- if (tex != NULL && tex->getTexInfo() != NULL && tex->getTexInfo()->indexTexture) {
- int tlutname = tex->getTlutName();
+ if (p_timg->indexTexture && p_tlut == NULL && mTexture[0] != NULL) {
+ const ResTIMG* timg = mTexture[0]->getTexInfo();
+ if (timg != NULL && timg->indexTexture) {
+ int tlutname = mTexture[0]->getTlutName();
if (tlutname == GX_TLUT0 || tlutname == GX_BIGTLUT0) {
tlutid = 1;
}
}
}
- tex = mTexture[texNo];
- if (tex == NULL) {
- JUTTexture* newtex = new JUTTexture(p_timg, tlutid);
+ JUTTexture* tex;
+ if (mTexture[texNo] == NULL) {
+ tex = new JUTTexture(p_timg, tlutid);
- if (newtex == NULL) {
+ if (tex == NULL) {
return false;
}
if (p_tlut != NULL) {
- newtex->storeTIMG(p_timg, p_tlut);
+ tex->storeTIMG(p_timg, p_tlut);
}
if (param_0 == 0) {
@@ -512,10 +514,11 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
mPalette[1] = mPalette[0];
mTexNo[1] = mTexNo[0];
}
- mTexture[param_0] = newtex;
+ mTexture[param_0] = tex;
shiftDeleteFlag(param_0, true);
mUndeleteFlag |= (1 << param_0);
} else {
+ tex = mTexture[texNo];
if (p_tlut == NULL) {
tex->storeTIMG(p_timg, tlutid);
} else {
@@ -604,9 +607,8 @@ bool J2DTevBlock2::setTexture(u32 param_0, ResTIMG const* p_timg) {
const ResTIMG* timg = mTexture[idx]->getTexInfo();
if (timg != NULL && timg->indexTexture) {
int tlutname = mTexture[idx]->getTlutName();
- u8 tlut_no = tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0);
- if (tlut_no == 0) {
+ if (u8(tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0)) == 0) {
tlutid = 1;
}
}
@@ -763,7 +765,7 @@ void J2DTevBlock2::shiftDeleteFlag(u8 param_0, bool param_1) {
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
}
- mUndeleteFlag = (mUndeleteFlag | tmpFlags) & 0xFF;
+ mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
}
void J2DTevBlock2::setGX() {
@@ -771,6 +773,8 @@ void J2DTevBlock2::setGX() {
loadTexture(GXTexMapID(i), i);
}
+ (void)bool(mFont);
+
for (int i = 0; i < mTevStageNum; i++) {
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
}
@@ -791,10 +795,10 @@ void J2DTevBlock2::setGX() {
GXTevAlphaArg(mTevStage[i].getAlphaD()));
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
- mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
+ GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
- mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
+ GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
}
@@ -943,8 +947,9 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
}
}
}
+ JUTTexture* texture;
if (!mTexture[idx]) {
- JUTTexture* texture = new JUTTexture(p_timg, local_43);
+ texture = new JUTTexture(p_timg, local_43);
if (!texture) {
return false;
}
@@ -960,7 +965,7 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
shiftDeleteFlag(param_0, true);
mUndeleteFlag |= 1 << param_0;
} else {
- JUTTexture* texture = mTexture[idx];
+ texture = mTexture[idx];
if (!p_tlut) {
texture->storeTIMG(p_timg, local_43);
} else {
@@ -1037,10 +1042,9 @@ bool J2DTevBlock4::setTexture(u32 param_0, ResTIMG const* p_timg) {
return false;
}
- u8 used_tlut;
u8 tlutid = 0;
if (p_timg != NULL && p_timg->indexTexture) {
- used_tlut = 0;
+ u8 used_tlut = 0;
for (int i = 0; i < 4; i++) {
if (i != param_0 && mTexture[i] != NULL) {
const ResTIMG* timg = mTexture[i]->getTexInfo();
@@ -1213,13 +1217,14 @@ void J2DTevBlock4::shiftDeleteFlag(u8 param_0, bool param_1) {
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
}
- mUndeleteFlag |= tmpFlags;
+ mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
}
void J2DTevBlock4::setGX() {
for (int i = 0; i < 4; i++) {
loadTexture(GXTexMapID(i), i);
}
+ (void)bool(mFont);
for (int i = 0; i < mTevStageNum; i++) {
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
}
@@ -1238,10 +1243,10 @@ void J2DTevBlock4::setGX() {
GXTevAlphaArg(mTevStage[i].getAlphaD()));
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
- mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
+ GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
- mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
+ GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
}
@@ -1387,8 +1392,9 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
}
}
}
+ JUTTexture* texture;
if (!mTexture[idx]) {
- JUTTexture* texture = new JUTTexture(p_timg, local_43);
+ texture = new JUTTexture(p_timg, local_43);
if (!texture) {
return false;
}
@@ -1404,7 +1410,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
shiftDeleteFlag(param_0, true);
mUndeleteFlag |= 1 << param_0;
} else {
- JUTTexture* texture = mTexture[idx];
+ texture = mTexture[idx];
if (!p_tlut) {
texture->storeTIMG(p_timg, local_43);
} else {
@@ -1459,7 +1465,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, JUTTexture* p_tex) {
delete mTexture[7];
}
- mUndeleteFlag &= 0x7F;
+ mUndeleteFlag &= ~0x80;
}
for (u8 i = 7; i > param_0; i--) {
@@ -1481,10 +1487,9 @@ bool J2DTevBlock8::setTexture(u32 param_0, ResTIMG const* p_timg) {
return false;
}
- u8 used_tlut;
u8 tlutid = 0;
if (p_timg != NULL && p_timg->indexTexture) {
- used_tlut = 0;
+ u8 used_tlut = 0;
for (int i = 0; i < 8; i++) {
if (i != param_0 && mTexture[i] != NULL) {
const ResTIMG* timg = mTexture[i]->getTexInfo();
@@ -1659,6 +1664,7 @@ void J2DTevBlock8::setGX() {
for (int i = 0; i < 8; i++) {
loadTexture(GXTexMapID(i), i);
}
+ (void)bool(mFont);
for (int i = 0; i < mTevStageNum; i++) {
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
}
@@ -1677,10 +1683,10 @@ void J2DTevBlock8::setGX() {
GXTevAlphaArg(mTevStage[i].getAlphaD()));
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
- mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
+ GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
- mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
+ GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
}
@@ -1826,8 +1832,9 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
}
}
}
+ JUTTexture* texture;
if (!mTexture[idx]) {
- JUTTexture* texture = new JUTTexture(p_timg, local_43);
+ texture = new JUTTexture(p_timg, local_43);
if (!texture) {
return false;
}
@@ -1843,7 +1850,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
shiftDeleteFlag(param_0, true);
mUndeleteFlag |= 1 << param_0;
} else {
- JUTTexture* texture = mTexture[idx];
+ texture = mTexture[idx];
if (!p_tlut) {
texture->storeTIMG(p_timg, local_43);
} else {
@@ -1898,7 +1905,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, JUTTexture* p_tex) {
delete mTexture[7];
}
- mUndeleteFlag &= 0x7F;
+ mUndeleteFlag &= ~0x80;
}
for (u8 i = 7; i > param_0; i--) {
@@ -1920,10 +1927,9 @@ bool J2DTevBlock16::setTexture(u32 param_0, ResTIMG const* p_timg) {
return false;
}
- u8 used_tlut;
u8 tlutid = 0;
if (p_timg != NULL && p_timg->indexTexture) {
- used_tlut = 0;
+ u8 used_tlut = 0;
for (int i = 0; i < 8; i++) {
if (i != param_0 && mTexture[i] != NULL) {
const ResTIMG* timg = mTexture[i]->getTexInfo();
@@ -2098,6 +2104,7 @@ void J2DTevBlock16::setGX() {
for (int i = 0; i < 8; i++) {
loadTexture(GXTexMapID(i), i);
}
+ (void)bool(mFont);
for (int i = 0; i < mTevStageNum; i++) {
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
}
@@ -2116,10 +2123,10 @@ void J2DTevBlock16::setGX() {
GXTevAlphaArg(mTevStage[i].getAlphaD()));
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
- mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
+ GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
- mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
+ GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
}
@@ -2149,13 +2156,13 @@ void J2DTevBlock16::loadTexture(GXTexMapID texmapID, u32 texIndex) {
void J2DIndBlockFull::initialize() {
mIndTexStageNum = 0;
for (int i = 0; i < 4; i++) {
- mIndTexOrder[i] = j2dDefaultIndTexOrderNull;
+ mIndTexOrder[i].setIndTexOrderInfo(j2dDefaultIndTexOrderNull);
}
for (int i = 0; i < 3; i++) {
- mIndTexMtx[i] = j2dDefaultIndTexMtxInfo;
+ mIndTexMtx[i].setIndTexMtxInfo(j2dDefaultIndTexMtxInfo);
}
for (int i = 0; i < 4; i++) {
- mTexCoordScale[i] = j2dDefaultIndTexCoordScaleInfo;
+ mTexCoordScale[i].setIndTexCoordScaleInfo(j2dDefaultIndTexCoordScaleInfo);
}
}
@@ -2181,5 +2188,5 @@ void J2DPEBlock::initialize() {
void J2DPEBlock::setGX() {
GXSetAlphaCompare(GXCompare(mAlphaComp.getComp0()), mAlphaComp.getRef0(), GXAlphaOp(mAlphaComp.getOp()), GXCompare(mAlphaComp.getComp1()), mAlphaComp.getRef1());
GXSetBlendMode(GXBlendMode(mBlend.getType()), GXBlendFactor(mBlend.getSrcFactor()), GXBlendFactor(mBlend.getDstFactor()), GXLogicOp(mBlend.getOp()));
- GXSetDither(mDither);
+ GXSetDither(GXBool(mDither));
}