Index: sdl-game.cpp
===================================================================
--- sdl-game.cpp	(revision 7734042d6fd036b480c40e04ad83a562162543a7)
+++ sdl-game.cpp	(revision 484334e16d4b1ce0b69d32411122b41c1c215922)
@@ -169,6 +169,8 @@
 
       if (shouldRecreateSwapChain) {
-         int width, height;
-         SDL_GetWindowSize(window, &width, &height);
+         gui->refreshWindowSize();
+
+         int width = gui->getWindowWidth();
+         int height = gui->getWindowHeight();
          if (width > 0 && height > 0) {
             // TODO: This should be used if the min image count changes, presumably because a new surface was created
Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision 7734042d6fd036b480c40e04ad83a562162543a7)
+++ vulkan-game.cpp	(revision 484334e16d4b1ce0b69d32411122b41c1c215922)
@@ -936,4 +936,22 @@
       }
 
+      if (shouldRecreateSwapChain) {
+         gui->refreshWindowSize();
+
+         int width = gui->getWindowWidth();
+         int height = gui->getWindowHeight();
+         if (width > 0 && height > 0) {
+            // TODO: This should be used if the min image count changes, presumably because a new surface was created
+            // with a different image count or something like that. Maybe I want to add code to query for a new min image count
+            // during swapchain recreation to take advantage of this
+            ImGui_ImplVulkan_SetMinImageCount(swapChainMinImageCount);
+
+            recreateSwapChain();
+
+            imageIndex = 0;
+            shouldRecreateSwapChain = false;
+         }
+      }
+
       currentScreen->renderUI();
 
