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

#include <pipeline.h>

Public Types

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

Public Member Functions

 RenderPipelineT (const Context &context)
 
 RenderPipelineT (const Context &context, std::optional< PipelineDescriptor > desc)
 
 RenderPipelineT (PipelineFuture< PipelineDescriptor > future)
 
std::shared_ptr< Pipeline< PipelineDescriptor > > WaitAndGet ()
 
std::optional< PipelineDescriptorGetDescriptor () const
 

Detailed Description

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

Definition at line 88 of file pipeline.h.

Member Typedef Documentation

◆ Builder

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

Definition at line 92 of file pipeline.h.

◆ FragmentShader

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

Definition at line 91 of file pipeline.h.

◆ VertexShader

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

Definition at line 90 of file pipeline.h.

Constructor & Destructor Documentation

◆ RenderPipelineT() [1/3]

template<class VertexShader_ , class FragmentShader_ >
impeller::RenderPipelineT< VertexShader_, FragmentShader_ >::RenderPipelineT ( const Context context)
inlineexplicit

Definition at line 94 of file pipeline.h.

◆ RenderPipelineT() [2/3]

template<class VertexShader_ , class FragmentShader_ >
impeller::RenderPipelineT< VertexShader_, FragmentShader_ >::RenderPipelineT ( const Context context,
std::optional< PipelineDescriptor desc 
)
inlineexplicit

Definition at line 99 of file pipeline.h.

101  : RenderPipelineT(CreatePipelineFuture(context, desc)) {}

◆ RenderPipelineT() [3/3]

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

Definition at line 103 of file pipeline.h.

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

Member Function Documentation

◆ GetDescriptor()

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

Definition at line 117 of file pipeline.h.

117  {
118  return pipeline_future_.descriptor;
119  }

◆ WaitAndGet()

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

Definition at line 106 of file pipeline.h.

106  {
107  if (did_wait_) {
108  return pipeline_;
109  }
110  did_wait_ = true;
111  if (pipeline_future_.IsValid()) {
112  pipeline_ = pipeline_future_.Get();
113  }
114  return pipeline_;
115  }

The documentation for this class was generated from the following file:
impeller::RenderPipelineT::RenderPipelineT
RenderPipelineT(const Context &context)
Definition: pipeline.h:94
impeller::CreatePipelineFuture
PipelineFuture< PipelineDescriptor > CreatePipelineFuture(const Context &context, std::optional< PipelineDescriptor > desc)
Definition: pipeline.cc:24
impeller::PipelineBuilder::MakeDefaultPipelineDescriptor
static std::optional< PipelineDescriptor > MakeDefaultPipelineDescriptor(const Context &context)
Create a default pipeline descriptor using the combination reflected shader information....
Definition: pipeline_builder.h:50