7 #include "flutter/fml/trace_event.h"
21 return parent_->GetBackendType();
25 return parent_->DescribeGpuModel();
29 return parent_->IsValid();
33 return parent_->GetResourceAllocator();
37 return parent_->GetShaderLibrary();
41 return parent_->GetSamplerLibrary();
45 return parent_->GetPipelineLibrary();
49 return parent_->CreateCommandBuffer();
53 return parent_->GetCommandQueue();
58 return parent_->GetCapabilities();
72 if (!swapchain->IsValid()) {
76 swapchain_ = std::move(swapchain);
81 TRACE_EVENT0(
"impeller", __FUNCTION__);
82 auto surface = swapchain_ ? swapchain_->AcquireNextDrawable() :
nullptr;
86 if (
auto pipeline_library = parent_->GetPipelineLibrary()) {
90 parent_->GetCommandPoolRecycler()->Dispose();
91 parent_->GetResourceAllocator()->DebugTraceMemoryStatistics();
96 swapchain_->UpdateSurfaceSize(size);
101 vk::UniqueSurfaceKHR SurfaceContextVK::CreateAndroidSurface(
102 ANativeWindow* window)
const {
103 if (!parent_->GetInstance()) {
104 return vk::UniqueSurfaceKHR{VK_NULL_HANDLE};
107 auto create_info = vk::AndroidSurfaceCreateInfoKHR().setWindow(window);
109 parent_->GetInstance().createAndroidSurfaceKHRUnique(create_info);
111 if (surface_res.result != vk::Result::eSuccess) {
113 << vk::to_string(surface_res.result);
114 return vk::UniqueSurfaceKHR{VK_NULL_HANDLE};
117 return std::move(surface_res.value);
120 #endif // FML_OS_ANDROID
123 return parent_->GetDevice();
127 parent_->InitializeCommonlyUsedShadersIfNeeded();