Flutter Engine
 
Loading...
Searching...
No Matches
vulkan::VulkanDebugReport Class Reference

#include <vulkan_debug_report.h>

Public Member Functions

 VulkanDebugReport (const VulkanProcTable &vk, const VulkanHandle< VkInstance > &application)
 
 ~VulkanDebugReport ()
 
bool IsValid () const
 

Static Public Member Functions

static std::string DebugExtensionName ()
 

Detailed Description

Definition at line 15 of file vulkan_debug_report.h.

Constructor & Destructor Documentation

◆ VulkanDebugReport()

vulkan::VulkanDebugReport::VulkanDebugReport ( const VulkanProcTable vk,
const VulkanHandle< VkInstance > &  application 
)

Definition at line 186 of file vulkan_debug_report.cc.

189 : vk_(p_vk), application_(application), valid_(false) {
190 if (!vk_.CreateDebugReportCallbackEXT || !vk_.DestroyDebugReportCallbackEXT) {
191 return;
192 }
193
194 if (!application_) {
195 return;
196 }
197
198 VkDebugReportFlagsEXT flags = kVulkanErrorFlags;
200 flags |= kVulkanInfoFlags;
201 }
202 const VkDebugReportCallbackCreateInfoEXT create_info = {
203 .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
204 .pNext = nullptr,
205 .flags = flags,
207 .pUserData = nullptr,
208 };
209
210 VkDebugReportCallbackEXT handle = VK_NULL_HANDLE;
211 if (VK_CALL_LOG_ERROR(vk_.CreateDebugReportCallbackEXT(
212 application_, &create_info, nullptr, &handle)) != VK_SUCCESS) {
213 return;
214 }
215
216 handle_ = VulkanHandle<VkDebugReportCallbackEXT>{
217 handle, [this](VkDebugReportCallbackEXT handle) {
218 vk_.DestroyDebugReportCallbackEXT(application_, handle, nullptr);
219 }};
220
221 valid_ = true;
222}
static VKAPI_ATTR VkBool32 OnVulkanDebugReportCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT object_type, uint64_t object, size_t location, int32_t message_code, const char *layer_prefix, const char *message, void *user_data)
static const VkDebugReportFlagsEXT kVulkanErrorFlags
static const VkDebugReportFlagsEXT kVulkanInfoFlags
bool ValidationLayerInfoMessagesEnabled()
#define VK_CALL_LOG_ERROR(expression)

References vulkan::kVulkanErrorFlags, vulkan::kVulkanInfoFlags, vulkan::OnVulkanDebugReportCallback(), vulkan::ValidationLayerInfoMessagesEnabled(), and VK_CALL_LOG_ERROR.

◆ ~VulkanDebugReport()

vulkan::VulkanDebugReport::~VulkanDebugReport ( )
default

Member Function Documentation

◆ DebugExtensionName()

std::string vulkan::VulkanDebugReport::DebugExtensionName ( )
static

Definition at line 24 of file vulkan_debug_report.cc.

24 {
25 return VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
26}

Referenced by vulkan::VulkanApplication::VulkanApplication().

◆ IsValid()

bool vulkan::VulkanDebugReport::IsValid ( ) const

Definition at line 226 of file vulkan_debug_report.cc.

226 {
227 return valid_;
228}

The documentation for this class was generated from the following files: