Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
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
 
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.
 
PipelineFuture< PipelineDescriptorCreateVariant (std::function< void(PipelineDescriptor &desc)> descriptor_callback) const
 

Private Member Functions

bool IsValid () const override
 

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 19 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}
constexpr bool IsDead() const
Definition handle_gles.h:43

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}
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

◆ 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 34 of file pipeline_gles.cc.

34 {
35 return handle_;
36}

◆ IsValid()

bool impeller::PipelineGLES::IsValid ( ) const
overrideprivatevirtual

Implements impeller::Pipeline< PipelineDescriptor >.

Definition at line 30 of file pipeline_gles.cc.

30 {
31 return is_valid_;
32}

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