Flutter Impeller
impeller::CapabilitiesBuilder Class Reference

#include <capabilities.h>

Public Member Functions

 CapabilitiesBuilder ()
 
 ~CapabilitiesBuilder ()
 
CapabilitiesBuilder & SetSupportsOffscreenMSAA (bool value)
 
CapabilitiesBuilder & SetSupportsSSBO (bool value)
 
CapabilitiesBuilder & SetSupportsTextureToTextureBlits (bool value)
 
CapabilitiesBuilder & SetSupportsFramebufferFetch (bool value)
 
CapabilitiesBuilder & SetSupportsCompute (bool value)
 
CapabilitiesBuilder & SetSupportsComputeSubgroups (bool value)
 
CapabilitiesBuilder & SetSupportsReadFromResolve (bool value)
 
CapabilitiesBuilder & SetDefaultColorFormat (PixelFormat value)
 
CapabilitiesBuilder & SetDefaultStencilFormat (PixelFormat value)
 
CapabilitiesBuilder & SetDefaultDepthStencilFormat (PixelFormat value)
 
CapabilitiesBuilder & SetSupportsDecalSamplerAddressMode (bool value)
 
CapabilitiesBuilder & SetSupportsDeviceTransientTextures (bool value)
 
CapabilitiesBuilder & SetSupportsExtendedRangeFormats (bool value)
 
CapabilitiesBuilder & SetSupportsTextureCompression (CompressedTextureFamily family, bool value)
 
CapabilitiesBuilder & SetDefaultGlyphAtlasFormat (PixelFormat value)
 
CapabilitiesBuilder & SetSupportsTriangleFan (bool value)
 
CapabilitiesBuilder & SetMaximumRenderPassAttachmentSize (ISize size)
 
CapabilitiesBuilder & SetMaxSamplerAnisotropy (uint32_t value)
 
CapabilitiesBuilder & SetMinimumUniformAlignment (size_t value)
 
CapabilitiesBuilder & SetNeedsPartitionedHostBuffer (bool value)
 
std::unique_ptr< Capabilities > Build ()
 

Detailed Description

Definition at line 175 of file capabilities.h.

Constructor & Destructor Documentation

◆ CapabilitiesBuilder()

impeller::CapabilitiesBuilder::CapabilitiesBuilder ( )
default

◆ ~CapabilitiesBuilder()

impeller::CapabilitiesBuilder::~CapabilitiesBuilder ( )
default

Member Function Documentation

◆ Build()

std::unique_ptr< Capabilities > impeller::CapabilitiesBuilder::Build ( )

Definition at line 359 of file capabilities.cc.

359  {
360  // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks)
361  return std::unique_ptr<StandardCapabilities>(new StandardCapabilities( //
362  supports_offscreen_msaa_, //
363  supports_ssbo_, //
364  supports_texture_to_texture_blits_, //
365  supports_framebuffer_fetch_, //
366  supports_compute_, //
367  supports_compute_subgroups_, //
368  supports_read_from_resolve_, //
369  supports_decal_sampler_address_mode_, //
370  supports_device_transient_textures_, //
371  supports_triangle_fan_, //
372  supports_extended_range_formats_, //
373  default_color_format_.value_or(PixelFormat::kUnknown), //
374  default_stencil_format_.value_or(PixelFormat::kUnknown), //
375  default_depth_stencil_format_.value_or(PixelFormat::kUnknown), //
376  default_glyph_atlas_format_.value_or(PixelFormat::kUnknown), //
377  default_maximum_render_pass_attachment_size_.value_or(ISize{1, 1}), //
378  max_sampler_anisotropy_, //
379  minimum_uniform_alignment_, //
380  needs_partitioned_host_buffer_, //
381  supports_texture_compression_bc_, //
382  supports_texture_compression_etc2_, //
383  supports_texture_compression_astc_, //
384  supports_texture_compression_astc_hdr_ //
385  ));
386 }
ISize64 ISize
Definition: size.h:162

References impeller::kUnknown.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetDefaultColorFormat()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetDefaultColorFormat ( PixelFormat  value)

Definition at line 262 of file capabilities.cc.

263  {
264  default_color_format_ = value;
265  return *this;
266 }
int32_t value

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetDefaultDepthStencilFormat()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetDefaultDepthStencilFormat ( PixelFormat  value)

Definition at line 274 of file capabilities.cc.

275  {
276  default_depth_stencil_format_ = value;
277  return *this;
278 }

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetDefaultGlyphAtlasFormat()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetDefaultGlyphAtlasFormat ( PixelFormat  value)

Definition at line 298 of file capabilities.cc.

299  {
300  default_glyph_atlas_format_ = value;
301  return *this;
302 }

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetDefaultStencilFormat()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetDefaultStencilFormat ( PixelFormat  value)

Definition at line 268 of file capabilities.cc.

269  {
270  default_stencil_format_ = value;
271  return *this;
272 }

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetMaximumRenderPassAttachmentSize()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetMaximumRenderPassAttachmentSize ( ISize  size)

Definition at line 309 of file capabilities.cc.

310  {
311  default_maximum_render_pass_attachment_size_ = size;
312  return *this;
313 }

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetMaxSamplerAnisotropy()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetMaxSamplerAnisotropy ( uint32_t  value)

Definition at line 341 of file capabilities.cc.

342  {
343  max_sampler_anisotropy_ = value;
344  return *this;
345 }

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetMinimumUniformAlignment()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetMinimumUniformAlignment ( size_t  value)

Definition at line 347 of file capabilities.cc.

348  {
349  minimum_uniform_alignment_ = value;
350  return *this;
351 }

References value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetNeedsPartitionedHostBuffer()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetNeedsPartitionedHostBuffer ( bool  value)

Definition at line 353 of file capabilities.cc.

354  {
355  needs_partitioned_host_buffer_ = value;
356  return *this;
357 }

References value.

◆ SetSupportsCompute()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsCompute ( bool  value)

Definition at line 251 of file capabilities.cc.

251  {
252  supports_compute_ = value;
253  return *this;
254 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsComputeSubgroups()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsComputeSubgroups ( bool  value)

Definition at line 256 of file capabilities.cc.

257  {
258  supports_compute_subgroups_ = value;
259  return *this;
260 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsDecalSamplerAddressMode()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsDecalSamplerAddressMode ( bool  value)

Definition at line 286 of file capabilities.cc.

287  {
288  supports_decal_sampler_address_mode_ = value;
289  return *this;
290 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsDeviceTransientTextures()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsDeviceTransientTextures ( bool  value)

Definition at line 292 of file capabilities.cc.

293  {
294  supports_device_transient_textures_ = value;
295  return *this;
296 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsExtendedRangeFormats()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsExtendedRangeFormats ( bool  value)

Definition at line 315 of file capabilities.cc.

316  {
317  supports_extended_range_formats_ = value;
318  return *this;
319 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsFramebufferFetch()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsFramebufferFetch ( bool  value)

Definition at line 245 of file capabilities.cc.

246  {
247  supports_framebuffer_fetch_ = value;
248  return *this;
249 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsOffscreenMSAA()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsOffscreenMSAA ( bool  value)

Definition at line 229 of file capabilities.cc.

229  {
230  supports_offscreen_msaa_ = value;
231  return *this;
232 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsReadFromResolve()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsReadFromResolve ( bool  value)

Definition at line 280 of file capabilities.cc.

281  {
282  supports_read_from_resolve_ = read_from_resolve;
283  return *this;
284 }

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsSSBO()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsSSBO ( bool  value)

Definition at line 234 of file capabilities.cc.

234  {
235  supports_ssbo_ = value;
236  return *this;
237 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsTextureCompression()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsTextureCompression ( CompressedTextureFamily  family,
bool  value 
)

Definition at line 321 of file capabilities.cc.

323  {
324  switch (family) {
326  supports_texture_compression_bc_ = value;
327  break;
329  supports_texture_compression_etc2_ = value;
330  break;
332  supports_texture_compression_astc_ = value;
333  break;
335  supports_texture_compression_astc_hdr_ = value;
336  break;
337  }
338  return *this;
339 }
@ kASTCHDR
ASTC HDR. A separate device feature from ASTC LDR.
@ kBC
S3TC, RGTC, and BPTC (BC1 through BC7). Desktop GPUs.
@ kETC2
ETC2 and EAC. Mobile, OpenGL ES 3.0, and WebGL2.
@ kASTC
ASTC LDR. Modern mobile and some desktop.

References impeller::kASTC, impeller::kASTCHDR, impeller::kBC, impeller::kETC2, and value.

Referenced by impeller::InferMetalCapabilities(), and impeller::testing::TEST().

◆ SetSupportsTextureToTextureBlits()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsTextureToTextureBlits ( bool  value)

Definition at line 239 of file capabilities.cc.

240  {
241  supports_texture_to_texture_blits_ = value;
242  return *this;
243 }

References value.

Referenced by impeller::InferMetalCapabilities().

◆ SetSupportsTriangleFan()

CapabilitiesBuilder & impeller::CapabilitiesBuilder::SetSupportsTriangleFan ( bool  value)

Definition at line 304 of file capabilities.cc.

304  {
305  supports_triangle_fan_ = value;
306  return *this;
307 }

References value.

Referenced by impeller::InferMetalCapabilities().


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