5#ifndef FLUTTER_VULKAN_VULKAN_APPLICATION_H_
6#define FLUTTER_VULKAN_VULKAN_APPLICATION_H_
12#include "flutter/fml/macros.h"
13#include "flutter/vulkan/procs/vulkan_handle.h"
28 const std::string& application_name,
29 std::vector<std::string> enabled_extensions,
32 bool enable_validation_layers =
false);
49 uint32_t api_version_;
50 std::unique_ptr<VulkanDebugReport> debug_report_;
52 bool enable_validation_layers_;
54 std::vector<VkPhysicalDevice> GetPhysicalDevices()
const;
55 std::vector<VkExtensionProperties> GetSupportedInstanceExtensions(
57 bool ExtensionSupported(
58 const std::vector<VkExtensionProperties>& supported_extensions,
59 const std::string& extension_name);
const VulkanHandle< VkInstance > & GetInstance() const
std::unique_ptr< VulkanDevice > AcquireFirstCompatibleLogicalDevice() const
uint32_t GetAPIVersion() const
void ReleaseInstanceOwnership()
VulkanApplication(VulkanProcTable &vk, const std::string &application_name, std::vector< std::string > enabled_extensions, uint32_t application_version=VK_MAKE_VERSION(1, 0, 0), uint32_t api_version=VK_MAKE_VERSION(1, 0, 0), bool enable_validation_layers=false)
static const size_t kGrCacheMaxByteSize
#define VK_MAKE_VERSION(major, minor, patch)