| Flutter Impeller |

Public Member Functions | Protected Member Functions | List of all members
impeller::PipelineLibrary Class Referenceabstract

`#include <pipeline_library.h>`

Inheritance diagram for impeller::PipelineLibrary:

## Public Member Functions
virtual | ~PipelineLibrary ()
PipelineFuture< PipelineDescriptor > | GetPipeline (std::optional< PipelineDescriptor > descriptor, bool async=true)
PipelineFuture< ComputePipelineDescriptor > | GetPipeline (std::optional< ComputePipelineDescriptor > descriptor, bool async=true)
virtual bool | IsValid () const =0
virtual PipelineFuture< PipelineDescriptor > | GetPipeline (PipelineDescriptor descriptor, bool async=true, bool threadsafe=false)=0
| Creates a pipeline. More...
virtual PipelineFuture< ComputePipelineDescriptor > | GetPipeline (ComputePipelineDescriptor descriptor, bool async=true)=0
virtual bool | HasPipeline (const PipelineDescriptor &descriptor)=0
virtual void | RemovePipelinesWithEntryPoint (std::shared_ptr< const ShaderFunction > function)=0

## Protected Member Functions
| PipelineLibrary ()

## Detailed Description

Definition at line 30 of file pipeline_library.h.

## Constructor & Destructor Documentation

## ◆ ~PipelineLibrary()

impeller::PipelineLibrary::~PipelineLibrary | ( |  | ) |
| virtualdefault

## ◆ PipelineLibrary()

impeller::PipelineLibrary::PipelineLibrary | ( |  | ) |
| protecteddefault

## Member Function Documentation

## ◆ GetPipeline() [1/4]

virtual PipelineFuture<ComputePipelineDescriptor> impeller::PipelineLibrary::GetPipeline | ( | ComputePipelineDescriptor | descriptor,
|  | bool | async = `true`
| ) |  |
| pure virtual

## ◆ GetPipeline() [2/4]

virtual PipelineFuture<PipelineDescriptor> impeller::PipelineLibrary::GetPipeline | ( | PipelineDescriptor | descriptor,
|  | bool | async = `true`,
|  | bool | threadsafe = `false`
| ) |  |
| pure virtual

Creates a pipeline.

Parameters

  [in] | descriptor | The descriptor of the texture to create.
  [in] | async | Whether to allow pipeline creation to be deferred. If `false`, pipeline creation will block on the current thread.
  [in] | threadsafe | Whether mutations to this texture should be protected with a threadsafe barrier.

This parameter only affects the OpenGLES rendering backend.

If any interaction with this texture (including creation) will be done on a thread other than where the OpenGLES context resides, then `threadsafe`, must be set to `true`.

## ◆ GetPipeline() [3/4]

PipelineFuture< ComputePipelineDescriptor > impeller::PipelineLibrary::GetPipeline | ( | std::optional< ComputePipelineDescriptor > | descriptor,
|  | bool | async = `true`
| ) |  |

Definition at line 25 of file pipeline_library.cc.

27 {
28 if (descriptor.has_value()) {
29 return GetPipeline(descriptor.value(), async);
30 }
31 auto promise = std::make_shared<
32 std::promise<std::shared_ptr<Pipeline<ComputePipelineDescriptor>>>>();
33 promise->set_value(nullptr);
34 return {descriptor, promise->get_future()};
35 }
impeller::PipelineLibrary::GetPipeline
PipelineFuture< PipelineDescriptor > GetPipeline(std::optional< PipelineDescriptor > descriptor, bool async=true)
Definition: pipeline_library.cc:13

References GetPipeline().

## ◆ GetPipeline() [4/4]

PipelineFuture< PipelineDescriptor > impeller::PipelineLibrary::GetPipeline | ( | std::optional< PipelineDescriptor > | descriptor,
|  | bool | async = `true`
| ) |  |

Definition at line 13 of file pipeline_library.cc.

15 {
16 if (descriptor.has_value()) {
17 return GetPipeline(descriptor.value(), async);
18 }
19 auto promise = std::make_shared<
20 std::promise<std::shared_ptr<Pipeline<PipelineDescriptor>>>>();
21 promise->set_value(nullptr);
22 return {descriptor, promise->get_future()};
23 }

Referenced by GetPipeline().

## ◆ HasPipeline()

virtual bool impeller::PipelineLibrary::HasPipeline | ( | const PipelineDescriptor & | descriptor | ) |
| pure virtual

## ◆ IsValid()

virtual bool impeller::PipelineLibrary::IsValid | ( |  | ) | const
| pure virtual

## ◆ RemovePipelinesWithEntryPoint()

virtual void impeller::PipelineLibrary::RemovePipelinesWithEntryPoint | ( | std::shared_ptr< const ShaderFunction > | function | ) |
| pure virtual

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

- impeller/renderer/pipeline_library.h
- impeller/renderer/pipeline_library.cc