static SDL_Texture *sdl_texture_stream = NULL;
static SDL_Texture *sdl_texture_target = NULL;
static boolean fullscreen_enabled = FALSE;
+static boolean window_resized = FALSE;
static boolean limit_screen_updates = FALSE;
}
#endif
+ boolean clear_complete_render_target = (fullscreen_enabled || window_resized);
+
// clear render target (complete screen in fullscreen mode to clear visible off-screen areas)
// (this is especially important for touch buttons on Android and for different window sizes)
- if (fullscreen_enabled)
+ if (clear_complete_render_target)
SDL_RenderClear(sdl_renderer);
// set renderer to use target texture for rendering
SDL_SetRenderTarget(sdl_renderer, sdl_texture_target);
// clear render target (target texture only to fix black flickering with Metal window on Mac)
- if (!fullscreen_enabled)
+ if (!clear_complete_render_target)
SDL_RenderClear(sdl_renderer);
// copy backbuffer texture to render target buffer
// show render target buffer on screen
SDL_RenderPresent(sdl_renderer);
+
+ window_resized = FALSE;
}
static void UpdateScreen_WithFrameDelay(SDL_Rect *rect)
SDL_SetWindowTitle(sdl_window, program.window_title);
}
+void SDLSetWindowResized(void)
+{
+ window_resized = TRUE;
+}
+
void SDLSetWindowScaling(int window_scaling_percent)
{
if (sdl_window == NULL)
video.window_height = new_window_height;
SetWindowTitle();
+ SetWindowResized();
}
void SDLSetWindowScalingQuality(char *window_scaling_quality)
void SDLSetScreenVsyncMode(char *);
void SDLRedrawWindow(void);
void SDLSetWindowTitle(void);
+void SDLSetWindowResized(void);
void SDLLimitScreenUpdates(boolean);
void SDLInitVideoDisplay(void);
void InitRuntimeInfo(void);
void SetWindowTitle(void);
+void SetWindowResized(void);
void InitWindowTitleFunction(char *(*window_title_function)(void));
void InitExitMessageFunction(void (*exit_message_function)(char *, va_list));