| Flutter Impeller |

Public Member Functions | Friends | List of all members
impeller::PipelineVK Class Referencefinal

`#include <pipeline_vk.h>`

Inheritance diagram for impeller::PipelineVK:

## 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 PipelineDescriptor & | GetDescriptor () const
| Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to create a pipeline variant. More...
PipelineFuture< PipelineDescriptor > | CreateVariant (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 PipelineVK & | Cast (Pipeline< PipelineDescriptor > &base)
static const PipelineVK & | Cast (const Pipeline< PipelineDescriptor > &base)
static PipelineVK * | Cast (Pipeline< PipelineDescriptor > *base)
static const PipelineVK * | Cast (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/renderer/backend/vulkan/pipeline_vk.h
- impeller/renderer/backend/vulkan/pipeline_vk.cc

impeller::Pipeline< PipelineDescriptor >::Pipeline
Pipeline(std::weak_ptr< PipelineLibrary > library, PipelineDescriptor desc)
Definition: pipeline.cc:18