diff options
| author | Clement Sibille <clements@lisible.xyz> | 2024-12-11 07:03:27 +0100 | 
|---|---|---|
| committer | Clement Sibille <clements@lisible.xyz> | 2024-12-11 07:03:27 +0100 | 
| commit | f2e57d296474839559e369d35f9df94be9a1cecc (patch) | |
| tree | f16fc0f64efc53efd2a64ad362dc9292fb89cdb2 | |
| parent | 20c7d98ee852533bf784f58dd22c688a8ed33c15 (diff) | |
Retrieve the swapchain images
| -rw-r--r-- | src/main.c | 15 | 
1 files changed, 15 insertions, 0 deletions
@@ -17,6 +17,8 @@    } while (0)  #endif +#define MAX_SWAPCHAIN_IMAGE_COUNT 32 +  struct vulkan_renderer {    VkInstance instance;    VkPhysicalDevice physical_device; @@ -26,6 +28,10 @@ struct vulkan_renderer {    VkSurfaceKHR surface;    VkQueue present_queue;    VkSwapchainKHR swapchain; +  VkImage swapchain_images[MAX_SWAPCHAIN_IMAGE_COUNT]; +  uint32_t swapchain_image_count; +  VkFormat swapchain_image_format; +  VkExtent2D swapchain_extent;    bool enable_validation_layers;  }; @@ -561,6 +567,15 @@ bool vulkan_renderer_create_swapchain(struct vulkan_renderer *renderer,      return false;    } +  uint32_t actual_image_count; +  vkGetSwapchainImagesKHR(renderer->device, renderer->swapchain, +                          &actual_image_count, NULL); +  assert(actual_image_count <= MAX_SWAPCHAIN_IMAGE_COUNT); +  renderer->swapchain_image_count = actual_image_count; +  vkGetSwapchainImagesKHR(renderer->device, renderer->swapchain, +                          &actual_image_count, renderer->swapchain_images); +  renderer->swapchain_image_format = surface_format.format; +  renderer->swapchain_extent = extent;    return true;  }  | 
