J3DNode/J3DTransform progress

This commit is contained in:
Jasper St. Pierre
2023-09-21 23:26:10 -07:00
parent 96c226599c
commit b60bf4df32
5 changed files with 69 additions and 37 deletions
+10 -7
View File
@@ -1,6 +1,8 @@
#ifndef J3DNODE_H
#define J3DNODE_H
#include "dolphin/mtx/mtx.h"
class J3DNode;
typedef int (*J3DNodeCallBack)(J3DNode*, int);
@@ -11,7 +13,8 @@ public:
virtual void calcIn();
virtual u32 getType();
virtual ~J3DNode();
J3DNode();
void appendChild(J3DNode*);
J3DNode* getYounger() { return mYounger; }
@@ -20,11 +23,11 @@ public:
J3DNodeCallBack getCallBack() { return mCallBack; }
J3DNode* getChild() { return mChild; }
/* 0x00 */ void* mCallBackUserData;
/* 0x04 */ J3DNodeCallBack mCallBack;
/* 0x08 */ void* field_0x8;
/* 0x0C */ J3DNode* mChild;
/* 0x10 */ J3DNode* mYounger;
}; // Size: 0x14
/* 0x04 */ void* mCallBackUserData;
/* 0x08 */ J3DNodeCallBack mCallBack;
/* 0x0C */ void* field_0x8;
/* 0x10 */ J3DNode* mChild;
/* 0x14 */ J3DNode* mYounger;
}; // Size: 0x18
#endif /* J3DNODE_H */
+2 -22
View File
@@ -20,28 +20,8 @@ void J3DGetTranslateRotateMtx(s16, s16, s16, f32, f32, f32, Mtx);
void J3DPSCalcInverseTranspose(f32 (*param_0)[4], f32 (*param_1)[3]);
void J3DGQRSetup7(u32 param_0, u32 param_1, u32 param_2, u32 param_3);
inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) {
register f32 x_y1;
register f32 z1;
register f32 x_y2;
register f32 z2;
register f32 x_y3;
register f32 z3;
asm {
psq_l x_y1, 0(src), 0, 0
lfs z1, 8(src)
psq_l x_y2, 16(src), 0, 0
lfs z2, 0x18(src)
psq_l x_y3, 32(src), 0, 0
lfs z3, 0x28(src)
psq_st x_y1, 0(dst), 0, 0
stfs z1, 8(dst)
psq_st x_y2, 12(dst), 0, 0
stfs z2, 0x14(dst)
psq_st x_y3, 24(dst), 0, 0
stfs z3, 0x20(dst)
}
}
void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst);
void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst);
// regalloc issues
inline void J3DPSMulMtxVec(register MtxP mtx, register Vec* vec, register Vec* dst) {