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.
This commit is contained in:
Romain Vimont 2019-10-20 15:32:33 +02:00
parent c42ff75b74
commit 2f7586ad7f
3 changed files with 12 additions and 1 deletions

View file

@ -145,9 +145,11 @@ handle_event(SDL_Event *event, bool control) {
case SDL_WINDOWEVENT:
switch (event->window.event) {
case SDL_WINDOWEVENT_EXPOSED:
case SDL_WINDOWEVENT_SIZE_CHANGED:
screen_render(&screen);
break;
case SDL_WINDOWEVENT_SIZE_CHANGED:
screen_window_resized(&screen);
break;
}
break;
case SDL_TEXTINPUT:

View file

@ -278,6 +278,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);

View file

@ -60,6 +60,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);