Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
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)
 
GLint GetYFlipUniformLocation () const
 
- 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 (bool async, const std::function< void(PipelineDescriptor &desc)> &descriptor_callback) const
 

Friends

class testing::RenderPassGLESCommandTest
 

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, const PipelineDescriptor &desc)
 
- Protected Attributes inherited from impeller::Pipeline< PipelineDescriptor >
const std::weak_ptr< PipelineLibrarylibrary_
 
const PipelineDescriptor desc_
 

Detailed Description

Definition at line 22 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 62 of file pipeline_gles.cc.

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

References handle_.

◆ 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 // Cache the y-flip uniform; -1 if not declared.
57 y_flip_uniform_location_ = gl.GetUniformLocation(program, "_impeller_y_flip");
58 buffer_bindings_ = std::move(vtx_desc);
59 return true;
60}
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}

References handle_.

◆ GetSharedHandle()

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

Definition at line 34 of file pipeline_gles.cc.

34 {
35 return handle_;
36}

References handle_.

◆ GetYFlipUniformLocation()

GLint impeller::PipelineGLES::GetYFlipUniformLocation ( ) const
inline

Definition at line 44 of file pipeline_gles.h.

44{ return y_flip_uniform_location_; }

◆ UnbindProgram()

bool impeller::PipelineGLES::UnbindProgram ( ) const

Definition at line 74 of file pipeline_gles.cc.

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

Friends And Related Symbol Documentation

◆ testing::RenderPassGLESCommandTest

Definition at line 48 of file pipeline_gles.h.


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