diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2025-04-09 16:45:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-09 13:45:30 -0700 |
| commit | c6f76e7240dde8bbcf40a88d6d88cf87cab616b4 (patch) | |
| tree | bf9afbb1c32e66f45bdba30f61a9e4f0d92f804a /include/JSystem/J2DGraph | |
| parent | 6672817e41064e04951ec28d51070b66fc8377ac (diff) | |
Various JSystem work (#2383)
* JKernel and JStudio cleanup
* JMessage cleanup
* JAudio cleanup
* JASBNKParser work
* functionvalue work
* fvb work
* J2D and J3D cleanup
* steal from tww
* J2DPictureEx mostly done
* fix build
Diffstat (limited to 'include/JSystem/J2DGraph')
| -rw-r--r-- | include/JSystem/J2DGraph/J2DMatBlock.h | 38 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DPicture.h | 89 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DPictureEx.h | 18 | ||||
| -rw-r--r-- | include/JSystem/J2DGraph/J2DTevs.h | 41 |
4 files changed, 119 insertions, 67 deletions
diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h index 68e54ed36e..ae7edfb061 100644 --- a/include/JSystem/J2DGraph/J2DMatBlock.h +++ b/include/JSystem/J2DGraph/J2DMatBlock.h @@ -774,6 +774,7 @@ public: void setTexGenNum(u32 num) { mTexGenNum = num; } void setTexCoord(u32 i, J2DTexCoord coord) { mTexGenCoord[i] = coord; } void setTexMtx(u32 i, J2DTexMtx* mtx) { mTexMtx[i] = mtx; } + J2DTexMtx& getTexMtx(u32 i) { return *mTexMtx[i]; } J2DTexCoord& getTexCoord(u32 i) { return mTexGenCoord[i]; } /* 802EB620 */ virtual ~J2DTexGenBlock(); @@ -783,43 +784,6 @@ public: * @ingroup jsystem-j2d * */ -struct J2DColorChanInfo { - /* 0x0 */ u8 field_0x0; - /* 0x0 */ u8 field_0x1; - /* 0x0 */ u8 field_0x2; - /* 0x0 */ u8 field_0x3; -}; - -inline u8 J2DCalcColorChanID(const J2DColorChanInfo& info) { return info.field_0x1; } -extern const J2DColorChanInfo j2dDefaultColorChanInfo; - -/** - * @ingroup jsystem-j2d - * - */ -class J2DColorChan { -public: - /* 802EB280 */ J2DColorChan() { - setColorChanInfo(j2dDefaultColorChanInfo); - } - J2DColorChan(const J2DColorChanInfo& info) { - mColorChan = J2DCalcColorChanID(info); - } - - void setColorChanInfo(const J2DColorChanInfo& info) { - mColorChan = J2DCalcColorChanID(info); - } - - u16 getMatSrc() const { return mColorChan & 1; } - -private: - /* 0x0 */ u16 mColorChan; -}; - -/** - * @ingroup jsystem-j2d - * - */ class J2DColorBlock { private: /* 0x00 */ JUtility::TColor mMatColor[2]; diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h index 34206551b6..af827f9e4e 100644 --- a/include/JSystem/J2DGraph/J2DPicture.h +++ b/include/JSystem/J2DGraph/J2DPicture.h @@ -2,11 +2,11 @@ #define J2DPICTURE_H #include "JSystem/J2DGraph/J2DPane.h" +#include "JSystem/JUtility/JUTTexture.h" #include "JSystem/JUtility/TColor.h" class J2DMaterial; class JUTPalette; -class JUTTexture; struct ResTIMG; struct ResTLUT; @@ -55,28 +55,42 @@ struct J2DScrnBlockPictureParameter { class J2DPicture : public J2DPane { public: /* 802FCFF0 */ virtual ~J2DPicture(); - /* 802FF2E8 */ virtual u16 getTypeID() const; + /* 802FF2E8 */ virtual u16 getTypeID() const { return 18; } /* 802FDB28 */ virtual void drawSelf(f32, f32); /* 802FDB90 */ virtual void drawSelf(f32, f32, Mtx*); - /* 802FF09C */ virtual bool isUsed(ResTIMG const*); - /* 802FF63C */ virtual bool isUsed(ResFONT const*); - /* 802FF65C */ virtual void rewriteAlpha(); /* 802FCCDC */ virtual void initiate(ResTIMG const*, ResTLUT const*); /* 802FD098 */ virtual bool prepareTexture(u8); - /* 801BDD40 */ virtual bool append(ResTIMG const*, f32); - /* 802FF238 */ virtual bool append(ResTIMG const*, JUTPalette*, f32); + /* 801BDD40 */ virtual bool append(ResTIMG const* param_0, f32 param_1) { + return insert(param_0, mTextureNum, param_1); + } + /* 802FF238 */ virtual bool append(ResTIMG const* param_0, JUTPalette* param_1, f32 param_2) { + return insert(param_0, param_1, mTextureNum, param_2); + } /* 80020338 */ virtual bool append(char const* param_0, f32 param_1) { return insert(param_0, mTextureNum, param_1); } - - /* 802FF2F0 */ virtual bool append(char const*, JUTPalette*, f32); - /* 802FF208 */ virtual bool append(JUTTexture*, f32); - /* 802FF3E0 */ virtual void prepend(ResTIMG const*, f32); - /* 802FF3B0 */ virtual void prepend(ResTIMG const*, JUTPalette*, f32); - /* 802FF380 */ virtual void prepend(char const*, f32); - /* 802FF350 */ virtual void prepend(char const*, JUTPalette*, f32); - /* 802FF320 */ virtual void prepend(JUTTexture*, f32); - /* 801BDD70 */ virtual void insert(ResTIMG const*, u8, f32); + /* 802FF2F0 */ virtual bool append(char const* param_0, JUTPalette* param_1, f32 param_2) { + return insert(param_0, param_1, mTextureNum, param_2); + } + /* 802FF208 */ virtual bool append(JUTTexture* param_0, f32 param_1) { + return insert(param_0, mTextureNum, param_1); + } + /* 802FF3E0 */ virtual void prepend(ResTIMG const* param_0, f32 param_1) { + insert(param_0, 0, param_1); + } + /* 802FF3B0 */ virtual void prepend(ResTIMG const* param_0, JUTPalette* param_1, f32 param_2) { + insert(param_0, param_1, 0, param_2); + } + /* 802FF380 */ virtual void prepend(char const* param_0, f32 param_1) { + insert(param_0, 0, param_1); + } + /* 802FF350 */ virtual void prepend(char const* param_0, JUTPalette* param_1, f32 param_2) { + insert(param_0, param_1, 0, param_2); + } + /* 802FF320 */ virtual void prepend(JUTTexture* param_0, f32 param_1) { + insert(param_0, 0, param_1); + } + /* 801BDD70 */ virtual bool insert(ResTIMG const*, u8, f32); /* 802FD168 */ virtual bool insert(ResTIMG const*, JUTPalette*, u8, f32); /* 80020368 */ virtual bool insert(char const* param_0, u8 param_1, f32 param_2) { return insert(param_0, NULL, param_1, param_2); @@ -84,16 +98,40 @@ public: /* 802FD4B4 */ virtual bool insert(char const*, JUTPalette*, u8, f32); /* 802FD524 */ virtual bool insert(JUTTexture*, u8, f32); /* 802FD6F4 */ virtual bool remove(u8); - /* 802FF410 */ virtual bool remove(); + /* 802FF410 */ virtual bool remove() { return remove(mTextureNum - 1); } /* 802FD814 */ virtual bool remove(JUTTexture*); - /* 802FF4E0 */ virtual void draw(f32, f32, bool, bool, bool); - /* 802FF448 */ virtual void draw(f32, f32, u8, bool, bool, bool); + /* 802FF4E0 */ virtual void draw(f32 param_0, f32 param_1, bool param_2, bool param_3, + bool param_4) { + draw(param_0, param_1, 0, param_2, param_3, param_4); + } + /* 802FF448 */ virtual void draw(f32 param_0, f32 param_1, u8 param_2, bool param_3, + bool param_4, bool param_5) { + if (param_2 < mTextureNum && mTexture[param_2] != NULL) { + draw(param_0, param_1, mTexture[param_2]->getWidth(), mTexture[param_2]->getHeight(), + param_3, param_4, param_5); + } + } /* 802FDC70 */ virtual void draw(f32, f32, f32, f32, bool, bool, bool); - /* 802FF588 */ virtual void drawOut(f32, f32, f32, f32, f32, f32); - /* 802FF524 */ virtual void drawOut(f32, f32, f32, f32, f32, f32, f32, f32); + /* 802FF588 */ virtual void drawOut(f32 param_0, f32 param_1, f32 param_2, f32 param_3, + f32 param_4, f32 param_5) { + if (mTexture[0] != NULL) { + drawOut(JGeometry::TBox2<f32>(param_0, param_1, param_0 + param_2, param_1 + param_3), + JGeometry::TBox2<f32>(param_4, param_5, param_4 + mTexture[0]->getWidth(), + param_5 + mTexture[0]->getHeight())); + } + } + /* 802FF524 */ virtual void drawOut(f32 param_0, f32 param_1, f32 param_2, f32 param_3, + f32 param_4, f32 param_5, f32 param_6, f32 param_7) { + drawOut(JGeometry::TBox2<f32>(param_0, param_1, param_0 + param_2, param_1 + param_3), + JGeometry::TBox2<f32>(param_4, param_5, param_4 + param_6, param_5 + param_7)); + } /* 802FDF88 */ virtual void drawOut(JGeometry::TBox2<f32> const&, JGeometry::TBox2<f32> const&); - /* 802FF29C */ virtual void load(_GXTexMapID, u8); - /* 802FF268 */ virtual void load(u8); + /* 802FF29C */ virtual void load(_GXTexMapID param_0, u8 param_1) { + if (param_1 < mTextureNum && param_1 < 2 && mTexture[param_1] != NULL) { + mTexture[param_1]->load(param_0); + } + } + /* 802FF268 */ virtual void load(u8 param_0) { load((_GXTexMapID)param_0, param_0); } /* 800202CC */ virtual void setBlendRatio(f32 param_0, f32 param_1) { setBlendColorRatio(param_0, param_1); setBlendAlphaRatio(param_0, param_1); @@ -105,7 +143,7 @@ public: /* 802FD9BC */ virtual const ResTIMG* changeTexture(ResTIMG const*, u8, JUTPalette*); /* 802FDAC8 */ virtual const ResTIMG* changeTexture(char const*, u8, JUTPalette*); /* 800539DC */ virtual JUTTexture* getTexture(u8) const; - /* 802FF634 */ virtual u8 getTextureCount() const; + /* 802FF634 */ virtual u8 getTextureCount() const { return mTextureNum; } /* 80053C6C */ virtual bool setBlack(JUtility::TColor i_black) { mBlack = i_black; return true; @@ -130,6 +168,9 @@ public: /* 802FE380 */ virtual void drawTexCoord(f32, f32, f32, f32, s16, s16, s16, s16, s16, s16, s16, s16, Mtx*); /* 802FF100 */ virtual u8 getUsableTlut(u8); + /* 802FF09C */ virtual bool isUsed(ResTIMG const*); + /* 802FF63C */ virtual bool isUsed(ResFONT const* param_0) { return J2DPane::isUsed(param_0); } + /* 802FF65C */ virtual void rewriteAlpha() {} /* 802FC800 */ J2DPicture(u64, JGeometry::TBox2<f32> const&, ResTIMG const*, ResTLUT const*); /* 802FC708 */ J2DPicture(ResTIMG const*); diff --git a/include/JSystem/J2DGraph/J2DPictureEx.h b/include/JSystem/J2DGraph/J2DPictureEx.h index e8252bb4f5..9d7e86bb6f 100644 --- a/include/JSystem/J2DGraph/J2DPictureEx.h +++ b/include/JSystem/J2DGraph/J2DPictureEx.h @@ -12,7 +12,16 @@ class J2DMaterial; */ class J2DPictureEx : public J2DPicture { public: - enum stage_enum {}; + enum stage_enum { + STAGE_0, + STAGE_1, + STAGE_2, + STAGE_3, + STAGE_4, + STAGE_5, + STAGE_6, + STAGE_7, + }; /* 803036EC */ J2DPictureEx(J2DPane*, JSURandomInputStream*, u32, J2DMaterial*); /* 803040E4 */ void insertCommon(u8, f32); @@ -57,7 +66,7 @@ public: /* 80306F94 */ virtual void prepend(char const*, f32); /* 80306F64 */ virtual void prepend(char const*, JUTPalette*, f32); /* 80306F34 */ virtual void prepend(JUTTexture*, f32); - /* 80307058 */ virtual void insert(ResTIMG const*, u8, f32); + /* 80307058 */ virtual bool insert(ResTIMG const*, u8, f32); /* 80303F34 */ virtual bool insert(ResTIMG const*, JUTPalette*, u8, f32); /* 80307024 */ virtual bool insert(char const*, u8, f32); /* 80303FD8 */ virtual bool insert(char const*, JUTPalette*, u8, f32); @@ -100,8 +109,9 @@ private: /* 0x160 */ f32 field_0x160[6]; // related to blend color ratio /* 0x178 */ f32 field_0x178[6]; // related to blend alpha ratio /* 0x190 */ u8 field_0x190; - /* 0x194 */ int field_0x194; - /* 0x198 */ int field_0x198; + /* 0x194 */ J2DAnmVisibilityFull* field_0x194; + /* 0x198 */ J2DAnmVtxColor* field_0x198; + /* 0x19C */ u8 field_0x19c; }; #endif /* J2DPICTUREEX_H */ diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h index a1c31301f9..845b94e89d 100644 --- a/include/JSystem/J2DGraph/J2DTevs.h +++ b/include/JSystem/J2DGraph/J2DTevs.h @@ -279,11 +279,11 @@ extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8]; class J2DTexCoord { public: /* 802EB260 */ inline J2DTexCoord() { - *(J2DTexCoordInfo*)this = j2dDefaultTexCoordInfo[0]; + mTexCoordInfo = j2dDefaultTexCoordInfo[0]; } J2DTexCoord(const J2DTexCoordInfo& info) { - *(J2DTexCoordInfo*)this = info; + mTexCoordInfo = info; } void setTexCoordInfo(const J2DTexCoordInfo& info) { mTexCoordInfo = info; } void setTexGenMtx(u8 texGenMtx) { mTexCoordInfo.mTexGenMtx = texGenMtx; } @@ -553,6 +553,43 @@ private: /* 0x0 */ u8 field_0x0; }; +/** + * @ingroup jsystem-j2d + * + */ +struct J2DColorChanInfo { + /* 0x0 */ u8 field_0x0; + /* 0x0 */ u8 field_0x1; + /* 0x0 */ u8 field_0x2; + /* 0x0 */ u8 field_0x3; +}; + +inline u8 J2DCalcColorChanID(const J2DColorChanInfo& info) { return info.field_0x1; } +extern const J2DColorChanInfo j2dDefaultColorChanInfo; + +/** + * @ingroup jsystem-j2d + * + */ +class J2DColorChan { +public: + /* 802EB280 */ J2DColorChan() { + setColorChanInfo(j2dDefaultColorChanInfo); + } + J2DColorChan(const J2DColorChanInfo& info) { + mColorChan = J2DCalcColorChanID(info); + } + + void setColorChanInfo(const J2DColorChanInfo& info) { + mColorChan = J2DCalcColorChanID(info); + } + + u16 getMatSrc() const { return mColorChan & 1; } + +private: + /* 0x0 */ u16 mColorChan; +}; + extern const GXColor j2dDefaultColInfo; extern const GXColorS10 j2dDefaultTevColor; extern const GXColor j2dDefaultTevKColor; |
