5#ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_TEXTURE_SOURCE_VK_H_
6#define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_TEXTURE_SOURCE_VK_H_
8#include "flutter/fml/status.h"
16#include "vulkan/vulkan_handles.hpp"
162 mutable RWMutex layout_mutex_;
163 mutable vk::ImageLayout
layout_ IPLR_GUARDED_BY(layout_mutex_) =
164 vk::ImageLayout::eUndefined;
Abstract base class that represents a vkImage and an vkImageView.
TextureSourceVK(TextureDescriptor desc)
void SetCachedRenderPass(const SharedHandleVK< vk::RenderPass > &render_pass)
virtual std::shared_ptr< YUVConversionVK > GetYUVConversion() const
When sampling from textures whose formats are not known to Vulkan, a custom conversion is necessary t...
virtual vk::ImageView GetRenderTargetView() const =0
Retrieve the image view used for render target attachments with this texture source.
virtual bool IsSwapchainImage() const =0
Determines if swapchain image. That is, an image used as the root render target.
const TextureDescriptor & GetTextureDescriptor() const
Gets the texture descriptor for this image source.
SharedHandleVK< vk::Framebuffer > GetCachedFramebuffer() const
virtual vk::ImageView GetImageView() const =0
Retrieve the image view used for sampling/blitting/compute with this texture source.
virtual vk::Image GetImage() const =0
Get the image handle for this texture source.
void SetCachedFramebuffer(const SharedHandleVK< vk::Framebuffer > &framebuffer)
virtual ~TextureSourceVK()
SharedHandleVK< vk::RenderPass > GetCachedRenderPass() const
vk::ImageLayout GetLayout() const
Get the last layout assigned to the TextureSourceVK.
vk::ImageLayout SetLayoutWithoutEncoding(vk::ImageLayout layout) const
Store the layout of the image.
const TextureDescriptor desc_
fml::Status SetLayout(const BarrierVK &barrier) const
Encodes the layout transition barrier to barrier.cmd_buffer for the image.
std::shared_ptr< SharedObjectVKT< T > > SharedHandleVK
Defines an operations and memory access barrier on a resource.
A lightweight object that describes the attributes of a texture that can then used an allocator to cr...