more simple J2D/J3D funcs (#166)

* more simple J2D/J3D funcs

* JPABaseShape constructor

* fmt

Co-authored-by: lepelog <25211966+lepelog@users.noreply.github.com>
This commit is contained in:
Jasper St. Pierre
2021-12-06 06:51:53 -05:00
committed by GitHub
parent f7916ebde1
commit c15d8fcb3e
168 changed files with 1976 additions and 4562 deletions
+41 -12
View File
@@ -1,6 +1,7 @@
#ifndef J2DTEVS_H
#define J2DTEVS_H
#include "dolphin/gx/GX.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
@@ -13,12 +14,19 @@ struct J2DTextureSRTInfo {
}; // Size: 0x14
struct J2DTexMtxInfo {
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
enum {
/* 0x0 */ DCC_NONE,
/* 0x1 */ DCC_MAYA,
};
/* 0x00 */ u8 mTexMtxType;
/* 0x01 */ u8 mTexMtxDCC;
/* 0x02 */ u8 field_0x2; // padding ?
/* 0x03 */ u8 field_0x3; // padding ?
/* 0x04 */ Vec field_0x4;
/* 0x04 */ Vec mCenter;
/* 0x10 */ J2DTextureSRTInfo mTexSRTInfo;
GXTexMtxType getTexMtxType() const { return (GXTexMtxType)mTexMtxType; }
}; // Size: 0x24
class J2DTexMtx {
@@ -29,13 +37,16 @@ public:
/* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, f32 (*)[4]);
private:
/* 0x00 */ J2DTexMtxInfo mTexMtxInfo;
/* 0x00 */ J2DTexMtxInfo mInfo;
/* 0x24 */ Mtx mTexMtx;
};
struct J2DIndTexOrderInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x0 */ u8 mTexCoordID;
/* 0x1 */ u8 mTexMapID;
GXTexCoordID getTexCoordID() const { return (GXTexCoordID)mTexCoordID; }
GXTexMapID getTexMapID() const { return (GXTexMapID)mTexMapID; }
};
class J2DIndTexOrder {
@@ -44,12 +55,12 @@ public:
/* 802EA0FC */ void load(u8);
private:
/* 0x0 */ J2DIndTexOrderInfo mIndTexOrderInfo;
/* 0x0 */ J2DIndTexOrderInfo mInfo;
};
struct J2DIndTexMtxInfo {
/* 0x00 */ Mtx23 mMtx;
/* 0x18 */ u8 field_0x18;
/* 0x18 */ s8 mScaleExp;
};
class J2DIndTexMtx {
@@ -65,8 +76,11 @@ private:
}; // Size: 0x1C
struct J2DIndTexCoordScaleInfo {
/* 0x0 */ u8 field_0x0;
/* 0x0 */ u8 field_0x1;
/* 0x0 */ u8 mScaleS;
/* 0x0 */ u8 mScaleT;
GXIndTexScale getScaleS() const { return (GXIndTexScale)mScaleS; }
GXIndTexScale getScaleT() const { return (GXIndTexScale)mScaleT; }
};
class J2DIndTexCoordScale {
@@ -76,7 +90,7 @@ public:
/* 802EA0CC */ void load(u8);
private:
/* 0x0 */ J2DIndTexCoordScaleInfo mIndTexCoordScaleInfo;
/* 0x0 */ J2DIndTexCoordScaleInfo mInfo;
}; // Size: 0x2
class J2DIndTevStage {
@@ -86,6 +100,16 @@ public:
private:
/* 0x0 */ u32 mFlags;
GXIndTexStageID getIndStage() const { return (GXIndTexStageID)(mFlags & 0x03); }
GXIndTexFormat getIndFormat() const { return (GXIndTexFormat)((mFlags >> 2) & 0x03); }
GXIndTexBiasSel getBiasSel() const { return (GXIndTexBiasSel)((mFlags >> 4) & 0x07); }
GXIndTexWrap getWrapS() const { return (GXIndTexWrap)((mFlags >> 8) & 0x07); }
GXIndTexWrap getWrapT() const { return (GXIndTexWrap)((mFlags >> 11) & 0x07); }
GXIndTexMtxID getMtxSel() const { return (GXIndTexMtxID)((mFlags >> 16) & 0x0F); }
GXBool getPrev() const { return (GXBool)((mFlags >> 20) & 0x01); }
GXBool getLod() const { return (GXBool)((mFlags >> 21) & 0x01); }
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
};
struct J2DTexCoordInfo {
@@ -156,7 +180,12 @@ private:
/* 0x7 */ u8 field_0x7;
};
struct J2DTevSwapModeInfo {};
struct J2DTevSwapModeInfo {
/* 0x0 */ u8 mR;
/* 0x1 */ u8 mG;
/* 0x2 */ u8 mB;
/* 0x3 */ u8 mA;
};
class J2DTevSwapModeTable {
public: