Flutter Impeller
impeller::PipelineVK Class Referencefinal

#include <pipeline_vk.h>

Inheritance diagram for impeller::PipelineVK:
impeller::Pipeline< PipelineDescriptor > impeller::BackendCast< PipelineVK, Pipeline< PipelineDescriptor > >

Public Member Functions

 PipelineVK (std::weak_ptr< DeviceHolder > device_holder, std::weak_ptr< PipelineLibrary > library, const PipelineDescriptor &desc, vk::UniquePipeline pipeline, vk::UniqueRenderPass render_pass, vk::UniquePipelineLayout layout, vk::UniqueDescriptorSetLayout descriptor_set_layout)
 
 ~PipelineVK () override
 
const vk::Pipeline & GetPipeline () const
 
const vk::RenderPass & GetRenderPass () const
 
const vk::PipelineLayout & GetPipelineLayout () const
 
const vk::DescriptorSetLayout & GetDescriptorSetLayout () const
 
- Public Member Functions inherited from impeller::Pipeline< PipelineDescriptor >
virtual ~Pipeline ()
 
virtual bool IsValid () const=0
 
const PipelineDescriptorGetDescriptor () const
 Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to create a pipeline variant. More...
 
PipelineFuture< PipelineDescriptorCreateVariant (std::function< void(PipelineDescriptor &desc)> descriptor_callback) const
 

Friends

class PipelineLibraryVK
 

Additional Inherited Members

- Static Public Member Functions inherited from impeller::BackendCast< PipelineVK, Pipeline< PipelineDescriptor > >
static PipelineVKCast (Pipeline< PipelineDescriptor > &base)
 
static const PipelineVKCast (const Pipeline< PipelineDescriptor > &base)
 
static PipelineVKCast (Pipeline< PipelineDescriptor > *base)
 
static const PipelineVKCast (const Pipeline< PipelineDescriptor > *base)
 
- Protected Member Functions inherited from impeller::Pipeline< PipelineDescriptor >
 Pipeline (std::weak_ptr< PipelineLibrary > library, PipelineDescriptor desc)
 

Detailed Description

Definition at line 17 of file pipeline_vk.h.

Constructor & Destructor Documentation

◆ PipelineVK()

impeller::PipelineVK::PipelineVK ( std::weak_ptr< DeviceHolder device_holder,
std::weak_ptr< PipelineLibrary library,
const PipelineDescriptor desc,
vk::UniquePipeline  pipeline,
vk::UniqueRenderPass  render_pass,
vk::UniquePipelineLayout  layout,
vk::UniqueDescriptorSetLayout  descriptor_set_layout 
)

Definition at line 9 of file pipeline_vk.cc.

16  : Pipeline(std::move(library), desc),
17  device_holder_(std::move(device_holder)),
18  pipeline_(std::move(pipeline)),
19  render_pass_(std::move(render_pass)),
20  layout_(std::move(layout)),
21  descriptor_set_layout_(std::move(descriptor_set_layout)) {
22  is_valid_ = pipeline_ && render_pass_ && layout_ && descriptor_set_layout_;
23 }

◆ ~PipelineVK()

impeller::PipelineVK::~PipelineVK ( )
override

Definition at line 25 of file pipeline_vk.cc.

25  {
26  std::shared_ptr<DeviceHolder> device_holder = device_holder_.lock();
27  if (device_holder) {
28  descriptor_set_layout_.reset();
29  layout_.reset();
30  render_pass_.reset();
31  pipeline_.reset();
32  } else {
33  descriptor_set_layout_.release();
34  layout_.release();
35  render_pass_.release();
36  pipeline_.release();
37  }
38 }

Member Function Documentation

◆ GetDescriptorSetLayout()

const vk::DescriptorSetLayout & impeller::PipelineVK::GetDescriptorSetLayout ( ) const

Definition at line 56 of file pipeline_vk.cc.

56  {
57  return *descriptor_set_layout_;
58 }

Referenced by impeller::AllocateAndBindDescriptorSets().

◆ GetPipeline()

const vk::Pipeline & impeller::PipelineVK::GetPipeline ( ) const

Definition at line 44 of file pipeline_vk.cc.

44  {
45  return *pipeline_;
46 }

◆ GetPipelineLayout()

const vk::PipelineLayout & impeller::PipelineVK::GetPipelineLayout ( ) const

Definition at line 52 of file pipeline_vk.cc.

52  {
53  return *layout_;
54 }

Referenced by impeller::AllocateAndBindDescriptorSets().

◆ GetRenderPass()

const vk::RenderPass & impeller::PipelineVK::GetRenderPass ( ) const

Definition at line 48 of file pipeline_vk.cc.

48  {
49  return *render_pass_;
50 }

Friends And Related Function Documentation

◆ PipelineLibraryVK

friend class PipelineLibraryVK
friend

Definition at line 41 of file pipeline_vk.h.


The documentation for this class was generated from the following files:
impeller::Pipeline< PipelineDescriptor >::Pipeline
Pipeline(std::weak_ptr< PipelineLibrary > library, PipelineDescriptor desc)
Definition: pipeline.cc:18