From 2ed8f5009b182e5c3e359e99d6812567c280769c Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 20 Oct 2019 15:32:33 +0200 Subject: [PATCH] Handle window resizing in screen Only the screen knows what to do when the window is resized. This paves the way to do other actions on window resizing. --- app/src/screen.c | 7 ++++++- app/src/screen.h | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/screen.c b/app/src/screen.c index d4f96a39..5b507a9c 100644 --- a/app/src/screen.c +++ b/app/src/screen.c @@ -434,6 +434,11 @@ screen_update_frame(struct screen *screen, struct video_buffer *vb) { return true; } +void +screen_window_resized(struct screen *screen) { + screen_render(screen); +} + void screen_render(struct screen *screen) { SDL_RenderClear(screen->renderer); @@ -532,7 +537,7 @@ screen_handle_window_event(struct screen *screen, // window is maximized or fullscreen is enabled. screen->windowed_window_size = get_window_size(screen->window); } - screen_render(screen); + screen_window_resized(screen); break; case SDL_WINDOWEVENT_MAXIMIZED: // The backup size must be non-nul. diff --git a/app/src/screen.h b/app/src/screen.h index 85514279..5f308439 100644 --- a/app/src/screen.h +++ b/app/src/screen.h @@ -90,6 +90,10 @@ screen_destroy(struct screen *screen); bool screen_update_frame(struct screen *screen, struct video_buffer *vb); +// update content after window resizing +void +screen_window_resized(struct screen *screen); + // render the texture to the renderer void screen_render(struct screen *screen);