// // Generated By: dol2asm // Translation Unit: J3DTexture // #include "JSystem/J3DGraphBase/J3DTexture.h" #include "dolphin/gx.h" #include "global.h" /* 8031204C-803121A4 30C98C 0158+00 0/0 1/1 0/0 .text loadGX__10J3DTextureCFUs11_GXTexMapID */ void J3DTexture::loadGX(u16 idx, GXTexMapID texMapID) const { J3D_ASSERT(0, idx < mNum, "Error : range over."); ResTIMG* timg = getResTIMG(idx); GXTexObj texObj; if (!timg->indexTexture) { GXInitTexObj(&texObj, ((u8*)timg) + timg->imageOffset, timg->width, timg->height, (GXTexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT, (GXBool)timg->mipmapEnabled); } else { GXTlutObj tlutObj; GXInitTexObjCI(&texObj, ((u8*)timg) + timg->imageOffset, timg->width, timg->height, (GXCITexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT, (GXBool)timg->mipmapEnabled, (u32)texMapID); GXInitTlutObj(&tlutObj, ((u8*)timg) + timg->paletteOffset, (GXTlutFmt)timg->colorFormat, timg->numColors); GXLoadTlut(&tlutObj, texMapID); } const f32 kLODClampScale = 1.0f / 8.0f; const f32 kLODBiasScale = 1.0f / 100.0f; GXInitTexObjLOD(&texObj, (GXTexFilter)timg->minFilter, (GXTexFilter)timg->magFilter, timg->minLOD * kLODClampScale, timg->maxLOD * kLODClampScale, timg->LODBias * kLODBiasScale, (GXBool)timg->biasClamp, (GXBool)timg->doEdgeLOD, (GXAnisotropy)timg->maxAnisotropy); GXLoadTexObj(&texObj, texMapID); } /* 803121A4-8031221C 30CAE4 0078+00 1/1 0/0 0/0 .text entryNum__10J3DTextureFUs */ void J3DTexture::entryNum(u16 num) { J3D_ASSERT(79, num != 0, "Error : non-zero argument is specified 0."); mNum = num; mpRes = new ResTIMG[num](); J3D_ASSERT(83, mpRes != 0, "Error : allocate memory."); for (s32 i = 0; i < mNum; i++) { mpRes[i].paletteOffset = 0; mpRes[i].imageOffset = 0; } } /* 8031221C-80312488 30CB5C 026C+00 0/0 1/1 0/0 .text addResTIMG__10J3DTextureFUsPC7ResTIMG */ void J3DTexture::addResTIMG(u16 newNum, ResTIMG const* newRes) { if (newNum == 0) return; J3D_ASSERT(105, newRes != 0, "Error : null pointer."); u16 oldNum = mNum; ResTIMG* oldRes = mpRes; entryNum(mNum + newNum); for (u16 i = 0; i < oldNum; i++) { setResTIMG(i, oldRes[i]); } for (u16 i = oldNum; i < mNum; i++) { setResTIMG(i, newRes[i]); } }