First commit from Arch

This commit is contained in:
2026-01-28 19:22:50 -05:00
parent 15b3e294b5
commit ab28c22446
18 changed files with 54 additions and 11 deletions

58
src/VulkanDebugManager.h Normal file
View File

@@ -0,0 +1,58 @@
#pragma once
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
struct FCreateDebugUtilsMessengerExtParams
{
VkInstance Instance;
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo;
const VkAllocationCallbacks* pAllocator;
VkDebugUtilsMessengerEXT* pDebugMessenger;
};
struct FDestroyDebugUtilsMessengerExtParams
{
VkInstance Instance;
VkDebugUtilsMessengerEXT DebugMessenger;
const VkAllocationCallbacks* pAllocator;
};
class VulkanDebugManager
{
public:
VulkanDebugManager();
~VulkanDebugManager();
VulkanDebugManager(const VulkanDebugManager&) = delete;
VulkanDebugManager& operator=(const VulkanDebugManager&) = delete;
VulkanDebugManager(VulkanDebugManager&& Other) noexcept;
VulkanDebugManager& operator=(VulkanDebugManager&& Other) noexcept;
void Initialize(VkInstance Instance);
void Cleanup();
bool IsInitialized() const { return DebugMessenger != VK_NULL_HANDLE; }
void PopulateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo);
private:
bool bVerboseLogging = false;
VkInstance Instance = VK_NULL_HANDLE;
VkDebugUtilsMessengerEXT DebugMessenger = VK_NULL_HANDLE;
VkResult CreateDebugUtilsMessengerExt(const FCreateDebugUtilsMessengerExtParams& Params);
void DestroyDebugUtilsMessengerExt(const FDestroyDebugUtilsMessengerExtParams& Params);
static VKAPI_ATTR VkBool32 VKAPI_CALL DebugCallback(
VkDebugUtilsMessageSeverityFlagBitsEXT MessageSeverity,
VkDebugUtilsMessageTypeFlagsEXT MessageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
void* pUserData);
void SetupDebugMessanger();
};