Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
impeller::KHRSwapchainImageVK Class Referencefinal

#include <khr_swapchain_image_vk.h>

Inheritance diagram for impeller::KHRSwapchainImageVK:
impeller::TextureSourceVK

Public Member Functions

 KHRSwapchainImageVK (TextureDescriptor desc, const vk::Device &device, vk::Image image)
 
 ~KHRSwapchainImageVK () override
 
bool IsValid () const
 
vk::Image GetImage () const override
 Get the image handle for this texture source. More...
 
vk::ImageView GetImageView () const override
 Retrieve the image view used for sampling/blitting/compute with this texture source. More...
 
vk::ImageView GetRenderTargetView () const override
 Retrieve the image view used for render target attachments with this texture source. More...
 
bool IsSwapchainImage () const override
 Determines if swapchain image. That is, an image used as the root render target. More...
 
- Public Member Functions inherited from impeller::TextureSourceVK
virtual ~TextureSourceVK ()
 
const TextureDescriptorGetTextureDescriptor () const
 Gets the texture descriptor for this image source. More...
 
virtual vk::Image GetImage () const =0
 Get the image handle for this texture source. More...
 
virtual vk::ImageView GetImageView () const =0
 Retrieve the image view used for sampling/blitting/compute with this texture source. More...
 
virtual vk::ImageView GetRenderTargetView () const =0
 Retrieve the image view used for render target attachments with this texture source. More...
 
fml::Status SetLayout (const BarrierVK &barrier) const
 Encodes the layout transition barrier to barrier.cmd_buffer for the image. More...
 
vk::ImageLayout SetLayoutWithoutEncoding (vk::ImageLayout layout) const
 Store the layout of the image. More...
 
vk::ImageLayout GetLayout () const
 Get the last layout assigned to the TextureSourceVK. More...
 
virtual std::shared_ptr< YUVConversionVKGetYUVConversion () const
 When sampling from textures whose formats are not known to Vulkan, a custom conversion is necessary to setup custom samplers. This accessor provides this conversion if one is present. Most texture source have none. More...
 
virtual bool IsSwapchainImage () const =0
 Determines if swapchain image. That is, an image used as the root render target. More...
 
void SetCachedFramebuffer (const SharedHandleVK< vk::Framebuffer > &framebuffer)
 
void SetCachedRenderPass (const SharedHandleVK< vk::RenderPass > &render_pass)
 
SharedHandleVK< vk::Framebuffer > GetCachedFramebuffer () const
 
SharedHandleVK< vk::RenderPass > GetCachedRenderPass () const
 

Additional Inherited Members

- Protected Member Functions inherited from impeller::TextureSourceVK
 TextureSourceVK (TextureDescriptor desc)
 
- Protected Attributes inherited from impeller::TextureSourceVK
const TextureDescriptor desc_
 

Detailed Description

Definition at line 15 of file khr_swapchain_image_vk.h.

Constructor & Destructor Documentation

◆ KHRSwapchainImageVK()

impeller::KHRSwapchainImageVK::KHRSwapchainImageVK ( TextureDescriptor  desc,
const vk::Device &  device,
vk::Image  image 
)

Definition at line 9 of file khr_swapchain_image_vk.cc.

12 : TextureSourceVK(desc), image_(image) {
13 vk::ImageViewCreateInfo view_info;
14 view_info.image = image_;
15 view_info.viewType = vk::ImageViewType::e2D;
16 view_info.format = ToVKImageFormat(desc.format);
17 view_info.subresourceRange.aspectMask = vk::ImageAspectFlagBits::eColor;
18 view_info.subresourceRange.baseMipLevel = 0u;
19 view_info.subresourceRange.baseArrayLayer = 0u;
20 view_info.subresourceRange.levelCount = desc.mip_count;
21 view_info.subresourceRange.layerCount = ToArrayLayerCount(desc.type);
22
23 auto [view_result, view] = device.createImageViewUnique(view_info);
24 if (view_result != vk::Result::eSuccess) {
25 return;
26 }
27
28 image_view_ = std::move(view);
29 is_valid_ = true;
30}
TextureSourceVK(TextureDescriptor desc)
VkDevice device
Definition: main.cc:53
sk_sp< const SkImage > image
Definition: SkRecords.h:269
constexpr uint32_t ToArrayLayerCount(TextureType type)
Definition: formats_vk.h:516
constexpr vk::Format ToVKImageFormat(PixelFormat format)
Definition: formats_vk.h:133

◆ ~KHRSwapchainImageVK()

impeller::KHRSwapchainImageVK::~KHRSwapchainImageVK ( )
overridedefault

Member Function Documentation

◆ GetImage()

vk::Image impeller::KHRSwapchainImageVK::GetImage ( ) const
overridevirtual

Get the image handle for this texture source.

Returns
The image.

Implements impeller::TextureSourceVK.

Definition at line 39 of file khr_swapchain_image_vk.cc.

39 {
40 return image_;
41}

◆ GetImageView()

vk::ImageView impeller::KHRSwapchainImageVK::GetImageView ( ) const
overridevirtual

Retrieve the image view used for sampling/blitting/compute with this texture source.

Returns
The image view.

Implements impeller::TextureSourceVK.

Definition at line 44 of file khr_swapchain_image_vk.cc.

44 {
45 return image_view_.get();
46}

◆ GetRenderTargetView()

vk::ImageView impeller::KHRSwapchainImageVK::GetRenderTargetView ( ) const
overridevirtual

Retrieve the image view used for render target attachments with this texture source.

ImageViews used as render target attachments cannot have any mip levels. In cases where we want to generate mipmaps with the result of this texture, we need to create multiple image views.

Returns
The render target view.

Implements impeller::TextureSourceVK.

Definition at line 49 of file khr_swapchain_image_vk.cc.

49 {
50 return image_view_.get();
51}

◆ IsSwapchainImage()

bool impeller::KHRSwapchainImageVK::IsSwapchainImage ( ) const
overridevirtual

Determines if swapchain image. That is, an image used as the root render target.

Returns
Whether or not this is a swapchain image.

Implements impeller::TextureSourceVK.

Definition at line 54 of file khr_swapchain_image_vk.cc.

54 {
55 return true;
56}

◆ IsValid()

bool impeller::KHRSwapchainImageVK::IsValid ( ) const

Definition at line 34 of file khr_swapchain_image_vk.cc.

34 {
35 return is_valid_;
36}

The documentation for this class was generated from the following files: