/* * Vulkan examples debug wrapper * * Copyright (C) 2016-2023 by Sascha Willems - www.saschawillems.de * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ #pragma once #include "vulkan/vulkan.h" #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #endif #ifdef __ANDROID__ #include "VulkanAndroid.h" #endif #define GLM_FORCE_RADIANS #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include namespace vks { namespace debug { // Default debug callback VKAPI_ATTR VkBool32 VKAPI_CALL debugUtilsMessageCallback( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData); // Load debug function pointers and set debug callback void setupDebugging(VkInstance instance); // Clear debug callback void freeDebugCallback(VkInstance instance); // Used to populate a VkDebugUtilsMessengerCreateInfoEXT with our example messenger function and desired flags void setupDebugingMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& debugUtilsMessengerCI); } // Wrapper for the VK_EXT_debug_utils extension // These can be used to name Vulkan objects for debugging tools like RenderDoc namespace debugutils { void setup(VkInstance instance); void cmdBeginLabel(VkCommandBuffer cmdbuffer, std::string caption, glm::vec4 color); void cmdEndLabel(VkCommandBuffer cmdbuffer); } }