3#include <vulkan/vulkan.hpp>
35 const
std::vector<const
char*>& required_extensions = {});
70 vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity,
71 vk::DebugUtilsMessageTypeFlagsEXT message_types,
72 const vk::DebugUtilsMessengerCallbackDataEXT* p_callback_data,
void cleanup()
Cleanup Vulkan instance.
bool m_validation_enabled
Flag to indicate if validation layers are enabled.
VKInstance(const VKInstance &)=delete
vk::detail::DispatchLoaderDynamic m_dynamic_dispatcher
Dynamic dispatcher for extension functions.
bool check_validation_layer_support(const std::vector< const char * > &layers)
Check if requested validation layers are available.
VKInstance & operator=(const VKInstance &)=delete
vk::Instance m_instance
Vulkan instance handle.
bool setup_debug_messenger()
Setup debug messenger for validation layer output.
vk::Instance get_instance() const
Get the Vulkan instance handle.
vk::DebugUtilsMessengerEXT m_debug_messenger
Debug messenger for validation layers.
static vk::Bool32 debug_callback(vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity, vk::DebugUtilsMessageTypeFlagsEXT message_types, const vk::DebugUtilsMessengerCallbackDataEXT *p_callback_data, void *p_user_data)
Validation layer callback.
~VKInstance()
Destructor to clean up Vulkan instance and debug messenger.
Manages Vulkan instance creation and validation layers.