From 94f4b1f36149e6cabbbfa6e9a82ca2df2505eb39 Mon Sep 17 00:00:00 2001 From: Timo Korvola Date: Mon, 2 Apr 2018 11:52:16 +0300 Subject: [PATCH] Fix expose handling. It is not enough to just call SDL_RenderPresent. The frame must be rendered first, i.e., copied from texture. This fixes fullscreen toggling as well. --- src/sdl/sf_video.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sdl/sf_video.c b/src/sdl/sf_video.c index a4e6d14..3980da1 100644 --- a/src/sdl/sf_video.c +++ b/src/sdl/sf_video.c @@ -51,7 +51,6 @@ static int mywcslen( zchar *b) } static void myGrefresh() { - SDL_UpdateTexture(texture, NULL, sbuffer, sbpitch * sizeof(ulong)); SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); @@ -349,6 +348,7 @@ static void scroll( int x, int y, int w, int h, int n) */ bool sf_flushdisplay() { if (dirty) { + SDL_UpdateTexture(texture, NULL, sbuffer, sbpitch * sizeof(ulong)); myGrefresh(); dirty = 0; return true; @@ -597,7 +597,7 @@ static void handle_window_event(SDL_Event *e) { switch (e->window.event) { case SDL_WINDOWEVENT_EXPOSED: - SDL_RenderPresent(renderer); + myGrefresh(); } } -- 2.34.1