Flutter Impeller
impeller::PlaygroundSwitches Struct Reference

#include <switches.h>

Public Member Functions

 PlaygroundSwitches ()
 
 PlaygroundSwitches (const fml::CommandLine &args)
 

Public Attributes

bool enable_playground = false
 
std::optional< std::chrono::milliseconds > timeout
 
bool enable_vulkan_validation = false
 
bool use_swiftshader = false
 
bool use_angle = false
 
bool enable_wide_gamut = false
 
Flags flags
 

Detailed Description

Definition at line 16 of file switches.h.

Constructor & Destructor Documentation

◆ PlaygroundSwitches() [1/2]

impeller::PlaygroundSwitches::PlaygroundSwitches ( )
default

◆ PlaygroundSwitches() [2/2]

impeller::PlaygroundSwitches::PlaygroundSwitches ( const fml::CommandLine &  args)
explicit

Definition at line 15 of file switches.cc.

15  {
16  enable_playground = args.HasOption("enable_playground");
17  std::string timeout_str;
18  if (args.GetOptionValue("playground_timeout_ms", &timeout_str)) {
19  timeout = std::chrono::milliseconds(atoi(timeout_str.c_str()));
20  // Specifying a playground timeout implies you want to enable playgrounds.
21  enable_playground = true;
22  }
23  enable_vulkan_validation = args.HasOption("enable_vulkan_validation");
24  use_swiftshader = args.HasOption("use_swiftshader");
25  use_angle = args.HasOption("use_angle");
26 #if FML_OS_MACOSX
27  // OpenGL on macOS is busted and deprecated. Use Angle there by default.
28  use_angle = true;
29 #endif // FML_OS_MACOSX
30 }
std::optional< std::chrono::milliseconds > timeout
Definition: switches.h:21

References enable_playground, enable_vulkan_validation, timeout, use_angle, and use_swiftshader.

Member Data Documentation

◆ enable_playground

◆ enable_vulkan_validation

bool impeller::PlaygroundSwitches::enable_vulkan_validation = false

◆ enable_wide_gamut

bool impeller::PlaygroundSwitches::enable_wide_gamut = false

◆ flags

◆ timeout

std::optional<std::chrono::milliseconds> impeller::PlaygroundSwitches::timeout

Definition at line 21 of file switches.h.

Referenced by PlaygroundSwitches().

◆ use_angle

bool impeller::PlaygroundSwitches::use_angle = false

Attempt to use Angle on the system instead of the available OpenGL ES implementation. This is on-by-default on macOS due to the broken-ness in the deprecated OpenGL implementation. On other platforms, it this opt-in via the flag with the system OpenGL ES implementation used by fault.

Definition at line 34 of file switches.h.

Referenced by impeller::PlaygroundTest::GetWindowTitle(), PlaygroundSwitches(), and impeller::GoldenPlaygroundTest::SetUp().

◆ use_swiftshader

bool impeller::PlaygroundSwitches::use_swiftshader = false

Seek a SwiftShader library in known locations and use it when running Vulkan. It is a fatal error to provide this option and not have the test find a SwiftShader implementation.

Definition at line 28 of file switches.h.

Referenced by impeller::PlaygroundTest::GetWindowTitle(), impeller::Playground::Playground(), and PlaygroundSwitches().


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