From cec5fdb231de1a6f87a00795e6e3c93fcf4f28ad Mon Sep 17 00:00:00 2001 From: Clownacy Date: Wed, 4 Nov 2020 22:17:18 +0000 Subject: [PATCH] 3DS: Add vsync Fixes screen-tearing in CSE2EX ...I should really figure out whether to enable vsync on other platforms or not. I'm not even sure if the original DirectDraw renderer used vsync - I swear I've never seen tearing in it before. --- src/Backends/Rendering/3DS.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Backends/Rendering/3DS.cpp b/src/Backends/Rendering/3DS.cpp index 41ff2e74..7d7a405e 100644 --- a/src/Backends/Rendering/3DS.cpp +++ b/src/Backends/Rendering/3DS.cpp @@ -181,9 +181,9 @@ void RenderBackend_Deinit(void) void RenderBackend_DrawScreen(void) { - EnableAlpha(false); + EndRendering(); - BeginRendering(); + EnableAlpha(false); const float texture_left = 0.0f; const float texture_top = 0.0f; @@ -202,13 +202,15 @@ void RenderBackend_DrawScreen(void) image.tex = &framebuffer_surface->texture; image.subtex = &subtexture; + C3D_FrameBegin(C3D_FRAME_SYNCDRAW); + C2D_TargetClear(screen_render_target, C2D_Color32(0, 0, 0, 0xFF)); SelectRenderTarget(screen_render_target); C2D_DrawImageAt(image, (400 - framebuffer_surface_width) / 2, (240 - framebuffer_surface_height) / 2, 0.0f); - EndRendering(); + C3D_FrameEnd(0); } RenderBackend_Surface* RenderBackend_CreateSurface(size_t width, size_t height, bool render_target)