Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision 28c13dafd9634445841ee3e30280ec2cab479545)
+++ vulkan-game.cpp	(revision 1187ef541d750ff1bc72ec80f3d3e5b630ca7d6d)
@@ -192,5 +192,11 @@
 
       VkRenderPass renderPass;
+
       VkCommandPool commandPool;
+      vector<VkCommandBuffer> commandBuffers;
+
+      // The images and the sampler are used to store data for specific attributes. I probably
+      // want to keep them separate from the GraphicsPipelineInfo objects and start passing
+      // references to them once I start defining uniform and varying attributes in GraphicsPipelineInfo objects
 
       VkImage depthImage;
@@ -212,11 +218,13 @@
       VkSampler textureSampler;
 
+      // These are currently to store the MVP matrix
+      // I should figure out if it makes sense to use them for other uniforms in the future
+      // If not, I should rename them to better indicate their puprose.
+      // I should also decide if I can use these for all shaders, or if I need a separapte set of buffers for each one
+      vector<VkBuffer> uniformBuffers;
+      vector<VkDeviceMemory> uniformBuffersMemory;
+
       GraphicsPipelineInfo scenePipeline;
       GraphicsPipelineInfo overlayPipeline;
-
-      vector<VkBuffer> uniformBuffers;
-      vector<VkDeviceMemory> uniformBuffersMemory;
-
-      vector<VkCommandBuffer> commandBuffers;
 
       vector<VkSemaphore> imageAvailableSemaphores;
@@ -323,4 +331,5 @@
          createDepthResources();
          createFramebuffers();
+
          createImageResources("textures/texture.jpg", textureImage, textureImageMemory, textureImageView);
          createImageResourcesFromSDLTexture(uiOverlay, sdlOverlayImage, sdlOverlayImageMemory, sdlOverlayImageView);
@@ -1632,16 +1641,16 @@
       }
 
-      void createGraphicsPipelineCommands(GraphicsPipelineInfo& info, size_t imageIdx) {
-         vkCmdBindPipeline(commandBuffers[imageIdx], VK_PIPELINE_BIND_POINT_GRAPHICS, info.pipeline);
-         vkCmdBindDescriptorSets(commandBuffers[imageIdx], VK_PIPELINE_BIND_POINT_GRAPHICS, info.pipelineLayout, 0, 1,
-            &info.descriptorSets[imageIdx], 0, nullptr);
+      void createGraphicsPipelineCommands(GraphicsPipelineInfo& info, uint32_t currentImage) {
+         vkCmdBindPipeline(commandBuffers[currentImage], VK_PIPELINE_BIND_POINT_GRAPHICS, info.pipeline);
+         vkCmdBindDescriptorSets(commandBuffers[currentImage], VK_PIPELINE_BIND_POINT_GRAPHICS, info.pipelineLayout, 0, 1,
+            &info.descriptorSets[currentImage], 0, nullptr);
 
          VkBuffer vertexBuffers[] = { info.vertexBuffer };
          VkDeviceSize offsets[] = { 0 };
-         vkCmdBindVertexBuffers(commandBuffers[imageIdx], 0, 1, vertexBuffers, offsets);
-
-         vkCmdBindIndexBuffer(commandBuffers[imageIdx], info.indexBuffer, 0, VK_INDEX_TYPE_UINT16);
-
-         vkCmdDrawIndexed(commandBuffers[imageIdx], static_cast<uint32_t>(info.numIndices), 1, 0, 0, 0);
+         vkCmdBindVertexBuffers(commandBuffers[currentImage], 0, 1, vertexBuffers, offsets);
+
+         vkCmdBindIndexBuffer(commandBuffers[currentImage], info.indexBuffer, 0, VK_INDEX_TYPE_UINT16);
+
+         vkCmdDrawIndexed(commandBuffers[currentImage], static_cast<uint32_t>(info.numIndices), 1, 0, 0, 0);
       }
 
@@ -1660,6 +1669,6 @@
          for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++) {
             if (vkCreateSemaphore(device, &semaphoreInfo, nullptr, &imageAvailableSemaphores[i]) != VK_SUCCESS ||
-               vkCreateSemaphore(device, &semaphoreInfo, nullptr, &renderFinishedSemaphores[i]) != VK_SUCCESS ||
-               vkCreateFence(device, &fenceInfo, nullptr, &inFlightFences[i]) != VK_SUCCESS) {
+                vkCreateSemaphore(device, &semaphoreInfo, nullptr, &renderFinishedSemaphores[i]) != VK_SUCCESS ||
+                vkCreateFence(device, &fenceInfo, nullptr, &inFlightFences[i]) != VK_SUCCESS) {
                throw runtime_error("failed to create synchronization objects for a frame!");
             }
@@ -1684,7 +1693,6 @@
                }
                if (e.type == SDL_WINDOWEVENT) {
-                  if (e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) {
-                     framebufferResized = true;
-                  } else if (e.window.event == SDL_WINDOWEVENT_MINIMIZED) {
+                  if (e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED ||
+                      e.window.event == SDL_WINDOWEVENT_MINIMIZED) {
                      framebufferResized = true;
                   }
