mirror of https://github.com/zeldaret/tp.git
337 lines
10 KiB
C++
337 lines
10 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: J3DDrawBuffer
|
|
//
|
|
|
|
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
|
#include "JSystem/JKernel/JKRHeap.h"
|
|
#include "dol2asm.h"
|
|
#include "dolphin/types.h"
|
|
|
|
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void initialize__13J3DDrawBufferFv();
|
|
extern "C" void allocBuffer__13J3DDrawBufferFUl();
|
|
extern "C" void __dt__13J3DDrawBufferFv();
|
|
extern "C" void frameInit__13J3DDrawBufferFv();
|
|
extern "C" void entryMatSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryZSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryModelSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryNonSort__13J3DDrawBufferFP12J3DMatPacket();
|
|
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
|
|
extern "C" void draw__13J3DDrawBufferCFv();
|
|
extern "C" void drawHead__13J3DDrawBufferCFv();
|
|
extern "C" void drawTail__13J3DDrawBufferCFv();
|
|
extern "C" void __sinit_J3DDrawBuffer_cpp();
|
|
extern "C" u8 sortFuncTable__13J3DDrawBuffer[72];
|
|
extern "C" u8 drawFuncTable__13J3DDrawBuffer[24];
|
|
extern "C" u8 entryNum__13J3DDrawBuffer[4 + 4 /* padding */];
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
extern "C" void* __nwa__FUli();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void __dla__FPv();
|
|
extern "C" void addChildPacket__9J3DPacketFP9J3DPacket();
|
|
extern "C" void addShapePacket__12J3DMatPacketFP14J3DShapePacket();
|
|
extern "C" void isSame__12J3DMatPacketCFP12J3DMatPacket();
|
|
extern "C" void __ptmf_scall();
|
|
extern "C" void __cvt_fp2unsigned();
|
|
extern "C" void _savegpr_27();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _restgpr_27();
|
|
extern "C" void _restgpr_28();
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* ############################################################################################## */
|
|
/* 80456400-80456404 004A00 0004+00 2/2 0/0 0/0 .sdata2 @781 */
|
|
SECTION_SDATA2 static f32 lit_781 = 1.0f;
|
|
|
|
/* 80456404-80456408 004A04 0004+00 1/1 0/0 0/0 .sdata2 @782 */
|
|
SECTION_SDATA2 static f32 lit_782 = 10000.0f;
|
|
|
|
/* 80456408-80456410 004A08 0008+00 2/2 0/0 0/0 .sdata2 @784 */
|
|
SECTION_SDATA2 static f64 lit_784 = 4503599627370496.0 /* cast u32 to float */;
|
|
|
|
void J3DDrawBuffer::calcZRatio() {
|
|
mZRatio = (mZFar - mZNear) / (f32)mBufSize;
|
|
}
|
|
|
|
void J3DDrawBuffer::initialize() {
|
|
mDrawType = 0;
|
|
mSortType = 0;
|
|
mZNear = lit_781;
|
|
mZFar = lit_782;
|
|
mpZMtx = NULL;
|
|
mpCallBackPacket = NULL;
|
|
mBufSize = 0x20;
|
|
calcZRatio();
|
|
}
|
|
|
|
J3DError J3DDrawBuffer::allocBuffer(u32 bufSize) {
|
|
mpBuf = new (0x20) J3DPacket*[bufSize];
|
|
if (mpBuf == NULL)
|
|
return kJ3DError_Alloc;
|
|
|
|
mBufSize = bufSize;
|
|
frameInit();
|
|
calcZRatio();
|
|
return kJ3DError_Success;
|
|
}
|
|
|
|
J3DDrawBuffer::~J3DDrawBuffer() {
|
|
frameInit();
|
|
|
|
delete[] mpBuf;
|
|
mpBuf = NULL;
|
|
}
|
|
|
|
#if NON_MATCHING
|
|
|
|
/* 80325068-8032509C 31F9A8 0034+00 2/2 1/1 0/0 .text frameInit__13J3DDrawBufferFv */
|
|
void J3DDrawBuffer::frameInit() {
|
|
// can't make mwcc not generate "mtctr" for this loop
|
|
for (int i = 0; i < mBufSize; i++)
|
|
mpBuf[i] = NULL;
|
|
|
|
mpCallBackPacket = NULL;
|
|
}
|
|
|
|
#else
|
|
|
|
/* 80325068-8032509C 31F9A8 0034+00 2/2 1/1 0/0 .text frameInit__13J3DDrawBufferFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::frameInit() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/frameInit__13J3DDrawBufferFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
#endif
|
|
|
|
/* 8032509C-803251E4 31F9DC 0148+00 2/1 0/0 0/0 .text
|
|
* entryMatSort__13J3DDrawBufferFP12J3DMatPacket */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::entryMatSort(J3DMatPacket* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryMatSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803251E4-8032529C 31FB24 00B8+00 1/0 0/0 0/0 .text
|
|
* entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::entryMatAnmSort(J3DMatPacket* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8032529C-803253B4 31FBDC 0118+00 1/0 0/0 0/0 .text entryZSort__13J3DDrawBufferFP12J3DMatPacket
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::entryZSort(J3DMatPacket* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryZSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803253B4-80325404 31FCF4 0050+00 1/0 0/0 0/0 .text
|
|
* entryModelSort__13J3DDrawBufferFP12J3DMatPacket */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::entryModelSort(J3DMatPacket* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryModelSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80325404-80325458 31FD44 0054+00 1/0 0/0 0/0 .text
|
|
* entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::entryInvalidSort(J3DMatPacket* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
|
}
|
|
#pragma pop
|
|
|
|
bool J3DDrawBuffer::entryNonSort(J3DMatPacket* pMat) {
|
|
pMat->clear();
|
|
pMat->mpFirstShapePacket->clear();
|
|
|
|
// inlined copy of entryImm, add to start of buf
|
|
pMat->mpNextSibling = mpBuf[0];
|
|
mpBuf[0] = pMat;
|
|
return true;
|
|
}
|
|
|
|
bool J3DDrawBuffer::entryImm(J3DPacket* pPacket, u16 index) {
|
|
pPacket->mpNextSibling = mpBuf[index];
|
|
mpBuf[index] = pPacket;
|
|
return true;
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 803CEBE8-803CEBF4 -00001 000C+00 1/1 0/0 0/0 .data @992 */
|
|
SECTION_DATA static void* lit_992[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryMatSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
|
|
/* 803CEBF4-803CEC00 -00001 000C+00 0/1 0/0 0/0 .data @993 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_993[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC00-803CEC0C -00001 000C+00 0/1 0/0 0/0 .data @994 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_994[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryZSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC0C-803CEC18 -00001 000C+00 0/1 0/0 0/0 .data @995 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_995[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryModelSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC18-803CEC24 -00001 000C+00 0/1 0/0 0/0 .data @996 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_996[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC24-803CEC30 -00001 000C+00 0/1 0/0 0/0 .data @997 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_997[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)entryNonSort__13J3DDrawBufferFP12J3DMatPacket,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC30-803CEC78 02BD50 0048+00 0/1 1/1 0/0 .data sortFuncTable__13J3DDrawBuffer */
|
|
SECTION_DATA u8 J3DDrawBuffer::sortFuncTable[72] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 803CEC78-803CEC84 -00001 000C+00 0/1 0/0 0/0 .data @998 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_998[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)drawHead__13J3DDrawBufferCFv,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC84-803CEC90 -00001 000C+00 0/1 0/0 0/0 .data @999 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DATA static void* lit_999[3] = {
|
|
(void*)NULL,
|
|
(void*)0xFFFFFFFF,
|
|
(void*)drawTail__13J3DDrawBufferCFv,
|
|
};
|
|
#pragma pop
|
|
|
|
/* 803CEC90-803CECA8 02BDB0 0018+00 1/2 0/0 0/0 .data drawFuncTable__13J3DDrawBuffer */
|
|
SECTION_DATA u8 J3DDrawBuffer::drawFuncTable[24] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 803254AC-80325500 31FDEC 0054+00 0/0 2/2 0/0 .text draw__13J3DDrawBufferCFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::draw() const {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/draw__13J3DDrawBufferCFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80325500-80325578 31FE40 0078+00 1/0 0/0 0/0 .text drawHead__13J3DDrawBufferCFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::drawHead() const {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/drawHead__13J3DDrawBufferCFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80325578-803255F0 31FEB8 0078+00 1/0 0/0 0/0 .text drawTail__13J3DDrawBufferCFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DDrawBuffer::drawTail() const {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/drawTail__13J3DDrawBufferCFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803255F0-803256C4 31FF30 00D4+00 0/0 1/0 0/0 .text __sinit_J3DDrawBuffer_cpp */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void __sinit_J3DDrawBuffer_cpp() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/__sinit_J3DDrawBuffer_cpp.s"
|
|
}
|
|
#pragma pop
|
|
|
|
#pragma push
|
|
#pragma force_active on
|
|
REGISTER_CTORS(0x803255F0, __sinit_J3DDrawBuffer_cpp);
|
|
#pragma pop
|
|
|
|
/* ############################################################################################## */
|
|
/* 804515E0-804515E8 000AE0 0004+04 0/0 1/1 0/0 .sbss entryNum__13J3DDrawBuffer */
|
|
u8 J3DDrawBuffer::entryNum[4 + 4 /* padding */];
|