Initial Gitea Commit
This commit is contained in:
58
VulkanDebugManager.h
Normal file
58
VulkanDebugManager.h
Normal 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();
|
||||
};
|
||||
Reference in New Issue
Block a user