-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #5 from SuperDude88/main
JFramework Mostly Matching
- Loading branch information
Showing
12 changed files
with
834 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#ifndef J2DORTHOGRAPH_H | ||
#define J2DORTHOGRAPH_H | ||
|
||
#include "JSystem/J2DGraph/J2DGrafContext.h" | ||
|
||
class J2DOrthoGraph : public J2DGrafContext { | ||
public: | ||
J2DOrthoGraph(); | ||
J2DOrthoGraph(f32 x, f32 y, f32 width, f32 height, f32 far, f32 near); | ||
void setOrtho(JGeometry::TBox2<f32> const& bounds, f32 far, f32 near); | ||
void scissorBounds(JGeometry::TBox2<f32>*, JGeometry::TBox2<f32> const*); | ||
|
||
virtual ~J2DOrthoGraph() {} | ||
virtual void setPort(); | ||
virtual s32 getGrafType() const { return 1; } | ||
virtual void setLookat(); | ||
|
||
f32 getWidthPower() const { return mBounds.getWidth() / mOrtho.getWidth(); } | ||
f32 getHeightPower() const { return mBounds.getHeight() / mOrtho.getHeight(); } | ||
|
||
void setOrtho(f32 x, f32 y, f32 width, f32 height, f32 far, f32 near) { | ||
JGeometry::TBox2<f32> ortho(x, y, x + width, y + height); | ||
setOrtho(ortho, far, near); | ||
} | ||
|
||
private: | ||
/* 0xBC */ JGeometry::TBox2<f32> mOrtho; | ||
/* 0xCC */ f32 mNear; | ||
/* 0xD0 */ f32 mFar; | ||
}; | ||
|
||
void J2DDrawLine(f32 x1, f32 y1, f32 x2, f32 y2, JUtility::TColor color, | ||
int line_width); | ||
void J2DFillBox(f32 x, f32 y, f32 width, f32 height, JUtility::TColor color); | ||
void J2DFillBox(JGeometry::TBox2<f32> const& box, JUtility::TColor color); | ||
void J2DDrawFrame(f32 x, f32 y, f32 width, f32 height, JUtility::TColor color, u8 line_width); | ||
void J2DDrawFrame(JGeometry::TBox2<f32> const& box, JUtility::TColor color, u8 line_width); | ||
|
||
#endif /* J2DORTHOGRAPH_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
#ifndef JFWDISPLAY_H | ||
#define JFWDISPLAY_H | ||
|
||
#include "JSystem/JSupport/JSUList.h" | ||
#include "JSystem/JUtility/JUTDirectPrint.h" | ||
#include "JSystem/JUtility/JUTFader.h" | ||
#include "JSystem/JUtility/JUTXfb.h" | ||
#include "dolphin/os/OSAlarm.h" | ||
#include "dolphin/types.h" | ||
|
||
typedef struct _GXColor GXColor; | ||
typedef struct _GXRenderModeObj GXRenderModeObj; | ||
class JKRHeap; | ||
|
||
typedef void (*JFWDisplayUnkFunc)(void); | ||
|
||
extern bool JFWAutoAbortGfx; | ||
|
||
class JFWAlarm : public OSAlarm { | ||
public: | ||
JFWAlarm() /* : mLink(this) */ {} | ||
~JFWAlarm() {} | ||
void createAlarm() { OSCreateAlarm(this); } | ||
void cancelAlarm() { OSCancelAlarm(this); } | ||
//void removeLink() { sList.remove(&mLink); } | ||
//void appendLink() { sList.append(&mLink); } | ||
OSThread* getThread() const { return mThread; } | ||
void setThread(OSThread* thread) { mThread = thread; } | ||
|
||
static JSUList<JFWAlarm> sList; | ||
|
||
public: | ||
/* 0x30 */ OSThread* mThread; | ||
}; | ||
|
||
class JFWDisplay { | ||
public: | ||
enum EDrawDone { | ||
/* 0x0 */ UNK_METHOD_0 = 0, | ||
/* 0x1 */ UNK_METHOD_1 = 1 | ||
}; | ||
|
||
/* 80272040 */ void ctor_subroutine(const _GXRenderModeObj*, bool enableAlpha); | ||
/* 802720F8 */ JFWDisplay(const _GXRenderModeObj*, JKRHeap*, JUTXfb::EXfbNumber, bool); | ||
/* 802721DC */ static JFWDisplay* createManager(JKRHeap*, JUTXfb::EXfbNumber, bool); | ||
/* 802722B8 */ void prepareCopyDisp(); | ||
/* 802723AC */ void drawendXfb_single(); | ||
/* 802723F4 */ void exchangeXfb_double(); | ||
/* 802724FC */ void exchangeXfb_triple(); | ||
/* 80272574 */ void copyXfb_triple(); | ||
/* 802725F8 */ void preGX(); | ||
/* 8027268C */ void endGX(); | ||
/* 80272C60 */ void waitBlanking(int); | ||
/* 80272E10 */ void threadSleep(s64); | ||
/* 80272EB8 */ void clearEfb_init(); | ||
/* 80272F9C */ void clearEfb(int param_0, int param_1, int param_2, int param_3, GXColor color); | ||
/* 80272F2C */ void clearEfb(); | ||
/* 80272F58 */ void clearEfb(_GXColor color); | ||
/* 8027331C */ void calcCombinationRatio(); | ||
|
||
/* 80272798 */ virtual void beginRender(); | ||
/* 80272A04 */ virtual void endRender(); | ||
/* 80272AB0 */ virtual void endFrame(); | ||
/* 80272160 */ virtual ~JFWDisplay(); | ||
|
||
static JFWDisplay* getManager() { return sManager; } | ||
|
||
int startFadeOut(int param_0) { | ||
if (mpFader != NULL) { | ||
return mpFader->startFadeOut(param_0); | ||
} | ||
return 1; | ||
} | ||
|
||
int startFadeIn(int param_0) { | ||
if (mpFader != NULL) { | ||
return mpFader->startFadeIn(param_0); | ||
} | ||
return 1; | ||
} | ||
|
||
void setTickRate(u32 rate) { | ||
mTickRate = rate; | ||
mFrameRate = 0; | ||
} | ||
|
||
void setDrawDoneMethod(EDrawDone drawDone) { mDrawDoneMethod = drawDone; } | ||
void setFader(JUTFader* fader) { mpFader = fader; } | ||
void setClearColor(JUtility::TColor color) { mClearColor = color; } | ||
|
||
static JFWDisplay* sManager; | ||
|
||
private: | ||
/* 0x04 */ JUTFader* mpFader; | ||
/* 0x08 */ const _GXRenderModeObj* mpRenderMode; | ||
/* 0x0C */ JUtility::TColor mClearColor; | ||
/* 0x10 */ u32 mZClear; | ||
/* 0x14 */ JUTXfb* mXfbManager; | ||
/* 0x18 */ u16 mGamma; | ||
/* 0x1C */ EDrawDone mDrawDoneMethod; | ||
/* 0x20 */ u16 mFrameRate; | ||
/* 0x24 */ u32 mTickRate; | ||
/* 0x28 */ bool mEnableAlpha; | ||
/* 0x2A */ u16 mClamp; | ||
/* 0x2C */ f32 mCombinationRatio; | ||
/* 0x30 */ u32 field_0x30; | ||
/* 0x34 */ u32 field_0x34; | ||
/* 0x38 */ u32 field_0x38; | ||
/* 0x3C */ s16 field_0x3C; | ||
/* 0x3E */ u8 field_0x3E; | ||
}; | ||
|
||
inline void JUTChangeFrameBuffer(void* buffer, u16 height, u16 width) { | ||
JUTDirectPrint::getManager()->changeFrameBuffer(buffer, width, height); | ||
} | ||
|
||
static void JFWDrawDoneAlarm(); | ||
static void JFWGXDrawDoneAutoAbort(); | ||
static void JFWGXAbortAlarmHandler(OSAlarm* p_alarm, OSContext* p_ctx); | ||
static void waitForTick(u32 p1, u16 p2); | ||
static void diagnoseGpHang(); | ||
|
||
#endif /* JFWDISPLAY_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#ifndef JFWSYSTEM_H | ||
#define JFWSYSTEM_H | ||
|
||
#include "dolphin/types.h" | ||
|
||
typedef struct _GXRenderModeObj GXRenderModeObj; | ||
class JKRExpHeap; | ||
class JKRThread; | ||
class JUTConsole; | ||
class JUTConsoleManager; | ||
class JUTDbPrint; | ||
class JUTResFont; | ||
struct ResFONT; | ||
|
||
struct JFWSystem { | ||
struct CSetUpParam { | ||
static s32 maxStdHeaps; | ||
static u32 sysHeapSize; | ||
static u32 fifoBufSize; | ||
static u32 aramAudioBufSize; | ||
static u32 aramGraphBufSize; | ||
static u32 streamPriority; | ||
static u32 decompPriority; | ||
static u32 aPiecePriority; | ||
static ResFONT* systemFontRes; | ||
static GXRenderModeObj* renderMode; | ||
static u32 exConsoleBufferSize; | ||
}; | ||
|
||
static void firstInit(); | ||
static void init(); | ||
|
||
static JUTConsole* getSystemConsole() { return systemConsole; } | ||
static JKRExpHeap* getSystemHeap() { return systemHeap; } | ||
|
||
static JKRExpHeap* rootHeap; | ||
static JKRExpHeap* systemHeap; | ||
static JKRThread* mainThread; | ||
static JUTDbPrint* debugPrint; | ||
static JUTResFont* systemFont; | ||
static JUTConsoleManager* systemConsoleManager; | ||
static JUTConsole* systemConsole; | ||
static bool sInitCalled; | ||
}; | ||
|
||
#endif /* JFWSYSTEM_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.