From: Timo Korvola Date: Mon, 2 Apr 2018 08:52:16 +0000 (+0300) Subject: Fix expose handling. X-Git-Url: https://scope-eye.net/git/?a=commitdiff_plain;h=94f4b1f36149e6cabbbfa6e9a82ca2df2505eb39;p=liskon_frotz.git 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. --- 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(); } }