mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-21 18:29:05 +02:00
Fix the point in time in the frame that we run and render the ImDebugger
Turns out it matters quite a lot. Will see if I can clean this up later.
This commit is contained in:
1 parent
b67667cbd1
commit
c65eb7d54f
3 files changed
+8
-7
No files matched your search
@@ -187,7 +187,7 @@ void ScreenManager::resized() {
|
||||
}
|
||||
}
|
||||
|
||||
ScreenRenderFlags ScreenManager::render() {
|
||||
ScreenRenderFlags ScreenManager::Render(std::function<void()> afterPreRender) {
|
||||
using namespace Draw;
|
||||
|
||||
ScreenRenderFlags flags = ScreenRenderFlags::NONE;
|
||||
@@ -203,6 +203,8 @@ ScreenRenderFlags ScreenManager::render() {
|
||||
flags |= layer.screen->PreRender(mode);
|
||||
}
|
||||
|
||||
afterPreRender();
|
||||
|
||||
// Now, start the final render pass. This is now the ONLY place where binding the null fb is allowed.
|
||||
draw_->BindFramebufferAsRenderTarget(nullptr, {RPAction::CLEAR, RPAction::CLEAR, RPAction::CLEAR}, "BackBuffer");
|
||||
getUIContext()->BeginFrame();
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
postRenderUserdata_ = userdata;
|
||||
}
|
||||
|
||||
ScreenRenderFlags render();
|
||||
ScreenRenderFlags Render(std::function<void()> afterPreRender);
|
||||
void resized();
|
||||
void shutdown();
|
||||
|
||||
|
||||
+4
-5
@@ -1285,15 +1285,14 @@ void NativeFrame(GraphicsContext *graphicsContext) {
|
||||
Core_ProcessCPUQueue();
|
||||
|
||||
// All actual rendering (and also emulation) happens in this render() call.
|
||||
renderFlags = g_screenManager->render();
|
||||
renderFlags = g_screenManager->Render([]() {
|
||||
runImDebugger(g_draw);
|
||||
});
|
||||
renderImDebugger(g_draw);
|
||||
if (g_screenManager->getUIContext()->Text()) {
|
||||
g_screenManager->getUIContext()->Text()->OncePerFrame();
|
||||
}
|
||||
|
||||
ui_draw2d.PopDrawMatrix();
|
||||
|
||||
runImDebugger(g_draw);
|
||||
renderImDebugger(g_draw);
|
||||
}
|
||||
g_draw->EndFrame();
|
||||
|
||||
|
||||
Reference in new issue
Block a user