Abstract base class that represents a vkImage and an vkImageView.
TextureSourceVK(TextureDescriptor desc)
virtual vk::ImageView GetImageView() const =0
Retrieve the image view used for sampling/blitting/compute with this texture source.
const TextureDescriptor desc_
vk::ImageLayout SetLayoutWithoutEncoding(vk::ImageLayout layout) const
Store the layout of the image.
SharedHandleVK< vk::RenderPass > GetCachedRenderPass() const
virtual ~TextureSourceVK()
virtual vk::ImageView GetRenderTargetView() const =0
Retrieve the image view used for render target attachments with this texture source.
vk::ImageLayout GetLayout() const
Get the last layout assigned to the TextureSourceVK.
virtual vk::Image GetImage() const =0
Get the image handle for this texture source.
fml::Status SetLayout(const BarrierVK &barrier) const
Encodes the layout transition barrier to barrier.cmd_buffer for the image.
virtual bool IsSwapchainImage() const =0
Determines if swapchain image. That is, an image used as the root render target.
SharedHandleVK< vk::Framebuffer > GetCachedFramebuffer() const
void SetCachedRenderPass(const SharedHandleVK< vk::RenderPass > &render_pass)
A lightweight object that describes the attributes of a texture that can then used an allocator to cr...
virtual std::shared_ptr< YUVConversionVK > GetYUVConversion() const
When sampling from textures whose formats are not known to Vulkan, a custom conversion is necessary t...
const TextureDescriptor & GetTextureDescriptor() const
Gets the texture descriptor for this image source.
void SetCachedFramebuffer(const SharedHandleVK< vk::Framebuffer > &framebuffer)