11#include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp"
27 std::make_shared<android::SurfaceControl>(
window,
"ImpellerSurface")),
28 enable_msaa_(enable_msaa),
37 return impl_ ? impl_->IsValid() :
false;
47 return impl_->AcquireNextDrawable();
54 : vk::Format::eUndefined;
59 std::shared_ptr<CommandBuffer> cmd_buffer)
const {
60 return impl_->AddFinalCommandBuffer(cmd_buffer);
65 if (impl_ && impl_->GetSize() == size) {
75 if (!impl || !impl->IsValid()) {
79 impl_ = std::move(impl);
static std::shared_ptr< AHBSwapchainImplVK > Create(const std::weak_ptr< Context > &context, std::weak_ptr< android::SurfaceControl > surface_control, const CreateTransactionCB &cb, const ISize &size, bool enable_msaa)
Create a swapchain of a specific size whose images will be presented to the provided surface control.
static bool IsAvailableOnPlatform()
void UpdateSurfaceSize(const ISize &size) override
Mark the current swapchain configuration as dirty, forcing it to be recreated on the next frame.
bool IsValid() const override
void AddFinalCommandBuffer(std::shared_ptr< CommandBuffer > cmd_buffer) const override
vk::Format GetSurfaceFormat() const override
~AHBSwapchainVK() override
std::unique_ptr< Surface > AcquireNextDrawable() override
AHBSwapchainVK(const AHBSwapchainVK &)=delete
static bool IsAvailableOnPlatform()
static bool IsAvailableOnPlatform()
std::function< android::SurfaceTransaction()> CreateTransactionCB
constexpr PixelFormat ToPixelFormat(vk::Format format)
constexpr vk::Format ToVKImageFormat(PixelFormat format)
#define TRACE_EVENT0(category_group, name)
struct ANativeWindow ANativeWindow