partway through seeing what parts of the swapchain are supported

This commit is contained in:
Warwick New 2024-12-24 16:16:47 +00:00
parent d223af2df9
commit b2e5f00a4c

View file

@ -47,6 +47,14 @@ typedef struct Application {
VkQueue presentQueue;
} Application;
typedef struct SwapChainSupportDetails {
VkSurfaceCapabilitiesKHR capabilities;
uint32_t numFormats;
VkSurfaceFormatKHR *formats;
uint32_t numPresentModes;
VkPresentModeKHR *presentModes;
} SwapChainSupportDetails;
bool checkValidationLayerSupport() {
uint32_t layerCount;
vkEnumerateInstanceLayerProperties(&layerCount, NULL);
@ -296,6 +304,18 @@ bool checkDeviceExtensionSupport(VkPhysicalDevice device) {
return true;
}
SwapChainSupportDetails querySwapchainSupport(VkPhysicalDevice device,
VkSurfaceKHR *surface) {
SwapChainSupportDetails details = {0};
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device, *surface,
&details.capabilities);
vkGetPhysicalDeviceSurfaceFormatsKHR(device, *surface, &details.numFormats,
details.formats);
return details;
}
bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) {
QueueFamilyIndices indices = findQueueFamilies(device, surface);
bool completeIndeces =
@ -303,6 +323,9 @@ bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) {
bool extensionsSupported = checkDeviceExtensionSupport(device);
SwapChainSupportDetails swapChaindetails =
querySwapchainSupport(device, surface);
return completeIndeces && extensionsSupported;
}