3#include <vulkan/vulkan.h>
8 class EngineDebugLogger
14 static void linkToDevice(VkDeviceCreateInfo& createInfo);
15 static void linkToInstance(VkInstanceCreateInfo& createInfo, VkDebugUtilsMessengerCreateInfoEXT& debugCreateInfo);
16 static std::vector<const char*> getRequiredExtensions();
17 static void checkValidationLayerSupport();
20 VkDebugUtilsMessengerEXT m_debugMessenger;
25 static void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo);
26 static VkBool32 debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
27 VkDebugUtilsMessageTypeFlagsEXT messageType,
28 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
32 inline void destroyDebugUtilsMessengerEXT(VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger,
const VkAllocationCallbacks* pAllocator)
34 auto func = (PFN_vkDestroyDebugUtilsMessengerEXT) vkGetInstanceProcAddr(instance,
"vkDestroyDebugUtilsMessengerEXT");
38 func(instance, debugMessenger, pAllocator);
42 inline VkResult createDebugUtilsMessengerEXT(VkInstance instance,
const
43 VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
const
44 VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT*
47 auto func = (PFN_vkCreateDebugUtilsMessengerEXT) vkGetInstanceProcAddr(instance,
"vkCreateDebugUtilsMessengerEXT");
51 return func(instance, pCreateInfo, pAllocator, pDebugMessenger);
54 return VK_ERROR_EXTENSION_NOT_PRESENT;
Definition EngineInstance.h:14