diff options
Diffstat (limited to 'src/JSystem/J2DGraph/J2DMatBlock.cpp')
| -rw-r--r-- | src/JSystem/J2DGraph/J2DMatBlock.cpp | 101 |
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)); } |
