21 return supports_offscreen_msaa_;
32 return supports_texture_to_texture_blits_;
37 return supports_framebuffer_fetch_;
45 return supports_compute_subgroups_;
50 return supports_read_from_resolve_;
55 return supports_decal_sampler_address_mode_;
63 return default_color_format_;
68 return default_stencil_format_;
73 return default_depth_stencil_format_;
78 return supports_device_transient_textures_;
83 return default_glyph_atlas_format_;
88 return default_maximum_render_pass_attachment_size_;
97 bool supports_texture_to_texture_blits,
98 bool supports_framebuffer_fetch,
99 bool supports_compute,
100 bool supports_compute_subgroups,
101 bool supports_read_from_resolve,
102 bool supports_decal_sampler_address_mode,
103 bool supports_device_transient_textures,
104 bool supports_triangle_fan,
109 ISize default_maximum_render_pass_attachment_size)
110 : supports_offscreen_msaa_(supports_offscreen_msaa),
111 supports_ssbo_(supports_ssbo),
112 supports_texture_to_texture_blits_(supports_texture_to_texture_blits),
113 supports_framebuffer_fetch_(supports_framebuffer_fetch),
114 supports_compute_(supports_compute),
115 supports_compute_subgroups_(supports_compute_subgroups),
116 supports_read_from_resolve_(supports_read_from_resolve),
117 supports_decal_sampler_address_mode_(
118 supports_decal_sampler_address_mode),
119 supports_device_transient_textures_(supports_device_transient_textures),
120 supports_triangle_fan_(supports_triangle_fan),
121 default_color_format_(default_color_format),
122 default_stencil_format_(default_stencil_format),
123 default_depth_stencil_format_(default_depth_stencil_format),
124 default_glyph_atlas_format_(default_glyph_atlas_format),
125 default_maximum_render_pass_attachment_size_(
126 default_maximum_render_pass_attachment_size) {}
130 bool supports_offscreen_msaa_ =
false;
131 bool supports_ssbo_ =
false;
132 bool supports_texture_to_texture_blits_ =
false;
133 bool supports_framebuffer_fetch_ =
false;
134 bool supports_compute_ =
false;
135 bool supports_compute_subgroups_ =
false;
136 bool supports_read_from_resolve_ =
false;
137 bool supports_decal_sampler_address_mode_ =
false;
138 bool supports_device_transient_textures_ =
false;
139 bool supports_triangle_fan_ =
false;
144 ISize default_maximum_render_pass_attachment_size_ =
ISize(1, 1);
156 supports_offscreen_msaa_ =
value;
161 supports_ssbo_ =
value;
167 supports_texture_to_texture_blits_ =
value;
173 supports_framebuffer_fetch_ =
value;
178 supports_compute_ =
value;
184 supports_compute_subgroups_ =
value;
190 default_color_format_ =
value;
196 default_stencil_format_ =
value;
202 default_depth_stencil_format_ =
value;
207 bool read_from_resolve) {
208 supports_read_from_resolve_ = read_from_resolve;
214 supports_decal_sampler_address_mode_ =
value;
220 supports_device_transient_textures_ =
value;
226 default_glyph_atlas_format_ =
value;
231 supports_triangle_fan_ =
value;
237 default_maximum_render_pass_attachment_size_ = size;
243 supports_offscreen_msaa_,
245 supports_texture_to_texture_blits_,
246 supports_framebuffer_fetch_,
248 supports_compute_subgroups_,
249 supports_read_from_resolve_,
250 supports_decal_sampler_address_mode_,
251 supports_device_transient_textures_,
252 supports_triangle_fan_,
257 default_maximum_render_pass_attachment_size_.value_or(
ISize{1, 1})
CapabilitiesBuilder & SetDefaultColorFormat(PixelFormat value)
CapabilitiesBuilder & SetSupportsComputeSubgroups(bool value)
CapabilitiesBuilder & SetSupportsTextureToTextureBlits(bool value)
CapabilitiesBuilder & SetDefaultStencilFormat(PixelFormat value)
CapabilitiesBuilder & SetSupportsDeviceTransientTextures(bool value)
CapabilitiesBuilder & SetSupportsTriangleFan(bool value)
CapabilitiesBuilder & SetSupportsFramebufferFetch(bool value)
CapabilitiesBuilder & SetSupportsDecalSamplerAddressMode(bool value)
CapabilitiesBuilder & SetSupportsOffscreenMSAA(bool value)
CapabilitiesBuilder & SetSupportsSSBO(bool value)
CapabilitiesBuilder & SetMaximumRenderPassAttachmentSize(ISize size)
CapabilitiesBuilder & SetDefaultGlyphAtlasFormat(PixelFormat value)
CapabilitiesBuilder & SetSupportsCompute(bool value)
std::unique_ptr< Capabilities > Build()
CapabilitiesBuilder & SetDefaultDepthStencilFormat(PixelFormat value)
CapabilitiesBuilder & SetSupportsReadFromResolve(bool value)
~StandardCapabilities() override=default
bool SupportsReadFromResolve() const override
Whether the context backend supports binding the current RenderPass attachments. This is supported if...
PixelFormat GetDefaultDepthStencilFormat() const override
Returns a supported PixelFormat for textures that store both a stencil and depth component....
bool SupportsComputeSubgroups() const override
Whether the context backend supports configuring ComputePass command subgroups.
bool SupportsOffscreenMSAA() const override
Whether the context backend supports attaching offscreen MSAA color/stencil textures.
ISize GetMaximumRenderPassAttachmentSize() const override
Return the maximum size of a render pass attachment.
bool SupportsTextureToTextureBlits() const override
Whether the context backend supports blitting from one texture region to another texture region (via ...
bool SupportsFramebufferFetch() const override
Whether the context backend is able to support pipelines with shaders that read from the framebuffer ...
PixelFormat GetDefaultGlyphAtlasFormat() const override
Returns the default pixel format for the alpha bitmap glyph atlas.
PixelFormat GetDefaultStencilFormat() const override
Returns a supported PixelFormat for textures that store stencil information. May include a depth chan...
bool SupportsCompute() const override
Whether the context backend supports ComputePass.
bool SupportsSSBO() const override
Whether the context backend supports binding Shader Storage Buffer Objects (SSBOs) to pipelines.
bool SupportsDeviceTransientTextures() const override
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") text...
bool SupportsImplicitResolvingMSAA() const override
Whether the context backend supports multisampled rendering to the on-screen surface without requirin...
bool SupportsPrimitiveRestart() const override
Whether primitive restart is supported.
PixelFormat GetDefaultColorFormat() const override
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha).
bool SupportsTriangleFan() const override
Whether the primitive type TriangleFan is supported by the backend.
bool SupportsDecalSamplerAddressMode() const override
Whether the context backend supports SamplerAddressMode::Decal.
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...