Flutter Engine
The Flutter Engine
Public Member Functions | Static Public Member Functions | List of all members
impeller::ContextGLES Class Referencefinal

#include <context_gles.h>

Inheritance diagram for impeller::ContextGLES:
impeller::Context impeller::BackendCast< ContextGLES, Context >

Public Member Functions

 ~ContextGLES () override
 
BackendType GetBackendType () const override
 Get the graphics backend of an Impeller context. More...
 
const ReactorGLES::RefGetReactor () const
 
std::optional< ReactorGLES::WorkerIDAddReactorWorker (const std::shared_ptr< ReactorGLES::Worker > &worker)
 
bool RemoveReactorWorker (ReactorGLES::WorkerID id)
 
std::shared_ptr< GPUTracerGLESGetGPUTracer () const
 
- Public Member Functions inherited from impeller::Context
virtual ~Context ()
 Destroys an Impeller context. More...
 
virtual BackendType GetBackendType () const =0
 Get the graphics backend of an Impeller context. More...
 
virtual std::string DescribeGpuModel () const =0
 
virtual bool IsValid () const =0
 Determines if a context is valid. If the caller ever receives an invalid context, they must discard it and construct a new context. There is no recovery mechanism to repair a bad context. More...
 
virtual const std::shared_ptr< const Capabilities > & GetCapabilities () const =0
 Get the capabilities of Impeller context. All optionally supported feature of the platform, client-rendering API, and device can be queried using the Capabilities. More...
 
virtual bool UpdateOffscreenLayerPixelFormat (PixelFormat format)
 
virtual std::shared_ptr< AllocatorGetResourceAllocator () const =0
 Returns the allocator used to create textures and buffers on the device. More...
 
virtual std::shared_ptr< ShaderLibraryGetShaderLibrary () const =0
 Returns the library of shaders used to specify the programmable stages of a pipeline. More...
 
virtual std::shared_ptr< SamplerLibraryGetSamplerLibrary () const =0
 Returns the library of combined image samplers used in shaders. More...
 
virtual std::shared_ptr< PipelineLibraryGetPipelineLibrary () const =0
 Returns the library of pipelines used by render or compute commands. More...
 
virtual std::shared_ptr< CommandBufferCreateCommandBuffer () const =0
 Create a new command buffer. Command buffers can be used to encode graphics, blit, or compute commands to be submitted to the device. More...
 
virtual std::shared_ptr< CommandQueueGetCommandQueue () const =0
 Return the graphics queue for submitting command buffers. More...
 
virtual void Shutdown ()=0
 Force all pending asynchronous work to finish. This is achieved by deleting all owned concurrent message loops. More...
 
virtual void StoreTaskForGPU (const std::function< void()> &task)
 
virtual void InitializeCommonlyUsedShadersIfNeeded () const
 

Static Public Member Functions

static std::shared_ptr< ContextGLESCreate (std::unique_ptr< ProcTableGLES > gl, const std::vector< std::shared_ptr< fml::Mapping > > &shader_libraries, bool enable_gpu_tracing)
 
- Static Public Member Functions inherited from impeller::BackendCast< ContextGLES, Context >
static ContextGLESCast (Context &base)
 
static const ContextGLESCast (const Context &base)
 
static ContextGLESCast (Context *base)
 
static const ContextGLESCast (const Context *base)
 

Additional Inherited Members

- Public Types inherited from impeller::Context
enum class  BackendType { kMetal , kOpenGLES , kVulkan }
 
- Static Public Attributes inherited from impeller::Context
static constexpr int32_t kMaxTasksAwaitingGPU = 10
 
- Protected Member Functions inherited from impeller::Context
 Context ()
 
- Protected Attributes inherited from impeller::Context
std::vector< std::function< void()> > per_frame_task_
 

Detailed Description

Definition at line 22 of file context_gles.h.

Constructor & Destructor Documentation

◆ ~ContextGLES()

impeller::ContextGLES::~ContextGLES ( )
overridedefault

Member Function Documentation

◆ AddReactorWorker()

std::optional< ReactorGLES::WorkerID > impeller::ContextGLES::AddReactorWorker ( const std::shared_ptr< ReactorGLES::Worker > &  worker)

Definition at line 85 of file context_gles.cc.

86 {
87 if (!IsValid()) {
88 return std::nullopt;
89 }
90 return reactor_->AddWorker(worker);
91}

◆ Create()

std::shared_ptr< ContextGLES > impeller::ContextGLES::Create ( std::unique_ptr< ProcTableGLES gl,
const std::vector< std::shared_ptr< fml::Mapping > > &  shader_libraries,
bool  enable_gpu_tracing 
)
static

Definition at line 16 of file context_gles.cc.

19 {
20 return std::shared_ptr<ContextGLES>(
21 new ContextGLES(std::move(gl), shader_libraries, enable_gpu_tracing));
22}
gl
Definition: malisc.py:41

◆ GetBackendType()

Context::BackendType impeller::ContextGLES::GetBackendType ( ) const
overridevirtual

Get the graphics backend of an Impeller context.

        This is useful for cases where a renderer needs to track and
        lookup backend-specific resources, like shaders or uniform
        layout information.

        It's not recommended to use this as a substitute for
        per-backend capability checking. Instead, check for specific
        capabilities via `GetCapabilities()`.
Returns
The graphics backend of the Context.

Implements impeller::Context.

Definition at line 77 of file context_gles.cc.

◆ GetGPUTracer()

std::shared_ptr< GPUTracerGLES > impeller::ContextGLES::GetGPUTracer ( ) const
inline

Definition at line 44 of file context_gles.h.

44{ return gpu_tracer_; }

◆ GetReactor()

const ReactorGLES::Ref & impeller::ContextGLES::GetReactor ( ) const

Definition at line 81 of file context_gles.cc.

81 {
82 return reactor_;
83}

◆ RemoveReactorWorker()

bool impeller::ContextGLES::RemoveReactorWorker ( ReactorGLES::WorkerID  id)

Definition at line 93 of file context_gles.cc.

93 {
94 if (!IsValid()) {
95 return false;
96 }
97 return reactor_->RemoveWorker(id);
98}

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