1 // Copyright 2013 The Flutter Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef FLUTTER_VULKAN_VULKAN_DEBUG_REPORT_H_ 6 #define FLUTTER_VULKAN_VULKAN_DEBUG_REPORT_H_ 7 8 #include "flutter/fml/macros.h" 9 #include "flutter/vulkan/vulkan_handle.h" 10 #include "flutter/vulkan/vulkan_interface.h" 11 #include "flutter/vulkan/vulkan_proc_table.h" 12 13 namespace vulkan { 14 15 class VulkanDebugReport { 16 public: 17 static std::string DebugExtensionName(); 18 19 VulkanDebugReport(const VulkanProcTable& vk, 20 const VulkanHandle<VkInstance>& application); 21 22 ~VulkanDebugReport(); 23 24 bool IsValid() const; 25 26 private: 27 const VulkanProcTable& vk; 28 const VulkanHandle<VkInstance>& application_; 29 VulkanHandle<VkDebugReportCallbackEXT> handle_; 30 bool valid_; 31 32 FML_DISALLOW_COPY_AND_ASSIGN(VulkanDebugReport); 33 }; 34 35 } // namespace vulkan 36 37 #endif // FLUTTER_VULKAN_VULKAN_DEBUG_REPORT_H_ 38