diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2021-12-06 06:51:53 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-06 12:51:53 +0100 |
| commit | c15d8fcb3e91890c3aa779b391258ff9d6ce1e61 (patch) | |
| tree | 0bc477448f6b4c64925d2480b6a66f1a63a090be /include/JSystem/J3DGraphBase | |
| parent | f7916ebde17cb384c75921cf55878f5b7b305366 (diff) | |
more simple J2D/J3D funcs (#166)
* more simple J2D/J3D funcs
* JPABaseShape constructor
* fmt
Co-authored-by: lepelog <25211966+lepelog@users.noreply.github.com>
Diffstat (limited to 'include/JSystem/J3DGraphBase')
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DMatBlock.h | 44 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DMaterial.h | 6 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DPacket.h | 31 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DShape.h | 27 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DShapeMtx.h | 25 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DSys.h | 32 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DTexture.h | 27 |
7 files changed, 138 insertions, 54 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 589571f3fb..5097825618 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -21,11 +21,13 @@ struct J3DGXColor : public _GXColor { struct J3DNBTScaleInfo { /* 8032587C */ void operator=(J3DNBTScaleInfo const&); - /* 0x0 */ u8 field_0x0; + /* 0x0 */ u8 mbHasScale; /* 0x4 */ Vec mScale; }; // Size: 0x10 -struct J3DNBTScale : public J3DNBTScaleInfo {}; +struct J3DNBTScale : public J3DNBTScaleInfo { + Vec* getScale() { return &mScale; } +}; class J3DTexGenBlock { public: @@ -50,7 +52,7 @@ public: /* 8000DFD8 */ virtual J3DTexMtx* getTexMtx(u32); /* 80317424 */ virtual void setNBTScale(J3DNBTScale const*); /* 80317420 */ virtual void setNBTScale(J3DNBTScale); - /* 80317334 */ virtual bool getNBTScale(); + /* 80317334 */ virtual J3DNBTScale* getNBTScale(); /* 80317428 */ virtual bool getTexMtxOffset() const; /* 80317430 */ virtual void setTexMtxOffset(u32); /* 803171DC */ virtual ~J3DTexGenBlock(); @@ -71,7 +73,7 @@ public: /* 8031ACD0 */ virtual void diffTexMtx(); /* 8031AD30 */ virtual void diffTexGen(); /* 80317B9C */ virtual s32 countDLSize(); - /* 80322E74 */ virtual void getType(); + /* 80322E74 */ virtual u32 getType(); /* 80322D3C */ virtual void setTexGenNum(u32 const*); /* 80322D34 */ virtual void setTexGenNum(u32); /* 80322D48 */ virtual void getTexGenNum() const; @@ -98,7 +100,7 @@ public: /* 8031A9E8 */ virtual void load(); /* 8031ABC0 */ virtual void patch(); /* 80317BAC */ virtual s32 countDLSize(); - /* 80322C6C */ virtual void getType(); + /* 80322C6C */ virtual u32 getType(); /* 80322C9C */ virtual void setNBTScale(J3DNBTScale const*); /* 80322C78 */ virtual void setNBTScale(J3DNBTScale); /* 80322CC0 */ virtual void getNBTScale(); @@ -116,7 +118,7 @@ public: /* 8031A948 */ virtual void load(); /* 8031AB18 */ virtual void patch(); /* 80317BA4 */ virtual s32 countDLSize(); - /* 80322DA8 */ virtual void getType(); + /* 80322DA8 */ virtual u32 getType(); /* 80322DD8 */ virtual void setNBTScale(J3DNBTScale const*); /* 80322DB4 */ virtual void setNBTScale(J3DNBTScale); /* 80322DFC */ virtual void getNBTScale(); @@ -205,7 +207,7 @@ public: /* 8031C0AC */ virtual void patchTexNoAndTexCoordScale(); /* 8031DFB4 */ virtual void ptrToIndex(); /* 80322974 */ virtual void indexToPtr(); - /* 80322998 */ virtual void getType(); + /* 80322998 */ virtual u32 getType(); /* 80317BB4 */ virtual s32 countDLSize(); /* 803229D0 */ virtual void setTexNo(u32, u16 const*); /* 803229C0 */ virtual void setTexNo(u32, u16); @@ -269,7 +271,7 @@ public: /* 8031C854 */ virtual void patchTexNoAndTexCoordScale(); /* 80321FE8 */ virtual void ptrToIndex(); /* 80321FEC */ virtual void indexToPtr(); - /* 80322010 */ virtual void getType(); + /* 80322010 */ virtual u32 getType(); /* 80317BCC */ virtual s32 countDLSize(); /* 8032202C */ virtual void setTexNo(u32, u16 const*); /* 8032201C */ virtual void setTexNo(u32, u16); @@ -339,7 +341,7 @@ public: /* 8031C558 */ virtual void patchTexNoAndTexCoordScale(); /* 803223AC */ virtual void ptrToIndex(); /* 803223B0 */ virtual void indexToPtr(); - /* 803223D4 */ virtual void getType(); + /* 803223D4 */ virtual u32 getType(); /* 80317BC4 */ virtual s32 countDLSize(); /* 803223F0 */ virtual void setTexNo(u32, u16 const*); /* 803223E0 */ virtual void setTexNo(u32, u16); @@ -409,7 +411,7 @@ public: /* 8031CB7C */ virtual void patchTexNoAndTexCoordScale(); /* 8031DED0 */ virtual void ptrToIndex(); /* 80321C20 */ virtual void indexToPtr(); - /* 80321C44 */ virtual void getType(); + /* 80321C44 */ virtual u32 getType(); /* 80317BD4 */ virtual s32 countDLSize(); /* 80321C60 */ virtual void setTexNo(u32, u16 const*); /* 80321C50 */ virtual void setTexNo(u32, u16); @@ -479,7 +481,7 @@ public: /* 8031C2E8 */ virtual void patchTexNoAndTexCoordScale(); /* 80322770 */ virtual void ptrToIndex(); /* 80322774 */ virtual void indexToPtr(); - /* 80322798 */ virtual void getType(); + /* 80322798 */ virtual u32 getType(); /* 80317BBC */ virtual s32 countDLSize(); /* 803227B4 */ virtual void setTexNo(u32, u16 const*); /* 803227A4 */ virtual void setTexNo(u32, u16); @@ -581,7 +583,7 @@ class J3DPEBlockXlu : public J3DPEBlock { public: /* 8031E98C */ virtual void load(); /* 80317BF4 */ virtual s32 countDLSize(); - /* 80323258 */ virtual void getType(); + /* 80323258 */ virtual u32 getType(); /* 80323264 */ virtual ~J3DPEBlockXlu(); }; @@ -589,7 +591,7 @@ class J3DPEBlockTexEdge : public J3DPEBlock { public: /* 8031E6C8 */ virtual void load(); /* 80317BEC */ virtual s32 countDLSize(); - /* 803232C0 */ virtual void getType(); + /* 803232C0 */ virtual u32 getType(); /* 803232CC */ virtual ~J3DPEBlockTexEdge(); }; @@ -597,7 +599,7 @@ class J3DPEBlockOpa : public J3DPEBlock { public: /* 8031E408 */ virtual void load(); /* 80317BE4 */ virtual s32 countDLSize(); - /* 80323328 */ virtual void getType(); + /* 80323328 */ virtual u32 getType(); /* 80323334 */ virtual ~J3DPEBlockOpa(); }; @@ -612,7 +614,7 @@ public: /* 8031F940 */ virtual void diffFog(); /* 8031F9B8 */ virtual void diffBlend(); /* 80317C04 */ virtual s32 countDLSize(); - /* 8032194C */ virtual void getType(); + /* 8032194C */ virtual u32 getType(); /* 8032197C */ virtual void setFog(J3DFog); /* 80321958 */ virtual void setFog(J3DFog*); /* 803219A0 */ virtual void getFog(); @@ -654,7 +656,7 @@ public: /* 80321ACC */ virtual void diff(u32); /* 8031F0D8 */ virtual void diffBlend(); /* 80317BFC */ virtual s32 countDLSize(); - /* 80321B00 */ virtual void getType(); + /* 80321B00 */ virtual u32 getType(); /* 80321B28 */ virtual void setAlphaComp(J3DAlphaComp const*); /* 80321B0C */ virtual void setAlphaComp(J3DAlphaComp const&); /* 80321B44 */ virtual void getAlphaComp(); @@ -732,7 +734,7 @@ public: /* 8031E328 */ virtual void diff(u32); /* 8031E12C */ virtual void load(); /* 80317BDC */ virtual s32 countDLSize(); - /* 80323390 */ virtual void getType(); + /* 80323390 */ virtual u32 getType(); /* 8032339C */ virtual void setIndTexStageNum(u8); /* 803233A4 */ virtual void getIndTexStageNum() const; /* 803233AC */ virtual void setIndTexOrder(u32, J3DIndTexOrder); @@ -758,7 +760,7 @@ public: /* 803173A0 */ virtual void reset(J3DIndBlock*); /* 80317398 */ virtual void diff(u32); /* 8031739C */ virtual void load(); - /* 803173A4 */ virtual void getType(); + /* 803173A4 */ virtual u32 getType(); /* 803173B0 */ virtual ~J3DIndBlockNull(); }; @@ -830,7 +832,7 @@ public: /* 8031A4D4 */ virtual void diffColorChan(); /* 8031A8E0 */ virtual void diffLightObj(u32); /* 80317B94 */ virtual s32 countDLSize(); - /* 80322E80 */ virtual void getType(); + /* 80322E80 */ virtual u32 getType(); /* 80322EB8 */ virtual void setMatColor(u32, J3DGXColor const*); /* 80322E8C */ virtual void setMatColor(u32, J3DGXColor); /* 80322EE4 */ virtual void getMatColor(u32); @@ -878,7 +880,7 @@ public: /* 80319BB4 */ virtual void diffMatColor(); /* 80319D30 */ virtual void diffColorChan(); /* 80317B84 */ virtual s32 countDLSize(); - /* 80323560 */ virtual void getType(); + /* 80323560 */ virtual u32 getType(); /* 80323184 */ virtual void setMatColor(u32, J3DGXColor const*); /* 80323158 */ virtual void setMatColor(u32, J3DGXColor); /* 803231B0 */ virtual void getMatColor(u32); @@ -913,7 +915,7 @@ public: /* 8031816C */ virtual void load(); /* 8031FDE4 */ virtual void reset(J3DColorBlock*); /* 80317B8C */ virtual s32 countDLSize(); - /* 80323074 */ virtual void getType(); + /* 80323074 */ virtual u32 getType(); /* 803230AC */ virtual void setAmbColor(u32, J3DGXColor const*); /* 80323080 */ virtual void setAmbColor(u32, J3DGXColor); /* 803230D8 */ virtual void getAmbColor(u32); diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index 5478f70764..6814350795 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -45,6 +45,7 @@ public: /* 80316E70 */ virtual void change(); J3DMaterial* getNext() const { return mNext; } + J3DShape* getShape() const { return mShape; } J3DTevBlock* getTevBlock() const { return mTevBlock; } J3DColorBlock* getColorBlock() const { return mColorBlock; } J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; } @@ -57,8 +58,9 @@ public: return NULL; } } + J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); } -private: +public: /* 0x04 */ J3DMaterial* mNext; /* 0x08 */ J3DShape* mShape; /* 0x0C */ J3DJoint* mJoint; @@ -72,7 +74,7 @@ private: /* 0x2C */ J3DTevBlock* mTevBlock; /* 0x30 */ J3DIndBlock* mIndBlock; /* 0x34 */ J3DPEBlock* mPEBlock; - /* 0x38 */ J3DMaterial* field_0x38; + /* 0x38 */ J3DMaterial* mpOrigMaterial; /* 0x3C */ J3DMaterialAnm* mMaterialAnm; /* 0x40 */ J3DCurrentMtx mCurrentMtx; /* 0x48 */ J3DDisplayListObj* mSharedDLObj; diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h index cca1e0c60b..21bb39e83a 100644 --- a/include/JSystem/J3DGraphBase/J3DPacket.h +++ b/include/JSystem/J3DGraphBase/J3DPacket.h @@ -57,6 +57,7 @@ public: } void addChildPacket(J3DPacket*); + J3DPacket* getNextPacket() const { return mpNextSibling; } inline void clear() { mpNextSibling = NULL; @@ -81,9 +82,22 @@ public: J3DError newSingleDisplayList(u32); virtual void draw(); - J3DDisplayListObj* getDisplayListObj() { return mpDisplayListObj; } + J3DDisplayListObj* getDisplayListObj() const { return mpDisplayListObj; } void setDisplayListObj(J3DDisplayListObj* pObj) { mpDisplayListObj = pObj; } + void callDL() const { getDisplayListObj()->callDL(); } + + enum { + LOCKED = 0x01, + }; + + bool checkFlag(u32 flag) const { return (mFlags & flag) != 0; } + void onFlag(u32 flag) { mFlags |= flag; } + void offFlag(u32 flag) { mFlags &= ~flag; } + void lock() { onFlag(LOCKED); } + void unlock() { offFlag(LOCKED); } + J3DTexMtx* getTexMtxObj() const { return mpTexMtx; } + public: /* 0x10 */ u32 mFlags; /* 0x14 */ char mPad0[0x0C]; // unk @@ -104,11 +118,16 @@ public: void setShape(J3DShape* pShape) { mpShape = pShape; } void setModel(J3DModel* pModel) { mpModel = pModel; } + void setMtxBuffer(J3DMtxBuffer* pMtxBuffer) { mpMtxBuffer = pMtxBuffer; } + void setBaseMtxPtr(Mtx* pMtx) { mpBaseMtxPtr = pMtx; } + + J3DShape* getShape() const { return mpShape; } + J3DModel* getModel() const { return mpModel; } public: /* 0x28 */ J3DShape* mpShape; /* 0x2C */ J3DMtxBuffer* mpMtxBuffer; - /* 0x30 */ Mtx* mpViewMtx; + /* 0x30 */ Mtx* mpBaseMtxPtr; /* 0x34 */ u32 mDiffFlag; /* 0x38 */ J3DModel* mpModel; }; // Size: 0x3C @@ -121,13 +140,17 @@ public: void endDiff(); bool isSame(J3DMatPacket*) const; + J3DShapePacket* getShapePacket() const { return mpShapePacket; } + void setShapePacket(J3DShapePacket* packet) { mpShapePacket = packet; } + void setInitShapePacket(J3DShapePacket* packet) { mpInitShapePacket = packet; } + virtual ~J3DMatPacket(); virtual bool entry(J3DDrawBuffer*); virtual void draw(); public: - /* 0x28 */ J3DShapePacket* mpShapePacket; - /* 0x2C */ J3DShapePacket* mpFirstShapePacket; + /* 0x28 */ J3DShapePacket* mpInitShapePacket; + /* 0x2C */ J3DShapePacket* mpShapePacket; /* 0x30 */ J3DMaterial* mpMaterial; /* 0x34 */ u32 mSortFlags; /* 0x38 */ J3DTexture* mpTexture; diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h index 332acb3d15..1fd8e7c56c 100644 --- a/include/JSystem/J3DGraphBase/J3DShape.h +++ b/include/JSystem/J3DGraphBase/J3DShape.h @@ -23,6 +23,13 @@ class J3DMaterial; class J3DVertexData; class J3DDrawMtxData; +enum J3DShpFlag { + J3DShpFlag_SkinPosCpu = 0x0004, + J3DShpFlag_SkinNrmCpu = 0x0008, + J3DShpFlag_Hidden = 0x0010, + J3DShpFlag_EnableLod = 0x0100, +}; + class J3DShape { public: /* 80314B48 */ void initialize(); @@ -44,13 +51,23 @@ public: void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } + bool checkFlag(u32 flag) { return !!(mFlags & flag); } void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; } void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; } void* getVcdVatCmd() const { return mVcdVatCmd; } void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; } void show() { offFlag(1); } void hide() { onFlag(1); } + void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; } + void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; } + void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; } + void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; } + bool getNBTFlag() const { return mHasNBT; } + u32 getBumpMtxOffset() const { return mBumpMtxOffset; } + inline J3DMaterial* getMaterial() const { return mMaterial; } + inline u32 getPipeline() const { return (mFlags >> 2) & 7; } + inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; } static void resetVcdVatCache() { sOldVcdVatCmd = NULL; } static void* sOldVcdVatCmd; @@ -64,17 +81,17 @@ private: /* 0x14 */ Vec mMin; /* 0x20 */ Vec mMax; /* 0x2C */ void* mVcdVatCmd; - /* 0x30 */ _GXAttr* mVtxDesc; + /* 0x30 */ GXVtxDescList* mVtxDesc; /* 0x34 */ bool mHasNBT; - /* 0x38 */ J3DShapeMtx* mShapeMtx; - /* 0x3C */ J3DShapeDraw* mShapeDraw; + /* 0x38 */ J3DShapeMtx** mShapeMtx; + /* 0x3C */ J3DShapeDraw** mShapeDraw; /* 0x40 */ J3DCurrentMtx mCurrentMtx; /* 0x48 */ bool mHasPNMTXIdx; /* 0x4C */ J3DVertexData* mVertexData; /* 0x50 */ J3DDrawMtxData* mDrawMtxData; /* 0x54 */ u8* mScaleFlagArray; - /* 0x58 */ Mtx* mDrawMtx; - /* 0x5C */ Mtx* mNrmMtx; + /* 0x58 */ Mtx** mDrawMtx; + /* 0x5C */ Mtx33** mNrmMtx; /* 0x60 */ u32* mCurrentViewNo; /* 0x64 */ u32 mBumpMtxOffset; }; diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index bfc1f90c33..ced0ec979b 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -4,6 +4,19 @@ #include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" +class J3DTexMtx; +class J3DTexGenBlock; + +class J3DDifferedTexMtx { +public: + /* 8031322C */ void loadExecute(f32 const (*)[4]); + + static J3DTexGenBlock* sTexGenBlock; + static J3DTexMtx* sTexMtxObj; +}; + +extern u8 struct_804515B0[4]; + class J3DShapeMtx { public: /* 803130A8 */ void resetMtxLoadCache(); @@ -20,10 +33,14 @@ public: /* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); static u8 sMtxLoadPipeline[48]; - static u8 sMtxLoadCache[20 + 4 /* padding */]; - static u8 sCurrentPipeline[4]; - static u8 sCurrentScaleFlag[4]; - static u8 sTexMtxLoadType[4]; + static u16 sMtxLoadCache[10 + 2 /* padding */]; + static u32 sCurrentPipeline; + // static J3DScaleFlag sCurrentScaleFlag; + static u8* sCurrentScaleFlag; + static u32 sTexMtxLoadType; + + static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; } + static void setLODFlag(u8 flag) { struct_804515B0[1] = flag; } private: /* 0x04 */ u16 mUseMtxIndex; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 75a181eab4..8dfca2d554 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -19,8 +19,14 @@ class J3DShape; class J3DDrawBuffer; class J3DTexture; +enum J3DSysFlag { + J3DSysFlag_SkinPosCpu = 0x00000004, + J3DSysFlag_SkinNrmCpu = 0x00000008, + J3DSysFlag_PostTexMtx = 0x40000000, +}; + struct J3DSys { - /* 0x000 */ Mtx mMtx; + /* 0x000 */ Mtx mViewMtx; /* 0x030 */ J3DMtxCalc* mCurrentMtxCalc; /* 0x034 */ u32 mFlags; /* 0x038 */ J3DModel* mModel; @@ -31,7 +37,9 @@ struct J3DSys { /* 0x050 */ u32 mDrawMode; /* 0x054 */ u32 mMaterialMode; /* 0x058 */ J3DTexture* mTexture; - /* 0x05C */ u8 field_0x5c[0x10C - 0x5C]; + /* 0x05C */ u8 field_0x5c[0x104 - 0x5C]; + /* 0x104 */ Mtx* mModelDrawMtx; + /* 0x104 */ Mtx33* mModelNrmMtx; /* 0x10C */ void* mVtxPos; /* 0x110 */ void* mVtxNrm; /* 0x114 */ _GXColor* mVtxCol; @@ -56,17 +64,25 @@ struct J3DSys { /* 0x4 */ XLU, }; + Mtx* getViewMtx() { return &mViewMtx; } + void setDrawModeOpaTexEdge() { mDrawMode = OPA_TEX_EDGE; } void setDrawModeXlu() { mDrawMode = XLU; } + void* getVtxPos() const { return mVtxPos; } void setVtxPos(void* pVtxPos) { mVtxPos = pVtxPos; } + void* getVtxNrm() const { return mVtxNrm; } void setVtxNrm(void* pVtxNrm) { mVtxNrm = pVtxNrm; } + void* getVtxCol() const { return mVtxCol; } void setVtxCol(_GXColor* pVtxCol) { mVtxCol = pVtxCol; } void setModel(J3DModel* pModel) { mModel = pModel; } + void setShapePacket(J3DShapePacket* pPacket) { mShapePacket = pPacket; } + void setMatPacket(J3DMatPacket* pPacket) { mMatPacket = pPacket; } + void setMaterialMode(u32 mode) { mMaterialMode = mode; } void setTexture(J3DTexture* pTex) { mTexture = pTex; } @@ -74,6 +90,18 @@ struct J3DSys { void offFlag(u32 flag) { mFlags &= ~flag; } + bool checkFlag(u32 flag) { return mFlags & flag; } + + void setModelDrawMtx(Mtx* pMtxArr) { + mModelDrawMtx = pMtxArr; + GXSetArray(GX_POS_MTX_ARRAY, mModelDrawMtx, sizeof(*mModelDrawMtx)); + } + + void setModelNrmMtx(Mtx33* pMtxArr) { + mModelNrmMtx = pMtxArr; + GXSetArray(GX_NRM_MTX_ARRAY, mModelNrmMtx, sizeof(*mModelNrmMtx)); + } + static Mtx mCurrentMtx; static Vec mCurrentS; static Vec mParentS; diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h index 52d11fca65..93e098842f 100644 --- a/include/JSystem/J3DGraphBase/J3DTexture.h +++ b/include/JSystem/J3DGraphBase/J3DTexture.h @@ -3,6 +3,7 @@ #include "JSystem/JUtility/JUTTexture.h" #include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/mtx44.h" #include "dolphin/types.h" class J3DTexture { @@ -18,27 +19,21 @@ public: }; struct J3DTextureSRTInfo { - /* 0x00 */ f32 field_0x0; - /* 0x04 */ f32 field_0x4; - /* 0x08 */ s16 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; + /* 0x00 */ f32 mScaleX; + /* 0x04 */ f32 mScaleY; + /* 0x08 */ s16 mRotation; + /* 0x0C */ f32 mTranslationX; + /* 0x10 */ f32 mTranslationY; }; // Size: 0x14 struct J3DTexMtxInfo { /* 80325718 */ void operator=(J3DTexMtxInfo const&); - /* 0x00 */ u8 field_0x0; - /* 0x01 */ u8 field_0x1; - /* 0x04 */ f32 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ J3DTextureSRTInfo field_0x10; - /* 0x24 */ Mtx mEffectMtx; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ f32 field_0x60; + /* 0x00 */ u8 mProjection; + /* 0x01 */ u8 mInfo; + /* 0x04 */ Vec mCenter; + /* 0x10 */ J3DTextureSRTInfo mSRT; + /* 0x24 */ Mtx44 mEffectMtx; }; // Size: 0x64 class J3DTexMtx { |
