From 3e273e4fa3058e39f1d66e5081a421c5b90d872c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathis=20Rib=C3=A9mont?= Date: Mon, 28 Feb 2022 08:32:42 +0100 Subject: [PATCH] present main menu only when it's needed --- Pontu/src/view/MainMenu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Pontu/src/view/MainMenu.c b/Pontu/src/view/MainMenu.c index a10d65e..5585161 100644 --- a/Pontu/src/view/MainMenu.c +++ b/Pontu/src/view/MainMenu.c @@ -98,6 +98,7 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general drawButtonOnRenderer(renderer,&(buttons[OPTION])); drawButtonOnRenderer(renderer,&(buttons[QUIT])); + bool drawSomething = true; while(*generalState == GS_MainMenu) { while(SDL_PollEvent(&event)) @@ -121,16 +122,18 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general case 1: drawButtonOnRenderer(renderer,&(buttons[i])); playSFX(SFX_menu_sound_effect, audioHandler); + drawSomething = true; break; case 2: drawButtonOnRenderer(renderer,&(buttons[i])); + drawSomething = true; break; } } break; case SDL_WINDOWEVENT: if(event.window.event == SDL_WINDOWEVENT_RESIZED){ - SDL_SetRenderDrawColor(renderer, bg.r,bg.g,bg.b,0); + SDL_SetRenderDrawColor(renderer, bg.r,bg.g,bg.b,bg.a); SDL_RenderClear(renderer); printf("Window %d resized to %dx%d\n", event.window.windowID, event.window.data1, @@ -141,13 +144,17 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general buttons[i].rect.x = (windowSize.w/2)-(buttons[i].rect.w/2); drawButtonOnRenderer(renderer,&(buttons[i])); } + drawSomething = true; } break; default: break; } } - SDL_RenderPresent(renderer); + if (drawSomething) { + SDL_RenderPresent(renderer); + drawSomething = false; + } SDL_Delay(20); }