From 0e03ff4e3a6e36f7ee59728644c4884370252002 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 13:02:27 +0200 Subject: OK __ct__8JUTVideoFPC16_GXRenderModeObj --- libs/JSystem/JUtility/JUTVideo.cpp | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index e1191a10ff..99acf20416 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -47,8 +47,8 @@ extern "C" u8 sVideoInterval__8JUTVideo[4]; extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs(); -extern "C" void VISetPreRetraceCallback(VIRetraceCallback); -extern "C" void VISetPostRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); extern "C" void VIInit(); extern "C" void VIWaitForRetrace(); extern "C" void VIConfigure(_GXRenderModeObj*); @@ -104,8 +104,7 @@ u32 JUTVideo::sVideoLastTick; u32 JUTVideo::sVideoInterval; /* 802E4CF4-802E4DE8 2DF634 00F4+00 1/1 0/0 0/0 .text __ct__8JUTVideoFPC16_GXRenderModeObj */ -#ifdef NONMATCHING -JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { +JUTVideo::JUTVideo(GXRenderModeObj const* param_0) { mRenderObj = NULL; VIInit(); mSetBlack = true; @@ -120,22 +119,13 @@ JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { sVideoLastTick = OSGetTick(); sVideoInterval = 670000; mPreRetraceCallback = VISetPreRetraceCallback(preRetraceProc); - mPostRetraceCallback = VISetPreRetraceCallback(postRetraceProc); + mPostRetraceCallback = VISetPostRetraceCallback(postRetraceProc); unknown_callback_1 = NULL; unknown_callback_2 = NULL; - OSInitMessageQueue(mMessageQueue, mMessage, 1); + OSInitMessageQueue(&mMessageQueue, &mMessage, 1); GXSetDrawDoneCallback(drawDoneCallback); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTVideo/__ct__8JUTVideoFPC16_GXRenderModeObj.s" -} -#pragma pop -#endif + /* 802E4DE8-802E4E50 2DF728 0068+00 1/0 0/0 0/0 .text __dt__8JUTVideoFv */ JUTVideo::~JUTVideo() { @@ -209,12 +199,12 @@ asm void JUTVideo::postRetraceProc(u32 param_0) { /* 802E5198-802E5210 2DFAD8 0078+00 1/1 2/2 0/0 .text * setRenderMode__8JUTVideoFPC16_GXRenderModeObj */ -void JUTVideo::setRenderMode(_GXRenderModeObj const* pObj) { +void JUTVideo::setRenderMode(GXRenderModeObj const* pObj) { if (mRenderObj != NULL && pObj->vi_tv_mode != mRenderObj->vi_tv_mode) { mSetBlack = true; mSetBlackFrameCount = 4; } - mRenderObj = (_GXRenderModeObj*)pObj; + mRenderObj = (GXRenderModeObj*)pObj; VIConfigure(mRenderObj); VIFlush(); -- cgit v1.2.3 From a38b4874934603e9dbeed58548669771a372e1c3 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 13:58:04 +0200 Subject: OK preRetraceProc__8JUTVideoFUl --- libs/JSystem/JUtility/JUTVideo.cpp | 127 +++++++++++++++++++++++++++---------- 1 file changed, 95 insertions(+), 32 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 99acf20416..922b5a2810 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -4,21 +4,19 @@ // #include "JSystem/JUtility/JUTVideo.h" +#include "JSystem/JUtility/JUTXfb.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "dolphin/vi/vi.h" // // Types: // -struct JUTXfb { - static u8 sManager[4 + 4 /* padding */]; -}; - struct JUTDirectPrint { /* 802E456C */ void changeFrameBuffer(void*, u16, u16); - static u8 sDirectPrint[4 + 4 /* padding */]; + static JUTDirectPrint* sDirectPrint; }; // @@ -47,18 +45,8 @@ extern "C" u8 sVideoInterval__8JUTVideo[4]; extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs(); -extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); -extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); -extern "C" void VIInit(); -extern "C" void VIWaitForRetrace(); -extern "C" void VIConfigure(_GXRenderModeObj*); -extern "C" void VIFlush(); -extern "C" void VISetNextFrameBuffer(); -extern "C" void VIGetNextFrameBuffer(); -extern "C" void VISetBlack(s32); -extern "C" u32 VIGetRetraceCount(); extern "C" void GXSetDrawDone(); -extern "C" void GXCopyDisp(); +extern "C" void GXCopyDisp(void*, BOOL); extern "C" u8 sDirectPrint__14JUTDirectPrint[4 + 4 /* padding */]; extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */]; @@ -98,10 +86,10 @@ SECTION_DATA extern void* __vt__8JUTVideo[3 + 1 /* padding */] = { }; /* 8045153C-80451540 000A3C 0004+00 2/2 1/1 0/0 .sbss sVideoLastTick__8JUTVideo */ -u32 JUTVideo::sVideoLastTick; +OSTick JUTVideo::sVideoLastTick; /* 80451540-80451544 000A40 0004+00 2/2 1/1 0/0 .sbss sVideoInterval__8JUTVideo */ -u32 JUTVideo::sVideoInterval; +OSTick JUTVideo::sVideoInterval; /* 802E4CF4-802E4DE8 2DF634 00F4+00 1/1 0/0 0/0 .text __ct__8JUTVideoFPC16_GXRenderModeObj */ JUTVideo::JUTVideo(GXRenderModeObj const* param_0) { @@ -120,13 +108,12 @@ JUTVideo::JUTVideo(GXRenderModeObj const* param_0) { sVideoInterval = 670000; mPreRetraceCallback = VISetPreRetraceCallback(preRetraceProc); mPostRetraceCallback = VISetPostRetraceCallback(postRetraceProc); - unknown_callback_1 = NULL; - unknown_callback_2 = NULL; + mPreCallback = NULL; + mPostCallback = NULL; OSInitMessageQueue(&mMessageQueue, &mMessage, 1); GXSetDrawDoneCallback(drawDoneCallback); } - /* 802E4DE8-802E4E50 2DF728 0068+00 1/0 0/0 0/0 .text __dt__8JUTVideoFv */ JUTVideo::~JUTVideo() { VISetPreRetraceCallback(mPreRetraceCallback); @@ -135,33 +122,109 @@ JUTVideo::~JUTVideo() { /* ############################################################################################## */ /* 80451544-80451548 000A44 0004+00 4/4 0/0 0/0 .sbss None */ -static u8 data_80451544[4]; +static bool data_80451544; /* 80451548-8045154C 000A48 0004+00 1/1 0/0 0/0 .sbss frameBuffer$2222 */ static void* frameBuffer; /* 8045154C-80451550 000A4C 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_8045154C[4]; +static s8 data_8045154C; /* 802E4E50-802E5088 2DF790 0238+00 1/1 0/0 0/0 .text preRetraceProc__8JUTVideoFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTVideo::preRetraceProc(u32 param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTVideo/preRetraceProc__8JUTVideoFUl.s" +void JUTVideo::preRetraceProc(u32 retrace_count) { + if (!sManager) { + return; + } + + if (sManager->mPreCallback) { + (*sManager->mPreCallback)(retrace_count); + } + + OSTick tick = OSGetTick(); + sVideoInterval = tick - sVideoLastTick; + sVideoLastTick = tick; + + JUTXfb* xfb = JUTXfb::getManager(); + if (!xfb) { + VISetBlack(TRUE); + VIFlush(); + return; + } + + if (!data_8045154C) { + frameBuffer = NULL; + data_8045154C = true; + } + + if (frameBuffer) { + JUTVideo* videoManager = JUTGetVideoManager(); + const GXRenderModeObj* renderMode = videoManager->getRenderMode(); + JUTDirectPrint::sDirectPrint->changeFrameBuffer(frameBuffer, renderMode->fb_width, + renderMode->efb_height); + } + + if (sManager->mSetBlack == 1) { + s32 frame_count = sManager->mSetBlackFrameCount; + if (frame_count > 0) { + frame_count--; + } + + sManager->mSetBlackFrameCount = frame_count; + sManager->mSetBlack = frame_count != 0; + VISetBlack(TRUE); + VIFlush(); + return; + } + + if (!xfb) { + VISetBlack(TRUE); + VIFlush(); + return; + } + + if (xfb->getBufferNum() == 3 || xfb->getBufferNum() == 2) { + if (!data_80451544) { + s16 index = xfb->getDrawnXfbIndex(); + xfb->setDisplayingXfbIndex(index); + if (index < 0) { + VISetBlack(1); + VIFlush(); + } else { + VISetNextFrameBuffer(xfb->getDisplayingXfb()); + VIFlush(); + VISetBlack(FALSE); + frameBuffer = xfb->getDisplayingXfb(); + } + } + } else if (xfb->getBufferNum() == 1) { + if (xfb->getSDrawingFlag() == 0) { + s16 index = xfb->getDrawnXfbIndex(); + if (index >= 0) { + xfb->setDisplayingXfbIndex(index); + GXCopyDisp(xfb->getDisplayingXfb(), 1); + GXFlush(); + xfb->setSDrawingFlag(2); + frameBuffer = xfb->getDisplayingXfb(); + if (VIGetNextFrameBuffer()) { + VISetBlack(FALSE); + } + } else { + VISetBlack(TRUE); + } + } + VIFlush(); + } } -#pragma pop /* 802E5088-802E50B0 2DF9C8 0028+00 0/0 1/1 0/0 .text drawDoneStart__8JUTVideoFv */ void JUTVideo::drawDoneStart() { - data_80451544[0] = 1; + data_80451544 = 1; GXSetDrawDone(); } /* 802E50B0-802E50BC 2DF9F0 000C+00 0/0 1/1 0/0 .text dummyNoDrawWait__8JUTVideoFv */ void JUTVideo::dummyNoDrawWait() { - data_80451544[0] = 0; + data_80451544 = 0; } /* 802E50BC-802E5144 2DF9FC 0088+00 1/1 0/0 0/0 .text drawDoneCallback__8JUTVideoFv */ -- cgit v1.2.3 From c2fc1f85a5d8ffb523f142851f1b779ae0bc9ba8 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 14:06:53 +0200 Subject: OK drawDoneCallback__8JUTVideoFv --- libs/JSystem/JUtility/JUTVideo.cpp | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 922b5a2810..3aa9764b52 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -218,27 +218,38 @@ void JUTVideo::preRetraceProc(u32 retrace_count) { /* 802E5088-802E50B0 2DF9C8 0028+00 0/0 1/1 0/0 .text drawDoneStart__8JUTVideoFv */ void JUTVideo::drawDoneStart() { - data_80451544 = 1; + data_80451544 = true; GXSetDrawDone(); } /* 802E50B0-802E50BC 2DF9F0 000C+00 0/0 1/1 0/0 .text dummyNoDrawWait__8JUTVideoFv */ void JUTVideo::dummyNoDrawWait() { - data_80451544 = 0; + data_80451544 = false; } /* 802E50BC-802E5144 2DF9FC 0088+00 1/1 0/0 0/0 .text drawDoneCallback__8JUTVideoFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTVideo::drawDoneCallback() { - nofralloc -#include "asm/JSystem/JUtility/JUTVideo/drawDoneCallback__8JUTVideoFv.s" +void JUTVideo::drawDoneCallback() { + JUTXfb* xfb = JUTXfb::getManager(); + if (!xfb) { + return; + } + + data_80451544 = false; + if (xfb->getBufferNum() == 1) { + if (xfb->getSDrawingFlag() == 1) { + xfb->setSDrawingFlag(0); + + void* frameBuffer = xfb->getDrawnXfb(); + if (frameBuffer) { + VISetNextFrameBuffer(xfb->getDrawnXfb()); + VIFlush(); + } + } + } } -#pragma pop /* 802E5144-802E5198 2DFA84 0054+00 1/1 0/0 0/0 .text postRetraceProc__8JUTVideoFUl */ -#ifdef NONMATCHING +#if NONMATCHING void JUTVideo::postRetraceProc(u32 param_0) { void* message; if (sManager != NULL) { -- cgit v1.2.3 From d0e22b9f1b3d5e71bff6a5401b1958fb95c14bfe Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 14:09:35 +0200 Subject: OK postRetraceProc__8JUTVideoFUl --- libs/JSystem/JUtility/JUTVideo.cpp | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 3aa9764b52..7190c062a8 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -249,27 +249,18 @@ void JUTVideo::drawDoneCallback() { } /* 802E5144-802E5198 2DFA84 0054+00 1/1 0/0 0/0 .text postRetraceProc__8JUTVideoFUl */ -#if NONMATCHING -void JUTVideo::postRetraceProc(u32 param_0) { - void* message; - if (sManager != NULL) { - if (sManager->unknown_callback_2 != NULL) { - sManager->unknown_callback_2(); - } - message = (void*)VIGetRetraceCount(); - OSSendMessage(&sManager->mMessageQueue, message, OS_MESSAGE_NON_BLOCKING); +void JUTVideo::postRetraceProc(u32 retrace_count) { + if (!sManager) { + return; } + + if (sManager->mPostCallback != NULL) { + sManager->mPostCallback(retrace_count); + } + + OSMessage message = (OSMessage*)VIGetRetraceCount(); + OSSendMessage(&sManager->mMessageQueue, message, OS_MESSAGE_NON_BLOCKING); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTVideo::postRetraceProc(u32 param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTVideo/postRetraceProc__8JUTVideoFUl.s" -} -#pragma pop -#endif /* 802E5198-802E5210 2DFAD8 0078+00 1/1 2/2 0/0 .text * setRenderMode__8JUTVideoFPC16_GXRenderModeObj */ -- cgit v1.2.3 From 444cad0d103f9860ef4be1e59bec80b7690bb26c Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 14:22:03 +0200 Subject: Format and removed unused .s files. --- libs/JSystem/JUtility/JUTVideo.cpp | 66 +++++++++----------------------------- 1 file changed, 15 insertions(+), 51 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 7190c062a8..87cb3f9d1b 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -19,45 +19,35 @@ struct JUTDirectPrint { static JUTDirectPrint* sDirectPrint; }; -// -// Forward References: -// - -extern "C" void createManager__8JUTVideoFPC16_GXRenderModeObj(); -extern "C" void destroyManager__8JUTVideoFv(); -extern "C" void __ct__8JUTVideoFPC16_GXRenderModeObj(); -extern "C" void __dt__8JUTVideoFv(); -extern "C" void preRetraceProc__8JUTVideoFUl(); -extern "C" void drawDoneStart__8JUTVideoFv(); -extern "C" void dummyNoDrawWait__8JUTVideoFv(); -extern "C" void drawDoneCallback__8JUTVideoFv(); -extern "C" void postRetraceProc__8JUTVideoFUl(); -extern "C" void setRenderMode__8JUTVideoFPC16_GXRenderModeObj(); -extern "C" void waitRetraceIfNeed__8JUTVideoFv(); -extern "C" u8 sManager__8JUTVideo[4]; -extern "C" u8 sVideoLastTick__8JUTVideo[4]; -extern "C" u8 sVideoInterval__8JUTVideo[4]; - // // External References: // -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs(); extern "C" void GXSetDrawDone(); extern "C" void GXCopyDisp(void*, BOOL); -extern "C" u8 sDirectPrint__14JUTDirectPrint[4 + 4 /* padding */]; -extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */]; // // Declarations: // -/* ############################################################################################## */ /* 80451538-8045153C 000A38 0004+00 4/4 18/18 1/1 .sbss sManager__8JUTVideo */ JUTVideo* JUTVideo::sManager; +/* 8045153C-80451540 000A3C 0004+00 2/2 1/1 0/0 .sbss sVideoLastTick__8JUTVideo */ +OSTick JUTVideo::sVideoLastTick; + +/* 80451540-80451544 000A40 0004+00 2/2 1/1 0/0 .sbss sVideoInterval__8JUTVideo */ + +OSTick JUTVideo::sVideoInterval; +/* 80451544-80451548 000A44 0004+00 4/4 0/0 0/0 .sbss None */ +static bool data_80451544; + +/* 80451548-8045154C 000A48 0004+00 1/1 0/0 0/0 .sbss frameBuffer$2222 */ +static void* frameBuffer; + +/* 8045154C-80451550 000A4C 0004+00 1/1 0/0 0/0 .sbss None */ +static s8 data_8045154C; + /* 802E4C54-802E4CAC 2DF594 0058+00 0/0 1/1 0/0 .text * createManager__8JUTVideoFPC16_GXRenderModeObj */ JUTVideo* JUTVideo::createManager(_GXRenderModeObj const* param_0) { @@ -75,22 +65,6 @@ void JUTVideo::destroyManager() { } } -/* ############################################################################################## */ -/* 803CC980-803CC990 029AA0 000C+04 2/2 0/0 0/0 .data __vt__8JUTVideo */ -SECTION_DATA extern void* __vt__8JUTVideo[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8JUTVideoFv, - /* padding */ - NULL, -}; - -/* 8045153C-80451540 000A3C 0004+00 2/2 1/1 0/0 .sbss sVideoLastTick__8JUTVideo */ -OSTick JUTVideo::sVideoLastTick; - -/* 80451540-80451544 000A40 0004+00 2/2 1/1 0/0 .sbss sVideoInterval__8JUTVideo */ -OSTick JUTVideo::sVideoInterval; - /* 802E4CF4-802E4DE8 2DF634 00F4+00 1/1 0/0 0/0 .text __ct__8JUTVideoFPC16_GXRenderModeObj */ JUTVideo::JUTVideo(GXRenderModeObj const* param_0) { mRenderObj = NULL; @@ -120,16 +94,6 @@ JUTVideo::~JUTVideo() { VISetPostRetraceCallback(mPostRetraceCallback); } -/* ############################################################################################## */ -/* 80451544-80451548 000A44 0004+00 4/4 0/0 0/0 .sbss None */ -static bool data_80451544; - -/* 80451548-8045154C 000A48 0004+00 1/1 0/0 0/0 .sbss frameBuffer$2222 */ -static void* frameBuffer; - -/* 8045154C-80451550 000A4C 0004+00 1/1 0/0 0/0 .sbss None */ -static s8 data_8045154C; - /* 802E4E50-802E5088 2DF790 0238+00 1/1 0/0 0/0 .text preRetraceProc__8JUTVideoFUl */ void JUTVideo::preRetraceProc(u32 retrace_count) { if (!sManager) { -- cgit v1.2.3 From 77ad390d8e9c6112329221ed864dead455182b4e Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Mon, 27 Sep 2021 18:49:30 +0200 Subject: Format and clean up from merge. --- libs/JSystem/JUtility/JUTVideo.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'libs/JSystem/JUtility/JUTVideo.cpp') diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 87cb3f9d1b..cff1fe483e 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -4,21 +4,12 @@ // #include "JSystem/JUtility/JUTVideo.h" +#include "JSystem/JUtility/JUTDirectPrint.h" #include "JSystem/JUtility/JUTXfb.h" #include "dol2asm.h" #include "dolphin/types.h" #include "dolphin/vi/vi.h" -// -// Types: -// - -struct JUTDirectPrint { - /* 802E456C */ void changeFrameBuffer(void*, u16, u16); - - static JUTDirectPrint* sDirectPrint; -}; - // // External References: // @@ -37,8 +28,8 @@ JUTVideo* JUTVideo::sManager; OSTick JUTVideo::sVideoLastTick; /* 80451540-80451544 000A40 0004+00 2/2 1/1 0/0 .sbss sVideoInterval__8JUTVideo */ - OSTick JUTVideo::sVideoInterval; + /* 80451544-80451548 000A44 0004+00 4/4 0/0 0/0 .sbss None */ static bool data_80451544; @@ -123,8 +114,8 @@ void JUTVideo::preRetraceProc(u32 retrace_count) { if (frameBuffer) { JUTVideo* videoManager = JUTGetVideoManager(); const GXRenderModeObj* renderMode = videoManager->getRenderMode(); - JUTDirectPrint::sDirectPrint->changeFrameBuffer(frameBuffer, renderMode->fb_width, - renderMode->efb_height); + JUTDirectPrint* directPrint = JUTDirectPrint::getManager(); + directPrint->changeFrameBuffer(frameBuffer, renderMode->fb_width, renderMode->efb_height); } if (sManager->mSetBlack == 1) { -- cgit v1.2.3