5#ifndef FLUTTER_VULKAN_VULKAN_WINDOW_H_
6#define FLUTTER_VULKAN_VULKAN_WINDOW_H_
13#include "flutter/fml/compiler_specific.h"
14#include "flutter/fml/macros.h"
15#include "flutter/vulkan/procs/vulkan_proc_table.h"
24class VulkanNativeSurface;
29class VulkanApplication;
30class VulkanBackbuffer;
39 std::unique_ptr<VulkanNativeSurface> native_surface);
47 std::unique_ptr<VulkanNativeSurface> native_surface);
62 std::unique_ptr<VulkanApplication> application_;
63 std::unique_ptr<VulkanDevice> logical_device_;
64 std::unique_ptr<VulkanSurface> surface_;
65 std::unique_ptr<VulkanSwapchain> swapchain_;
69 bool CreateSkiaGrContext();
75 [[nodiscard]]
bool RecreateSwapchain();
VulkanWindow(const sk_sp< GrDirectContext > &context, fml::RefPtr< VulkanProcTable > proc_table, std::unique_ptr< VulkanNativeSurface > native_surface)
Construct a VulkanWindow. Let reuse an existing GrDirectContext built by another VulkanWindow.
sk_sp< SkSurface > AcquireSurface()
GrDirectContext * GetSkiaGrContext()
VulkanWindow(fml::RefPtr< VulkanProcTable > proc_table, std::unique_ptr< VulkanNativeSurface > native_surface)
Construct a VulkanWindow. Let it implicitly create a GrDirectContext.