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 "vulkan_handle.h"
10#include "vulkan_interface.h"
11#include "vulkan_proc_table.h"
12
13namespace vulkan {
14
15class 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