Files
Copium/CopiumEngine/src/copium/core/DebugMessenger.h
T
2026-01-28 23:04:31 +01:00

43 lines
1.5 KiB
C++

#pragma once
#include <vulkan/vulkan.hpp>
#include "copium/util/Common.h"
namespace Copium
{
class Instance;
class DebugMessenger final
{
CP_DELETE_COPY_AND_MOVE_CTOR(DebugMessenger);
private:
Instance& instance;
VkDebugUtilsMessengerEXT debugMessenger;
public:
DebugMessenger(Instance& instance);
~DebugMessenger();
static void AddRequiredExtensions(std::vector<const char*>* extensions);
static void AddRequiredLayers(std::vector<const char*>* layers);
private:
static VKAPI_ATTR VkBool32 VKAPI_CALL DebugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
void* pUserData);
static VkResult vkCreateDebugUtilsMessengerEXT(VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkDebugUtilsMessengerEXT* pDebugMessenger);
static void vkDestroyDebugUtilsMessengerEXT(VkInstance instance,
VkDebugUtilsMessengerEXT debugMessenger,
const VkAllocationCallbacks* pAllocator);
};
}