summaryrefslogtreecommitdiff
path: root/include/JSystem/J3DGraphBase/J3DPacket.h
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2021-05-10 08:54:07 -0700
committerGitHub <noreply@github.com>2021-05-10 11:54:07 -0400
commit462d71cbef02ef119fc2aa480b98cfeedde46441 (patch)
tree923ed9f6f939c3e4b64dba0070e1539d05910089 /include/JSystem/J3DGraphBase/J3DPacket.h
parent9799fadfe84344fa3ea78835365570d832a476c7 (diff)
Makefile fixes / JUTNameTab (#129)
* Makefile: Fix issues with iconv causing it to break under devkitPro / msys The version of iconv included in devkitPro does not have a -o option, so replace it with normal shell redirection. Also, SHIFT-JIS does not have a mapping for ~, so output the Windows CP932 variant instead, which does. See: https://en.wikipedia.org/wiki/Tilde#Unicode_and_Shift_JIS_encoding_of_wave_dash https://en.wikipedia.org/wiki/Code_page_932_(Microsoft_Windows)#Single-byte_character_differences * Update diff configuration -Bbinary doesn't seem to work with my copy of bjdump (it says it can't decode unknown architecture) Cheese things by using expected/ instead of having the user place things manually. * JUTNameTab * J3DPacket / J3DDrawBuffer * format Co-authored-by: lepelog <lepelog@users.noreply.github.com>
Diffstat (limited to 'include/JSystem/J3DGraphBase/J3DPacket.h')
-rw-r--r--include/JSystem/J3DGraphBase/J3DPacket.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h
index 4c0f4064b4..09e3a7c739 100644
--- a/include/JSystem/J3DGraphBase/J3DPacket.h
+++ b/include/JSystem/J3DGraphBase/J3DPacket.h
@@ -1,6 +1,114 @@
#ifndef J3DPACKET_H
#define J3DPACKET_H
+#include "JSystem/J3DGraphBase/J3DSys.h"
+#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
+class J3DMatPacket;
+
+class J3DDrawBuffer;
+class J3DMaterial;
+class J3DMaterialAnm;
+class J3DModel;
+class J3DMtxBuffer;
+class J3DShape;
+class J3DTexMtx;
+class J3DTexture;
+
+class J3DDisplayListObj {
+public:
+ J3DError newDisplayList(u32);
+ J3DError newSingleDisplayList(u32);
+ J3DError single_To_Double();
+ void setSingleDisplayList(void*, u32);
+ void swapBuffer();
+ void callDL() const;
+ void beginDL();
+ void endDL();
+ void beginPatch();
+ void endPatch();
+
+ static u8 sGDLObj[16];
+ static u8 sInterruptFlag[4 + 4 /* padding */];
+
+ void* mpData[2];
+ u32 mSize;
+ u32 mCapacity;
+};
+
+class J3DPacket {
+public:
+ void addChildPacket(J3DPacket* pChild);
+
+ inline void clear() {
+ mpNextSibling = NULL;
+ mpFirstChild = NULL;
+ }
+
+ virtual bool entry(J3DDrawBuffer* pDrawBuffer);
+ virtual void draw();
+ virtual ~J3DPacket();
+
+public:
+ J3DPacket* mpNextSibling;
+ J3DPacket* mpFirstChild;
+};
+
+class J3DDrawPacket : public J3DPacket {
+public:
+ J3DDrawPacket();
+ ~J3DDrawPacket();
+ J3DError newDisplayList(u32);
+ J3DError newSingleDisplayList(u32);
+ virtual void draw();
+
+public:
+ void* mpUserData;
+ int mFlags;
+ char mPad0[0x0C]; // unk
+ J3DDisplayListObj* mpDisplayListObj;
+ J3DTexMtx* mpTexMtx;
+};
+
+class J3DShapePacket : public J3DDrawPacket {
+public:
+ J3DShapePacket();
+ void calcDifferedBufferSize(u32);
+ void newDifferedDisplayList(u32);
+ void prepareDraw() const;
+ void drawFast();
+
+ virtual ~J3DShapePacket();
+ virtual void draw();
+
+public:
+ J3DShape* mpShape;
+ J3DMtxBuffer* mpMtxBuffer;
+ Mtx* mpViewMtx;
+ u32 mDiffFlag;
+ J3DModel* mpModel;
+};
+
+class J3DMatPacket : public J3DDrawPacket {
+public:
+ J3DMatPacket();
+ void addShapePacket(J3DShapePacket*);
+ void beginDiff();
+ void endDiff();
+ void isSame(J3DMatPacket*) const;
+
+ virtual ~J3DMatPacket();
+ virtual bool entry(J3DDrawBuffer* pDrawBuffer);
+ virtual void draw();
+
+public:
+ J3DShapePacket* mpShapePacket;
+ J3DShapePacket* mpFirstShapePacket;
+ J3DMaterial* mpMaterial;
+ s32 mSortFlags;
+ J3DTexture* mpTexture;
+ J3DMaterialAnm* mpMaterialAnm;
+};
+
#endif /* J3DPACKET_H */