Flutter Impeller
impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ > Class Template Reference

#include <pipeline.h>

Public Types

using VertexShader = VertexShader_
 
using FragmentShader = FragmentShader_
 
using Builder = PipelineBuilder< VertexShader, FragmentShader >
 

Public Member Functions

 RenderPipelineHandle (const Context &context, bool async=true)
 
 RenderPipelineHandle (const Context &context, std::optional< PipelineDescriptor > desc, bool async=true)
 
 RenderPipelineHandle (PipelineFuture< PipelineDescriptor > future)
 
std::shared_ptr< Pipeline< PipelineDescriptor > > WaitAndGet ()
 
std::optional< PipelineDescriptorGetDescriptor () const
 

Detailed Description

template<class VertexShader_, class FragmentShader_>
class impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >

Holds a reference to a Pipeline used for rendering while also maintaining the vertex shader and fragment shader types at compile-time.

See also:

  • impeller::ContentContext::Variants - the typical container for RenderPipelineHandles.

Definition at line 117 of file pipeline.h.

Member Typedef Documentation

◆ Builder

template<class VertexShader_ , class FragmentShader_ >
using impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::Builder = PipelineBuilder<VertexShader, FragmentShader>

Definition at line 121 of file pipeline.h.

◆ FragmentShader

template<class VertexShader_ , class FragmentShader_ >
using impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::FragmentShader = FragmentShader_

Definition at line 120 of file pipeline.h.

◆ VertexShader

template<class VertexShader_ , class FragmentShader_ >
using impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::VertexShader = VertexShader_

Definition at line 119 of file pipeline.h.

Constructor & Destructor Documentation

◆ RenderPipelineHandle() [1/3]

template<class VertexShader_ , class FragmentShader_ >
impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::RenderPipelineHandle ( const Context context,
bool  async = true 
)
inlineexplicit

Definition at line 123 of file pipeline.h.

125  context,
127  async)) {}
RenderPipelineHandle(const Context &context, bool async=true)
Definition: pipeline.h:123
PipelineFuture< PipelineDescriptor > CreatePipelineFuture(const Context &context, std::optional< PipelineDescriptor > desc, bool async)
Create a pipeline for the given descriptor.
Definition: pipeline.cc:24
static std::optional< PipelineDescriptor > MakeDefaultPipelineDescriptor(const Context &context, const std::vector< Scalar > &constants={})
Create a default pipeline descriptor using the combination reflected shader information....

◆ RenderPipelineHandle() [2/3]

template<class VertexShader_ , class FragmentShader_ >
impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::RenderPipelineHandle ( const Context context,
std::optional< PipelineDescriptor desc,
bool  async = true 
)
inlineexplicit

Definition at line 129 of file pipeline.h.

133  CreatePipelineFuture(context, desc, /*async=*/async)) {}

◆ RenderPipelineHandle() [3/3]

template<class VertexShader_ , class FragmentShader_ >
impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::RenderPipelineHandle ( PipelineFuture< PipelineDescriptor future)
inlineexplicit

Definition at line 135 of file pipeline.h.

136  : pipeline_future_(std::move(future)) {}

Member Function Documentation

◆ GetDescriptor()

template<class VertexShader_ , class FragmentShader_ >
std::optional<PipelineDescriptor> impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::GetDescriptor ( ) const
inline

Definition at line 149 of file pipeline.h.

149  {
150  return pipeline_future_.descriptor;
151  }

◆ WaitAndGet()

template<class VertexShader_ , class FragmentShader_ >
std::shared_ptr<Pipeline<PipelineDescriptor> > impeller::RenderPipelineHandle< VertexShader_, FragmentShader_ >::WaitAndGet ( )
inline

Definition at line 138 of file pipeline.h.

138  {
139  if (did_wait_) {
140  return pipeline_;
141  }
142  did_wait_ = true;
143  if (pipeline_future_.IsValid()) {
144  pipeline_ = pipeline_future_.Get();
145  }
146  return pipeline_;
147  }

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