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 #ifndef RS_ENABLE_VK 9 #include "flutter/fml/macros.h" 10 #endif 11 #include "flutter/vulkan/vulkan_handle.h" 12 #include "flutter/vulkan/vulkan_interface.h" 13 #include "flutter/vulkan/vulkan_proc_table.h" 14 15 namespace vulkan { 16 17 class VulkanDebugReport { 18 public: 19 static std::string DebugExtensionName(); 20 21 VulkanDebugReport(const VulkanProcTable& vk, 22 const VulkanHandle<VkInstance>& application); 23 24 ~VulkanDebugReport(); 25 26 bool IsValid() const; 27 28 private: 29 const VulkanProcTable& vk; 30 const VulkanHandle<VkInstance>& application_; 31 VulkanHandle<VkDebugReportCallbackEXT> handle_; 32 bool valid_; 33 34 #ifndef RS_ENABLE_VK 35 FML_DISALLOW_COPY_AND_ASSIGN(VulkanDebugReport); 36 #endif 37 }; 38 39 } // namespace vulkan 40 41 #endif // FLUTTER_VULKAN_VULKAN_DEBUG_REPORT_H_ 42