diff --git a/src/Gui.c b/src/Gui.c index ea79fa730..4e698a02b 100644 --- a/src/Gui.c +++ b/src/Gui.c @@ -420,8 +420,9 @@ void Screen_ContextLost(void* screen) { } } -void Screen_CreateVb(void* screen) { +void Screen_UpdateVb(void* screen) { struct Screen* s = (struct Screen*)screen; + Gfx_DeleteDynamicVb(&s->vb); s->vb = Gfx_CreateDynamicVb(VERTEX_FORMAT_TEXTURED, s->maxVertices); } diff --git a/src/Gui.h b/src/Gui.h index a56692ecb..e48c51a5a 100644 --- a/src/Gui.h +++ b/src/Gui.h @@ -108,7 +108,7 @@ void Screen_Layout(void* screen); /* Calls Widget_Free on each widget in the screen. */ /* Also deletes the screen's vb. */ void Screen_ContextLost(void* screen); -void Screen_CreateVb(void* screen); +void Screen_UpdateVb(void* screen); struct VertexTextured* Screen_LockVb(void* screen); void Screen_BuildMesh(void* screen); int Screen_DoPointerDown(void* screen, int id, int x, int y); diff --git a/src/Menus.c b/src/Menus.c index 22e851b28..978cf297a 100644 --- a/src/Menus.c +++ b/src/Menus.c @@ -383,7 +383,7 @@ static void ListScreen_ContextLost(void* screen) { static void ListScreen_ContextRecreated(void* screen) { struct ListScreen* s = (struct ListScreen*)screen; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&s->font); ListScreen_RedrawEntries(s); @@ -458,7 +458,7 @@ static void PauseScreen_ContextRecreated(void* screen) { struct PauseScreen* s = (struct PauseScreen*)screen; struct FontDesc titleFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&titleFont); Menu_SetButtons(s->btns, &titleFont, s->descs, s->descsCount); @@ -604,7 +604,7 @@ static void OptionsGroupScreen_ContextLost(void* screen) { static void OptionsGroupScreen_ContextRecreated(void* screen) { struct OptionsGroupScreen* s = (struct OptionsGroupScreen*)screen; struct FontDesc titleFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&titleFont); Gui_MakeBodyFont(&s->textFont); @@ -852,7 +852,7 @@ static void EditHotkeyScreen_ContextRecreated(void* screen) { Gui_MakeTitleFont(&s->titleFont); Gui_MakeBodyFont(&s->textFont); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); EditHotkeyScreen_UpdateBaseKey(s); EditHotkeyScreen_UpdateModifiers(s); @@ -1061,7 +1061,7 @@ static void GenLevelScreen_ContextRecreated(void* screen) { struct FontDesc titleFont; Gui_MakeTitleFont(&titleFont); Gui_MakeBodyFont(&s->textFont); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); TextInputWidget_SetFont(&s->inputs[0], &s->textFont); TextInputWidget_SetFont(&s->inputs[1], &s->textFont); @@ -1165,7 +1165,7 @@ static void ClassicGenScreen_Huge(void* a, void* b) { ClassicGenScreen_Gen(512 static void ClassicGenScreen_ContextRecreated(void* screen) { struct ClassicGenScreen* s = (struct ClassicGenScreen*)screen; struct FontDesc titleFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&titleFont); ButtonWidget_SetConst(&s->btns[0], "Small", &titleFont); @@ -1415,7 +1415,7 @@ static void SaveLevelScreen_ContextRecreated(void* screen) { Gui_MakeTitleFont(&s->titleFont); Gui_MakeBodyFont(&s->textFont); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); SaveLevelScreen_UpdateSave(s); SaveLevelScreen_UpdateAlt(s); @@ -1769,7 +1769,7 @@ static void KeyBindsScreen_ContextRecreated(void* screen) { struct FontDesc textFont; int i; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&s->titleFont); Gui_MakeBodyFont(&textFont); for (i = 0; i < s->bindsCount; i++) { KeyBindsScreen_Update(s, i); } @@ -2094,7 +2094,7 @@ static void MenuInputOverlay_ContextRecreated(void* screen) { struct FontDesc font; Gui_MakeTitleFont(&font); Gui_MakeBodyFont(&s->textFont); - Screen_CreateVb(s); + Screen_UpdateVb(s); TextInputWidget_SetFont(&s->input, &s->textFont); ButtonWidget_SetConst(&s->ok, "OK", &font); @@ -3177,7 +3177,7 @@ static void TexIdsOverlay_ContextRecreated(void* screen) { struct TexIdsOverlay* s = (struct TexIdsOverlay*)screen; struct FontDesc textFont, titleFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Drawer2D_MakeFont(&textFont, 8, FONT_FLAGS_PADDING); Font_SetPadding(&textFont, 1); TextAtlas_Make(&s->idAtlas, &chars, &textFont, &prefix); @@ -3364,7 +3364,7 @@ static void UrlWarningOverlay_AppendUrl(void* screen, void* b) { static void UrlWarningOverlay_ContextRecreated(void* screen) { struct UrlWarningOverlay* s = (struct UrlWarningOverlay*)screen; struct FontDesc titleFont, textFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&titleFont); Gui_MakeBodyFont(&textFont); @@ -3519,7 +3519,7 @@ static void TexPackOverlay_ContextLost(void* screen) { static void TexPackOverlay_ContextRecreated(void* screen) { struct TexPackOverlay* s = (struct TexPackOverlay*)screen; struct FontDesc titleFont; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&titleFont); Gui_MakeBodyFont(&s->textFont); @@ -3685,7 +3685,7 @@ static void TouchOnscreenScreen_ContextLost(void* screen) { static void TouchOnscreenScreen_ContextRecreated(void* screen) { struct TouchOnscreenScreen* s = (struct TouchOnscreenScreen*)screen; Gui_MakeTitleFont(&s->font); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Menu_SetButtons(s->btns, &s->font, s->btnDescs, ONSCREEN_PAGE_BTNS); ButtonWidget_SetConst(&s->back, "Done", &s->font); ButtonWidget_SetConst(&s->left, "<", &s->font); @@ -3826,7 +3826,7 @@ static void TouchCtrlsScreen_ContextLost(void* screen) { static void TouchCtrlsScreen_ContextRecreated(void* screen) { struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen; Gui_MakeTitleFont(&s->font); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Menu_SetButtons(s->btns, &s->font, touchCtrls_btns, TOUCHCTRLS_BTNS); ButtonWidget_SetConst(&s->back, "Done", &s->font); @@ -3914,7 +3914,7 @@ static void TouchMoreScreen_ContextRecreated(void* screen) { struct TouchMoreScreen* s = (struct TouchMoreScreen*)screen; struct FontDesc titleFont; Gui_MakeTitleFont(&titleFont); - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Menu_SetButtons(s->btns, &titleFont, touchMore_btns, TOUCHMORE_BTNS); ButtonWidget_SetConst(&s->back, "Back to game", &titleFont); diff --git a/src/Screens.c b/src/Screens.c index 3de58de07..e56fe9ff7 100644 --- a/src/Screens.c +++ b/src/Screens.c @@ -1535,9 +1535,7 @@ static void LoadingScreen_Layout(void* screen) { oldRows = s->rows; LoadingScreen_CalcMaxVertices(s); if (oldRows == s->rows) return; - - Gfx_DeleteDynamicVb(&s->vb); - Screen_CreateVb(s); + Screen_UpdateVb(s); } static void LoadingScreen_ContextLost(void* screen) { @@ -1551,7 +1549,7 @@ static void LoadingScreen_ContextRecreated(void* screen) { Gui_MakeBodyFont(&s->font); LoadingScreen_SetTitle(s); LoadingScreen_SetMessage(s); - Screen_CreateVb(s); + Screen_UpdateVb(s); } static void LoadingScreen_BuildMesh(void* screen) { @@ -1805,7 +1803,7 @@ static void DisconnectScreen_ContextLost(void* screen) { static void DisconnectScreen_ContextRecreated(void* screen) { struct DisconnectScreen* s = (struct DisconnectScreen*)screen; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&s->titleFont); Gui_MakeBodyFont(&s->messageFont); @@ -2039,7 +2037,7 @@ static void TouchScreen_ContextRecreated(void* screen) { struct TouchScreen* s = (struct TouchScreen*)screen; const struct TouchButtonDesc* desc; int i; - Screen_CreateVb(screen); + Screen_UpdateVb(screen); Gui_MakeTitleFont(&s->font); for (i = 0; i < s->numOnscreen; i++) {