mirror of
https://github.com/zeldaret/tp
synced 2026-07-10 07:06:50 -04:00
d_menu_calibration done / J3DDrawBuffer done / more d_drawlist wip (#312)
* d_drawlist work / finish J3DDrawBuffer * d_menu_calibration done * remove asm
This commit is contained in:
@@ -1,62 +1,12 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DDrawBuffer
|
||||
//
|
||||
/**
|
||||
* J3DDrawBuffer.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.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;
|
||||
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
|
||||
void J3DDrawBuffer::calcZRatio() {
|
||||
mZRatio = (mZFar - mZNear) / (f32)mBufSize;
|
||||
@@ -65,7 +15,7 @@ void J3DDrawBuffer::calcZRatio() {
|
||||
void J3DDrawBuffer::initialize() {
|
||||
mDrawType = DRAW_HEAD;
|
||||
mSortType = SORT_MAT;
|
||||
mZNear = lit_781;
|
||||
mZNear = 1.0f;
|
||||
mZFar = 10000.0f;
|
||||
mpZMtx = NULL;
|
||||
mpCallBackPacket = NULL;
|
||||
@@ -126,7 +76,9 @@ int J3DDrawBuffer::entryMatSort(J3DMatPacket* pMatPacket) {
|
||||
mpBuf[slot] = pMatPacket;
|
||||
return 1;
|
||||
} else {
|
||||
for (J3DMatPacket* pkt = (J3DMatPacket*)mpBuf[slot]; pkt != NULL; pkt = (J3DMatPacket*)pkt->getNextPacket()) {
|
||||
for (J3DMatPacket* pkt = (J3DMatPacket*)mpBuf[slot]; pkt != NULL;
|
||||
pkt = (J3DMatPacket*)pkt->getNextPacket())
|
||||
{
|
||||
if (pkt->isSame(pMatPacket)) {
|
||||
pkt->addShapePacket(pMatPacket->getShapePacket());
|
||||
return 0;
|
||||
@@ -154,7 +106,9 @@ int J3DDrawBuffer::entryMatAnmSort(J3DMatPacket* pMatPacket) {
|
||||
mpBuf[slot] = pMatPacket;
|
||||
return 1;
|
||||
} else {
|
||||
for (J3DMatPacket* pkt = (J3DMatPacket*)mpBuf[slot]; pkt != NULL; pkt = (J3DMatPacket*)pkt->getNextPacket()) {
|
||||
for (J3DMatPacket* pkt = (J3DMatPacket*)mpBuf[slot]; pkt != NULL;
|
||||
pkt = (J3DMatPacket*)pkt->getNextPacket())
|
||||
{
|
||||
if (pkt->mpMaterialAnm == pMaterialAnm) {
|
||||
pkt->addShapePacket(pMatPacket->getShapePacket());
|
||||
return 0;
|
||||
@@ -168,30 +122,8 @@ int J3DDrawBuffer::entryMatAnmSort(J3DMatPacket* pMatPacket) {
|
||||
}
|
||||
}
|
||||
|
||||
inline f32 J3DCalcZValue(register MtxP m, register Vec v) {
|
||||
register f32 out;
|
||||
|
||||
// clang-format off
|
||||
asm {
|
||||
lfs f1, lit_781(r2)
|
||||
psq_l f0, 8(v), 0, 0 /* qr0 */
|
||||
lfs f2, 0x10(v)
|
||||
psq_l f4, 32(m), 0, 0 /* qr0 */
|
||||
psq_l out, 40(m), 0, 0 /* qr0 */
|
||||
ps_merge00 f2, f2, f1
|
||||
ps_mul f4, f0, f4
|
||||
ps_madd out, f2, out, f4
|
||||
ps_sum0 out, out, out, out
|
||||
}
|
||||
// clang-format on
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
/* 8032529C-803253B4 31FBDC 0118+00 1/0 0/0 0/0 .text entryZSort__13J3DDrawBufferFP12J3DMatPacket
|
||||
*/
|
||||
// J3DCalcZValue needs work with the asm registers
|
||||
#ifdef NONMATCHING
|
||||
int J3DDrawBuffer::entryZSort(J3DMatPacket* i_packet) {
|
||||
i_packet->drawClear();
|
||||
i_packet->getShapePacket()->drawClear();
|
||||
@@ -220,16 +152,6 @@ int J3DDrawBuffer::entryZSort(J3DMatPacket* i_packet) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int J3DDrawBuffer::entryZSort(J3DMatPacket* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryZSort__13J3DDrawBufferFP12J3DMatPacket.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803253B4-80325404 31FCF4 0050+00 1/0 0/0 0/0 .text
|
||||
* entryModelSort__13J3DDrawBufferFP12J3DMatPacket */
|
||||
@@ -277,13 +199,13 @@ int J3DDrawBuffer::entryImm(J3DPacket* i_packet, u16 index) {
|
||||
}
|
||||
|
||||
/* 803CEC30-803CEC78 02BD50 0048+00 0/1 1/1 0/0 .data sortFuncTable__13J3DDrawBuffer */
|
||||
SECTION_DATA sortFunc J3DDrawBuffer::sortFuncTable[6] = {
|
||||
sortFunc J3DDrawBuffer::sortFuncTable[6] = {
|
||||
&J3DDrawBuffer::entryMatSort, &J3DDrawBuffer::entryMatAnmSort, &J3DDrawBuffer::entryZSort,
|
||||
&J3DDrawBuffer::entryModelSort, &J3DDrawBuffer::entryInvalidSort, &J3DDrawBuffer::entryNonSort,
|
||||
};
|
||||
|
||||
/* 803CEC90-803CECA8 02BDB0 0018+00 1/2 0/0 0/0 .data drawFuncTable__13J3DDrawBuffer */
|
||||
SECTION_DATA drawFunc J3DDrawBuffer::drawFuncTable[2] = {
|
||||
drawFunc J3DDrawBuffer::drawFuncTable[2] = {
|
||||
&J3DDrawBuffer::drawHead,
|
||||
&J3DDrawBuffer::drawTail,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user