summaryrefslogtreecommitdiff
path: root/include/JSystem/J2DGraph/J2DGrafContext.h
diff options
context:
space:
mode:
authorSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-10 18:35:46 -0400
committerSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-10 18:35:46 -0400
commit37e0ee5732d6c3b090f3c59038633a2e4c1de1f4 (patch)
tree5738b634be1fbf71098125f6ec310497c8977572 /include/JSystem/J2DGraph/J2DGrafContext.h
parentef45f47306641870607b73c29faf9f92a84eb62e (diff)
JFramework
Match most of JFramework
Diffstat (limited to 'include/JSystem/J2DGraph/J2DGrafContext.h')
-rw-r--r--include/JSystem/J2DGraph/J2DGrafContext.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/include/JSystem/J2DGraph/J2DGrafContext.h b/include/JSystem/J2DGraph/J2DGrafContext.h
new file mode 100644
index 00000000..1d41b509
--- /dev/null
+++ b/include/JSystem/J2DGraph/J2DGrafContext.h
@@ -0,0 +1,61 @@
+#ifndef J2DGRAFCONTEXT_H
+#define J2DGRAFCONTEXT_H
+
+#include "JSystem/JGeometry.h"
+#include "JSystem/JUtility/TColor.h"
+#include "dolphin/mtx/mtx.h"
+#include "dolphin/types.h"
+
+class J2DGrafContext {
+public:
+ struct Blend {
+ /* 0x0 */ u8 mType;
+ /* 0x1 */ u8 mSrcFactor;
+ /* 0x2 */ u8 mDstFactor;
+ };
+
+
+ /* 802E8B08 */ J2DGrafContext(f32 x, f32 y, f32 width, f32 height);
+ /* 802E90C0 */ void scissor(JGeometry::TBox2<f32> const& bounds);
+ void setColor(JUtility::TColor c) { this->setColor(c, c, c, c); }
+ /* 802E9118 */ void setColor(JUtility::TColor colorTL, JUtility::TColor colorTR,
+ JUtility::TColor colorBR, JUtility::TColor colorBL);
+ /* 802E9234 */ void setLineWidth(u8);
+ /* 802E9260 */ void fillBox(JGeometry::TBox2<f32> const& box);
+ /* 802E9368 */ void drawFrame(JGeometry::TBox2<f32> const& box);
+ /* 802E9488 */ void line(JGeometry::TVec2<f32> start, JGeometry::TVec2<f32> end);
+ /* 802E9564 */ void lineTo(JGeometry::TVec2<f32> pos);
+ void lineTo(f32 x, f32 y) { this->lineTo(JGeometry::TVec2<f32>(x, y)); }
+ void moveTo(f32 x, f32 y) { this->moveTo(JGeometry::TVec2<f32>(x, y)); }
+
+ void moveTo(JGeometry::TVec2<f32> pos) { mPrevPos = pos; }
+
+ /* 802E95D4 */ virtual ~J2DGrafContext() {}
+ /* 802E90E4 */ virtual void place(JGeometry::TBox2<f32> const& bounds);
+ /* 802E961C */ virtual void place(f32 x, f32 y, f32 width, f32 height) {
+ JGeometry::TBox2<f32> box(x, y, x + width, y + height);
+ this->place(box);
+ }
+ /* 802E8BB4 */ virtual void setPort();
+ /* 802E8C44 */ virtual void setup2D();
+ /* 802E8E20 */ virtual void setScissor();
+ /* 802E9664 */ virtual s32 getGrafType() const { return 0; }
+ /* 802E966C */ virtual void setLookat() {}
+
+public:
+ /* 0x04 */ JGeometry::TBox2<f32> mBounds;
+ /* 0x14 */ JGeometry::TBox2<f32> mScissorBounds;
+ /* 0x24 */ JUtility::TColor mColorTL;
+ /* 0x28 */ JUtility::TColor mColorTR;
+ /* 0x2C */ JUtility::TColor mColorBR;
+ /* 0x30 */ JUtility::TColor mColorBL;
+ /* 0x34 */ u8 mLineWidth;
+ /* 0x38 */ JGeometry::TVec2<f32> mPrevPos;
+ /* 0x40 */ Mtx44 mMtx44;
+ /* 0x80 */ Mtx mPosMtx;
+ /* 0xB0 */ Blend field_0xb0;
+ /* 0xB3 */ Blend mLinePart;
+ /* 0xB6 */ Blend mBoxPart;
+};
+
+#endif /* J2DGRAFCONTEXT_H */