Flutter Impeller
impeller::PipelineGLES Class Referencefinal

#include <pipeline_gles.h>

Inheritance diagram for impeller::PipelineGLES:
impeller::Pipeline< PipelineDescriptor > impeller::BackendCast< PipelineGLES, Pipeline< PipelineDescriptor > >

Public Member Functions

 ~PipelineGLES () override
 
const HandleGLESGetProgramHandle () const
 
const std::shared_ptr< UniqueHandleGLESGetSharedHandle () const
 
bool BindProgram () const
 
bool UnbindProgram () const
 
BufferBindingsGLESGetBufferBindings () const
 
bool BuildVertexDescriptor (const ProcTableGLES &gl, GLuint program)
 
- Public Member Functions inherited from impeller::Pipeline< PipelineDescriptor >
virtual ~Pipeline ()
 
const PipelineDescriptorGetDescriptor () const
 Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to create a pipeline variant. More...
 
PipelineFuture< PipelineDescriptorCreateVariant (bool async, std::function< void(PipelineDescriptor &desc)> descriptor_callback) const
 

Additional Inherited Members

- Static Public Member Functions inherited from impeller::BackendCast< PipelineGLES, Pipeline< PipelineDescriptor > >
static PipelineGLESCast (Pipeline< PipelineDescriptor > &base)
 
static const PipelineGLESCast (const Pipeline< PipelineDescriptor > &base)
 
static PipelineGLESCast (Pipeline< PipelineDescriptor > *base)
 
static const PipelineGLESCast (const Pipeline< PipelineDescriptor > *base)
 
- Protected Member Functions inherited from impeller::Pipeline< PipelineDescriptor >
 Pipeline (std::weak_ptr< PipelineLibrary > library, PipelineDescriptor desc)
 
- Protected Attributes inherited from impeller::Pipeline< PipelineDescriptor >
const std::weak_ptr< PipelineLibrarylibrary_
 
const PipelineDescriptor desc_
 

Detailed Description

Definition at line 18 of file pipeline_gles.h.

Constructor & Destructor Documentation

◆ ~PipelineGLES()

impeller::PipelineGLES::~PipelineGLES ( )
overridedefault

Member Function Documentation

◆ BindProgram()

bool impeller::PipelineGLES::BindProgram ( ) const

Definition at line 60 of file pipeline_gles.cc.

60  {
61  if (!handle_->IsValid()) {
62  return false;
63  }
64  auto handle = reactor_->GetGLHandle(handle_->Get());
65  if (!handle.has_value()) {
66  return false;
67  }
68  reactor_->GetProcTable().UseProgram(handle.value());
69  return true;
70 }

◆ BuildVertexDescriptor()

bool impeller::PipelineGLES::BuildVertexDescriptor ( const ProcTableGLES gl,
GLuint  program 
)

Definition at line 42 of file pipeline_gles.cc.

43  {
44  if (buffer_bindings_) {
45  return false;
46  }
47  auto vtx_desc = std::make_unique<BufferBindingsGLES>();
48  if (!vtx_desc->RegisterVertexStageInput(
49  gl, GetDescriptor().GetVertexDescriptor()->GetStageInputs(),
50  GetDescriptor().GetVertexDescriptor()->GetStageLayouts())) {
51  return false;
52  }
53  if (!vtx_desc->ReadUniformsBindings(gl, program)) {
54  return false;
55  }
56  buffer_bindings_ = std::move(vtx_desc);
57  return true;
58 }
const PipelineDescriptor & GetDescriptor() const
Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to ...
Definition: pipeline.cc:51

◆ GetBufferBindings()

BufferBindingsGLES * impeller::PipelineGLES::GetBufferBindings ( ) const

Definition at line 38 of file pipeline_gles.cc.

38  {
39  return buffer_bindings_.get();
40 }

◆ GetProgramHandle()

const HandleGLES & impeller::PipelineGLES::GetProgramHandle ( ) const

Definition at line 30 of file pipeline_gles.cc.

30  {
31  return handle_->Get();
32 }

◆ GetSharedHandle()

const std::shared_ptr< UniqueHandleGLES > impeller::PipelineGLES::GetSharedHandle ( ) const

Definition at line 34 of file pipeline_gles.cc.

34  {
35  return handle_;
36 }

◆ UnbindProgram()

bool impeller::PipelineGLES::UnbindProgram ( ) const

Definition at line 72 of file pipeline_gles.cc.

72  {
73  if (reactor_) {
74  reactor_->GetProcTable().UseProgram(0u);
75  }
76  return true;
77 }

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