33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
|
// Wrappers for extension functions that must be located using vkGetInstanceProcAddr
|
||
|
VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
|
||
|
const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) {
|
||
|
auto func = (PFN_vkCreateDebugReportCallbackEXT) vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT");
|
||
|
if(func != nullptr) {
|
||
|
return func(instance, pCreateInfo, pAllocator, pCallback);
|
||
|
} else {
|
||
|
return VK_ERROR_EXTENSION_NOT_PRESENT;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void DestroyDebugReportCallbackEXT(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) {
|
||
|
auto func = (PFN_vkDestroyDebugReportCallbackEXT) vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT");
|
||
|
if(func != nullptr) {
|
||
|
func(instance, callback, pAllocator);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct QueueFamilyIndices {
|
||
|
int graphicsFamily = -1;
|
||
|
int presentFamily = -1;
|
||
|
|
||
|
bool isComplete() {
|
||
|
return graphicsFamily >= 0 && presentFamily >= 0;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
struct SwapChainSupportDetails {
|
||
|
VkSurfaceCapabilitiesKHR capabilities;
|
||
|
std::vector<VkSurfaceFormatKHR> formats;
|
||
|
std::vector<VkPresentModeKHR> presentModes;
|
||
|
};
|