// Copyright (C) 2023 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Vulkan renderer" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_VULKANRENDERER_WRAPPER_DEBUGREPORTCALLBACKEXT_HPP #define NAZARA_VULKANRENDERER_WRAPPER_DEBUGREPORTCALLBACKEXT_HPP #include #include namespace Nz::Vk { class DebugReportCallbackEXT : public InstanceObject { friend InstanceObject; public: DebugReportCallbackEXT() = default; DebugReportCallbackEXT(const DebugReportCallbackEXT&) = delete; DebugReportCallbackEXT(DebugReportCallbackEXT&&) = default; ~DebugReportCallbackEXT() = default; DebugReportCallbackEXT& operator=(const DebugReportCallbackEXT&) = delete; DebugReportCallbackEXT& operator=(DebugReportCallbackEXT&&) = delete; static inline bool IsSupported(Instance& instance); private: static inline VkResult CreateHelper(Instance& instance, const VkDebugReportCallbackCreateInfoEXT* createInfo, const VkAllocationCallbacks* allocator, VkDebugReportCallbackEXT* handle); static inline void DestroyHelper(Instance& instance, VkDebugReportCallbackEXT handle, const VkAllocationCallbacks* allocator); }; } #include #endif // NAZARA_VULKANRENDERER_WRAPPER_DEBUGREPORTCALLBACKEXT_HPP