14 "GL_EXT_shader_framebuffer_fetch";
17 "GL_EXT_texture_border_clamp";
19 "GL_NV_texture_border_clamp";
23 "GL_EXT_multisampled_render_to_texture";
28 gl.GetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &
value);
34 gl.GetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &
value);
38 auto const desc =
gl.GetDescription();
42 gl.GetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS, &
value);
48 gl.GetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &
value);
54 gl.GetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &
value);
60 gl.GetIntegerv(GL_MAX_TEXTURE_SIZE, &
value);
66 gl.GetIntegerv(GL_MAX_VARYING_VECTORS, &
value);
72 gl.GetIntegerv(GL_MAX_VERTEX_ATTRIBS, &
value);
78 gl.GetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &
value);
84 gl.GetIntegerv(GL_MAX_VERTEX_UNIFORM_VECTORS, &
value);
90 gl.GetIntegerv(GL_MAX_VIEWPORT_DIMS,
values);
96 gl.GetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &
value);
102 gl.GetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &
value);
116 supports_decal_sampler_address_mode_ =
true;
120 supports_implicit_msaa_ =
true;
124 gl.GetIntegerv(GL_MAX_SAMPLES_EXT, &
value);
125 supports_offscreen_msaa_ =
value >= 4;
128 is_angle_ =
desc->IsANGLE();
145 return supports_offscreen_msaa_;
149 return supports_implicit_msaa_;
161 return supports_framebuffer_fetch_;
177 return supports_decal_sampler_address_mode_;
201 return default_glyph_atlas_format_;
bool SupportsImplicitResolvingMSAA() const override
Whether the context backend supports multisampled rendering to the on-screen surface without requirin...
PixelFormat GetDefaultDepthStencilFormat() const override
Returns a supported PixelFormat for textures that store both a stencil and depth component....
size_t max_vertex_uniform_vectors
PixelFormat GetDefaultColorFormat() const override
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha).
bool SupportsSSBO() const override
Whether the context backend supports binding Shader Storage Buffer Objects (SSBOs) to pipelines.
size_t max_fragment_uniform_vectors
bool SupportsTextureToTextureBlits() const override
Whether the context backend supports blitting from one texture region to another texture region (via ...
CapabilitiesGLES(const ProcTableGLES &gl)
size_t max_renderbuffer_size
size_t GetMaxTextureUnits(ShaderStage stage) const
size_t max_cube_map_texture_size
size_t max_vertex_texture_image_units
size_t num_shader_binary_formats
size_t max_combined_texture_image_units
bool SupportsOffscreenMSAA() const override
Whether the context backend supports attaching offscreen MSAA color/stencil textures.
PixelFormat GetDefaultStencilFormat() const override
Returns a supported PixelFormat for textures that store stencil information. May include a depth chan...
bool SupportsReadFromResolve() const override
Whether the context backend supports binding the current RenderPass attachments. This is supported if...
bool SupportsDeviceTransientTextures() const override
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") text...
bool SupportsDecalSamplerAddressMode() const override
Whether the context backend supports SamplerAddressMode::Decal.
size_t max_texture_image_units
PixelFormat GetDefaultGlyphAtlasFormat() const override
Returns the default pixel format for the alpha bitmap glyph atlas.
size_t max_vertex_attribs
bool SupportsCompute() const override
Whether the context backend supports ComputePass.
size_t max_varying_vectors
bool SupportsComputeSubgroups() const override
Whether the context backend supports configuring ComputePass command subgroups.
size_t num_compressed_texture_formats
bool SupportsFramebufferFetch() const override
Whether the context backend is able to support pipelines with shaders that read from the framebuffer ...
#define FML_UNREACHABLE()
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...
static const constexpr char * kMultisampledRenderToTextureExt
static const constexpr char * kTextureBorderClampExt
static const constexpr char * kNvidiaTextureBorderClampExt
static const constexpr char * kFramebufferFetchExt