| Flutter Impeller |

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

`#include <compute_pipeline_vk.h>`

Inheritance diagram for impeller::ComputePipelineVK:

## Public Member Functions
| ComputePipelineVK (std::weak_ptr< DeviceHolder > device_holder, std::weak_ptr< PipelineLibrary > library, const ComputePipelineDescriptor &desc, vk::UniquePipeline pipeline, vk::UniquePipelineLayout layout, vk::UniqueDescriptorSetLayout descriptor_set_layout)
| ~ComputePipelineVK () override
const vk::Pipeline & | GetPipeline () const
const vk::PipelineLayout & | GetPipelineLayout () const
const vk::DescriptorSetLayout & | GetDescriptorSetLayout () const
Public Member Functions inherited from impeller::Pipeline< ComputePipelineDescriptor >
virtual | ~Pipeline ()
virtual bool | IsValid () const=0
const ComputePipelineDescriptor & | 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< ComputePipelineDescriptor > | CreateVariant (std::function< void(ComputePipelineDescriptor &desc)> descriptor_callback) const

## Friends
class | PipelineLibraryVK

## Additional Inherited Members
Static Public Member Functions inherited from impeller::BackendCast< ComputePipelineVK, Pipeline< ComputePipelineDescriptor > >
static ComputePipelineVK & | Cast (Pipeline< ComputePipelineDescriptor > &base)
static const ComputePipelineVK & | Cast (const Pipeline< ComputePipelineDescriptor > &base)
static ComputePipelineVK * | Cast (Pipeline< ComputePipelineDescriptor > *base)
static const ComputePipelineVK * | Cast (const Pipeline< ComputePipelineDescriptor > *base)
Protected Member Functions inherited from impeller::Pipeline< ComputePipelineDescriptor >
| Pipeline (std::weak_ptr< PipelineLibrary > library, ComputePipelineDescriptor desc)

## Detailed Description

Definition at line 17 of file compute_pipeline_vk.h.

## Constructor & Destructor Documentation

## ◆ ComputePipelineVK()

impeller::ComputePipelineVK::ComputePipelineVK | ( | std::weak_ptr< DeviceHolder > | device_holder,
|  | std::weak_ptr< PipelineLibrary > | library,
|  | const ComputePipelineDescriptor & | desc,
|  | vk::UniquePipeline | pipeline,
|  | vk::UniquePipelineLayout | layout,
|  | vk::UniqueDescriptorSetLayout | descriptor_set_layout
| ) |  |

Definition at line 9 of file compute_pipeline_vk.cc.

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

## ◆ ~ComputePipelineVK()

impeller::ComputePipelineVK::~ComputePipelineVK | ( |  | ) |
| override

Definition at line 24 of file compute_pipeline_vk.cc.

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

## Member Function Documentation

## ◆ GetDescriptorSetLayout()

const vk::DescriptorSetLayout & impeller::ComputePipelineVK::GetDescriptorSetLayout | ( |  | ) | const

Definition at line 49 of file compute_pipeline_vk.cc.

50 {
51 return *descriptor_set_layout_;
52 }

Referenced by impeller::AllocateAndBindDescriptorSets().

## ◆ GetPipeline()

const vk::Pipeline & impeller::ComputePipelineVK::GetPipeline | ( |  | ) | const

Definition at line 41 of file compute_pipeline_vk.cc.

41 {
42 return *pipeline_;
43 }

## ◆ GetPipelineLayout()

const vk::PipelineLayout & impeller::ComputePipelineVK::GetPipelineLayout | ( |  | ) | const

Definition at line 45 of file compute_pipeline_vk.cc.

45 {
46 return *layout_;
47 }

Referenced by impeller::AllocateAndBindDescriptorSets().

## Friends And Related Function Documentation

## ◆ PipelineLibraryVK

friend class PipelineLibraryVK
| friend

Definition at line 39 of file compute_pipeline_vk.h.

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

- impeller/renderer/backend/vulkan/compute_pipeline_vk.h
- impeller/renderer/backend/vulkan/compute_pipeline_vk.cc

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