| Flutter Impeller |

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

`#include <pipeline_gles.h>`

Inheritance diagram for impeller::PipelineGLES:

## Public Member Functions
| ~PipelineGLES () override
const HandleGLES & | GetProgramHandle () const
bool | BindProgram () const
bool | UnbindProgram () const
const BufferBindingsGLES * | GetBufferBindings () const
bool | BuildVertexDescriptor (const ProcTableGLES &gl, GLuint program)
Public Member Functions inherited from impeller::Pipeline< PipelineDescriptor >
virtual | ~Pipeline ()
virtual bool | IsValid () const=0
const PipelineDescriptor & | 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< PipelineDescriptor > | CreateVariant (std::function< void(PipelineDescriptor &desc)> descriptor_callback) const

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

## Detailed Description

Definition at line 18 of file pipeline_gles.h.

## Constructor & Destructor Documentation

## ◆ ~PipelineGLES()

impeller::PipelineGLES::~PipelineGLES | ( |  | ) |
| override

Definition at line 23 of file pipeline_gles.cc.

23 {
24 if (!handle_.IsDead()) {
25 reactor_->CollectHandle(handle_);
26 }
27 }

## Member Function Documentation

## ◆ BindProgram()

bool impeller::PipelineGLES::BindProgram | ( |  | ) | const

Definition at line 60 of file pipeline_gles.cc.

60 {
61 if (handle_.IsDead()) {
62 return false;
63 }
64 auto handle = reactor_->GetGLHandle(handle_);
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 }

## ◆ GetBufferBindings()

const 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 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:

- impeller/renderer/backend/gles/pipeline_gles.h
- impeller/renderer/backend/gles/pipeline_gles.cc

impeller::HandleGLES::IsDead
constexpr bool IsDead() const
Definition: handle_gles.h:42
impeller::Pipeline< PipelineDescriptor >::GetDescriptor
const PipelineDescriptor & GetDescriptor() const
Get the descriptor that was responsible for creating this pipeline. It may be copied and modified to ...
Definition: pipeline.cc:49