diff options
| author | notyourav <65437533+notyourav@users.noreply.github.com> | 2021-09-27 11:36:18 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-27 11:36:18 -0700 |
| commit | 512cc73cd7dc9af497e698e0ddcbfad3de53bf37 (patch) | |
| tree | 62ee865e5073baf11eba91e47f5631445cbefc82 /include | |
| parent | a7ccd8816727059f6bd4f0047a58a9a69e73692c (diff) | |
| parent | 77ad390d8e9c6112329221ed864dead455182b4e (diff) | |
Merge pull request #150 from Julgodis/JUTVideo
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JUtility/JUTDirectPrint.h | 2 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTException.h | 3 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTVideo.h | 30 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTXfb.h | 30 | ||||
| -rw-r--r-- | include/dolphin/gx/GX.h | 4 | ||||
| -rw-r--r-- | include/dolphin/os/OS.h | 7 | ||||
| -rw-r--r-- | include/dolphin/vi/vi.h | 11 | ||||
| -rw-r--r-- | include/msl_c/string.h | 5 |
8 files changed, 70 insertions, 22 deletions
diff --git a/include/JSystem/JUtility/JUTDirectPrint.h b/include/JSystem/JUtility/JUTDirectPrint.h index 8f2c2fbb4a..8fac8cf23c 100644 --- a/include/JSystem/JUtility/JUTDirectPrint.h +++ b/include/JSystem/JUtility/JUTDirectPrint.h @@ -22,6 +22,8 @@ public: /* 802E4240 */ static JUTDirectPrint* start(); + static JUTDirectPrint* getManager() { return sDirectPrint; } + private: static u8 sAsciiTable[128]; static u32 sFontData[64]; diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h index 129d645745..eed808f7ba 100644 --- a/include/JSystem/JUtility/JUTException.h +++ b/include/JSystem/JUtility/JUTException.h @@ -3,6 +3,7 @@ #include "JSystem/JKernel/JKRThread.h" #include "JSystem/JUtility/JUTGamePad.h" +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/gx/GX.h" #include "dolphin/os/OS.h" #include "dolphin/types.h" @@ -26,7 +27,7 @@ public: /* 802E1D5C */ JUTException(JUTDirectPrint*); /* 802E1E40 */ void create(JUTDirectPrint*); /* 802E1FCC */ void errorHandler(u16, OSContext*, u32, u32); - /* 802E20C0 */ void panic_f_va(char const*, int, char const*, __va_list_struct*); + /* 802E20C0 */ void panic_f_va(char const*, int, char const*, va_list); /* 802E21FC */ static void panic_f(char const*, int, char const*, ...); /* 802E227C */ void setFPException(u32); /* 802E22C4 */ void showFloatSub(int, f32); diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h index 2657239126..5660decd25 100644 --- a/include/JSystem/JUtility/JUTVideo.h +++ b/include/JSystem/JUtility/JUTVideo.h @@ -8,28 +8,30 @@ class JUTVideo { public: - typedef void (*CallbackFn)(void); + typedef void (*Callback)(u32); - JUTVideo(_GXRenderModeObj const*); + JUTVideo(GXRenderModeObj const*); virtual ~JUTVideo(); // TODO: return types not confirmed - /* 802E4C54 */ static JUTVideo* createManager(_GXRenderModeObj const*); + /* 802E4C54 */ static JUTVideo* createManager(GXRenderModeObj const*); /* 802E4CAC */ static void destroyManager(); - /* 802E4E50 */ void preRetraceProc(u32); /* 802E5088 */ void drawDoneStart(); /* 802E50B0 */ void dummyNoDrawWait(); - /* 802E50BC */ void drawDoneCallback(); - /* 802E5144 */ void postRetraceProc(u32); - /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); + /* 802E5198 */ void setRenderMode(GXRenderModeObj const*); /* 802E5210 */ void waitRetraceIfNeed(); + /* 802E4E50 */ static void preRetraceProc(u32); + /* 802E5144 */ static void postRetraceProc(u32); + /* 802E50BC */ static void drawDoneCallback(); + static JUTVideo* getManager() { return sManager; } - _GXRenderModeObj* getRenderMode() const { return mRenderObj; } + GXRenderModeObj* getRenderMode() const { return mRenderObj; } +private: static JUTVideo* sManager; - static u32 sVideoLastTick; - static u32 sVideoInterval; + static OSTick sVideoLastTick; + static OSTick sVideoInterval; private: /* 0x04 */ _GXRenderModeObj* mRenderObj; @@ -40,12 +42,16 @@ private: /* 0x18 */ u32 field_0x18; /* 0x1C */ VIRetraceCallback mPreRetraceCallback; /* 0x20 */ VIRetraceCallback mPostRetraceCallback; - /* 0x24 */ CallbackFn unknown_callback_1; - /* 0x28 */ CallbackFn unknown_callback_2; + /* 0x24 */ Callback mPreCallback; + /* 0x28 */ Callback mPostCallback; /* 0x2C */ bool mSetBlack; /* 0x30 */ s32 mSetBlackFrameCount; /* 0x34 */ OSMessage mMessage; /* 0x38 */ OSMessageQueue mMessageQueue; }; +inline JUTVideo* JUTGetVideoManager() { + return JUTVideo::getManager(); +} + #endif /* JUTVIDEO_H */ diff --git a/include/JSystem/JUtility/JUTXfb.h b/include/JSystem/JUtility/JUTXfb.h index a523452d25..240fb27a08 100644 --- a/include/JSystem/JUtility/JUTXfb.h +++ b/include/JSystem/JUtility/JUTXfb.h @@ -23,6 +23,36 @@ public: /* 802E5424 */ static void destroyManager(); /* 802E5454 */ void initiate(u16, u16, JKRHeap*, JUTXfb::EXfbNumber); + s32 getBufferNum() const { return mBufferNum; } + s16 getDrawnXfbIndex() const { return mDrawnXfbIndex; } + s16 getDrawningXfbIndex() const { return mDrawingXfbIndex; } + s16 getDisplayingXfbIndex() const { return mDisplayingXfbIndex; } + s32 getSDrawingFlag() const { return mSDrawingFlag; } + + void* getDrawnXfb() const { + if (mDrawnXfbIndex >= 0) + return mBuffer[mDrawnXfbIndex]; + return NULL; + } + + void* getDrawningXfb() const { + if (mDrawingXfbIndex >= 0) + return mBuffer[mDrawingXfbIndex]; + return NULL; + } + + void* getDisplayingXfb() const { + if (mDisplayingXfbIndex >= 0) + return mBuffer[mDisplayingXfbIndex]; + return NULL; + } + + void setDisplayingXfbIndex(s16 index) { mDisplayingXfbIndex = index; } + void setSDrawingFlag(s32 flag) { mSDrawingFlag = flag; } + + static JUTXfb* getManager() { return sManager; } + +private: static JUTXfb* sManager; private: diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index 5fac58593c..9fd2cd3121 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -291,7 +291,7 @@ typedef enum _GXTevAlphaArg { /* 0x6 */ GX_CA_ZERO, } GXTevAlphaArg; -struct _GXRenderModeObj { +typedef struct _GXRenderModeObj { s32 vi_tv_mode; u16 fb_width; u16 efb_height; @@ -305,7 +305,7 @@ struct _GXRenderModeObj { u8 antialiasing; u8 sample_pattern[12][2]; u8 vfilter[7]; -}; +} GXRenderModeObj; struct _GXTexObj { u32 texture_filter; diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index c972b90e92..bdc80cb1cd 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -4,6 +4,7 @@ #ifndef OS_H_ #define OS_H_ +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" /* TODO: more structs, and get rid of the ones that are faked! */ @@ -122,8 +123,6 @@ struct OSThread { void* data[2]; }; -struct __va_list_struct {}; - extern "C" { s32 OSEnableScheduler(void); s32 OSDisableScheduler(void); @@ -165,7 +164,7 @@ void OSReportDisable(void); void OSReportEnable(void); void OSReportForceEnableOff(void); void OSReportForceEnableOn(void); -void OSVReport(const char* format, __va_list_struct* list); +void OSVReport(const char* format, va_list list); void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* out_time); OSTime OSGetTime(void); @@ -202,7 +201,7 @@ u8* OSGetStackPointer(void); void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); -void OSVAttention(const char* fmt, __va_list_struct* va_list); +void OSVAttention(const char* fmt, va_list args); void OSReportInit(void); diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h index 586819f535..350f64483d 100644 --- a/include/dolphin/vi/vi.h +++ b/include/dolphin/vi/vi.h @@ -1,10 +1,21 @@ #ifndef VI_H #define VI_H +#include "dolphin/gx/GX.h" #include "dolphin/types.h" typedef void (*VIRetraceCallback)(u32); extern "C" void VIWaitForRetrace(void); +extern "C" void VISetNextFrameBuffer(void*); +extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); +extern "C" void VIInit(); +extern "C" void VIConfigure(GXRenderModeObj*); +extern "C" void VIFlush(); +extern "C" void* VIGetNextFrameBuffer(); +extern "C" void* VIGetCurrentFrameBuffer(); +extern "C" void VISetBlack(BOOL); +extern "C" u32 VIGetRetraceCount(); #endif /* VI_H */ diff --git a/include/msl_c/string.h b/include/msl_c/string.h index ceb5696ed1..902f205f09 100644 --- a/include/msl_c/string.h +++ b/include/msl_c/string.h @@ -1,6 +1,7 @@ #ifndef MSL_STRING_H_ #define MSL_STRING_H_ +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" // TODO: move to MSL_C.PPCEABI.bare.H/ @@ -20,9 +21,7 @@ int tolower(int); int sprintf(char*, const char*, ...); int printf(const char*, ...); int snprintf(char*, u32, const char*, ...); - -struct __va_list_struct; -size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, __va_list_struct* args); +size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, va_list args); } #endif
\ No newline at end of file |
