Flutter Engine
The Flutter Engine
|
#include <context_gles.h>
Public Member Functions | |
~ContextGLES () override | |
BackendType | GetBackendType () const override |
Get the graphics backend of an Impeller context. | |
const ReactorGLES::Ref & | GetReactor () const |
std::optional< ReactorGLES::WorkerID > | AddReactorWorker (const std::shared_ptr< ReactorGLES::Worker > &worker) |
bool | RemoveReactorWorker (ReactorGLES::WorkerID id) |
std::shared_ptr< GPUTracerGLES > | GetGPUTracer () const |
Public Member Functions inherited from impeller::Context | |
virtual | ~Context () |
Destroys an Impeller context. | |
virtual bool | UpdateOffscreenLayerPixelFormat (PixelFormat format) |
virtual void | StoreTaskForGPU (const std::function< void()> &task) |
virtual void | InitializeCommonlyUsedShadersIfNeeded () const |
Static Public Member Functions | |
static std::shared_ptr< ContextGLES > | Create (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 ContextGLES & | Cast (Context &base) |
static const ContextGLES & | Cast (const Context &base) |
static ContextGLES * | Cast (Context *base) |
static const ContextGLES * | Cast (const Context *base) |
Private Member Functions | |
std::string | DescribeGpuModel () const override |
bool | IsValid () const override |
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. | |
std::shared_ptr< Allocator > | GetResourceAllocator () const override |
Returns the allocator used to create textures and buffers on the device. | |
std::shared_ptr< ShaderLibrary > | GetShaderLibrary () const override |
Returns the library of shaders used to specify the programmable stages of a pipeline. | |
std::shared_ptr< SamplerLibrary > | GetSamplerLibrary () const override |
Returns the library of combined image samplers used in shaders. | |
std::shared_ptr< PipelineLibrary > | GetPipelineLibrary () const override |
Returns the library of pipelines used by render or compute commands. | |
std::shared_ptr< CommandBuffer > | CreateCommandBuffer () const override |
Create a new command buffer. Command buffers can be used to encode graphics, blit, or compute commands to be submitted to the device. | |
const std::shared_ptr< const Capabilities > & | GetCapabilities () const override |
Get the capabilities of Impeller context. All optionally supported feature of the platform, client-rendering API, and device can be queried using the Capabilities . | |
std::shared_ptr< CommandQueue > | GetCommandQueue () const override |
Return the graphics queue for submitting command buffers. | |
void | Shutdown () override |
Force all pending asynchronous work to finish. This is achieved by deleting all owned concurrent message loops. | |
Additional Inherited Members | |
Public Types inherited from impeller::Context | |
enum class | BackendType { kMetal , kOpenGLES , kVulkan } |
Public Attributes inherited from impeller::Context | |
CaptureContext | capture |
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_ |
Definition at line 22 of file context_gles.h.
|
overridedefault |
std::optional< ReactorGLES::WorkerID > impeller::ContextGLES::AddReactorWorker | ( | const std::shared_ptr< ReactorGLES::Worker > & | worker | ) |
Definition at line 85 of file context_gles.cc.
|
static |
Definition at line 16 of file context_gles.cc.
|
overrideprivatevirtual |
Create a new command buffer. Command buffers can be used to encode graphics, blit, or compute commands to be submitted to the device.
A command buffer can only be used on a single thread. Multi-threaded render, blit, or compute passes must create a new command buffer on each thread.
Implements impeller::Context.
Definition at line 132 of file context_gles.cc.
|
overrideprivatevirtual |
Implements impeller::Context.
Definition at line 107 of file context_gles.cc.
|
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()`.
Context
. Implements impeller::Context.
Definition at line 77 of file context_gles.cc.
|
overrideprivatevirtual |
Get the capabilities of Impeller context. All optionally supported feature of the platform, client-rendering API, and device can be queried using the Capabilities
.
nullptr
for a valid context. Implements impeller::Context.
Definition at line 138 of file context_gles.cc.
|
overrideprivatevirtual |
Return the graphics queue for submitting command buffers.
Implements impeller::Context.
Definition at line 144 of file context_gles.cc.
|
inline |
Definition at line 44 of file context_gles.h.
|
overrideprivatevirtual |
Returns the library of pipelines used by render or compute commands.
nullptr
for a valid context. Implements impeller::Context.
Definition at line 127 of file context_gles.cc.
const ReactorGLES::Ref & impeller::ContextGLES::GetReactor | ( | ) | const |
Definition at line 81 of file context_gles.cc.
|
overrideprivatevirtual |
Returns the allocator used to create textures and buffers on the device.
nullptr
for a valid context. Implements impeller::Context.
Definition at line 112 of file context_gles.cc.
|
overrideprivatevirtual |
Returns the library of combined image samplers used in shaders.
nullptr
for a valid context. Implements impeller::Context.
Definition at line 122 of file context_gles.cc.
|
overrideprivatevirtual |
Returns the library of shaders used to specify the programmable stages of a pipeline.
nullptr
for a valid context. Implements impeller::Context.
Definition at line 117 of file context_gles.cc.
|
overrideprivatevirtual |
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.
It is convention in Impeller to never return an invalid context from a call that returns an pointer to a context. The call implementation performs validity checks itself and return a null context instead of a pointer to an invalid context.
How a context goes invalid is backend specific. It could happen due to device loss, or any other unrecoverable error.
Implements impeller::Context.
Definition at line 100 of file context_gles.cc.
bool impeller::ContextGLES::RemoveReactorWorker | ( | ReactorGLES::WorkerID | id | ) |
Definition at line 93 of file context_gles.cc.
|
overrideprivatevirtual |
Force all pending asynchronous work to finish. This is achieved by deleting all owned concurrent message loops.
Implements impeller::Context.
Definition at line 104 of file context_gles.cc.