summaryrefslogtreecommitdiff
path: root/src/renderer/backends/vulkan_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/backends/vulkan_helpers.h')
-rw-r--r--src/renderer/backends/vulkan_helpers.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/renderer/backends/vulkan_helpers.h b/src/renderer/backends/vulkan_helpers.h
index 03ee814..55d8846 100644
--- a/src/renderer/backends/vulkan_helpers.h
+++ b/src/renderer/backends/vulkan_helpers.h
@@ -1,5 +1,6 @@
#pragma once
+#include <assert.h>
#include <vulkan/vulkan.h>
#include <vulkan/vulkan_core.h>
@@ -54,8 +55,8 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vk_debug_callback(
VkDebugUtilsMessageSeverityFlagBitsEXT severity, VkDebugUtilsMessageTypeFlagsEXT flags,
const VkDebugUtilsMessengerCallbackDataEXT* callback_data, void* user_data);
-void vulkan_device_query_swapchain_support(VkPhysicalDevice device, VkSurfaceKHR surface,
- vulkan_swapchain_support_info* out_support_info) {
+static void vulkan_device_query_swapchain_support(VkPhysicalDevice device, VkSurfaceKHR surface,
+ vulkan_swapchain_support_info* out_support_info) {
// TODO: add VK_CHECK to these calls!
// Surface capabilities
@@ -78,6 +79,20 @@ void vulkan_device_query_swapchain_support(VkPhysicalDevice device, VkSurfaceKHR
}
}
+static VkSurfaceFormatKHR choose_swapchain_format(
+ vulkan_swapchain_support_info* swapchain_support) {
+ assert(swapchain_support->format_count > 0);
+ // find a format
+ for (u32 i = 0; i < swapchain_support->format_count; i++) {
+ VkSurfaceFormatKHR format = swapchain_support->formats[i];
+ if (format.format == VK_FORMAT_B8G8R8A8_SRGB &&
+ format.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) {
+ return format;
+ }
+ }
+ return swapchain_support->formats[0];
+}
+
// static bool physical_device_meets_requirements(
// VkPhysicalDevice device, VkSurfaceKHR surface, const VkPhysicalDeviceProperties* properties,
// const VkPhysicalDeviceFeatures* features,