72 handle_(nullptr, &DestroyWindowHandle),
73 worker_(std::shared_ptr<ReactorWorker>(new ReactorWorker())),
74 use_angle_(switches.use_angle) {
75 if (use_angle_) {
76#if IMPELLER_PLAYGROUND_SUPPORTS_ANGLE
77 angle_glesv2_ = dlopen("libGLESv2.dylib", RTLD_LAZY);
78#endif
80 }
81
82 ::glfwDefaultWindowHints();
83
84#if FML_OS_MACOSX
85 FML_CHECK(use_angle_) <<
"Must use Angle on macOS for OpenGL ES.";
86 ::glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API);
87#endif
88#if FML_OS_LINUX
89
90
91 ::glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API);
92#endif
93 ::glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
94 ::glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
95 ::glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
96 ::glfwWindowHint(GLFW_RED_BITS, 8);
97 ::glfwWindowHint(GLFW_GREEN_BITS, 8);
98 ::glfwWindowHint(GLFW_BLUE_BITS, 8);
99 ::glfwWindowHint(GLFW_ALPHA_BITS, 8);
100 ::glfwWindowHint(GLFW_DEPTH_BITS, 32);
101 ::glfwWindowHint(GLFW_STENCIL_BITS, 8);
102 ::glfwWindowHint(GLFW_SAMPLES, 4);
103
105#ifndef NDEBUG
106 ::glfwWindowHint(GLFW_CONTEXT_DEBUG,
GLFW_TRUE);
107#endif
108
109 auto window = ::glfwCreateWindow(1, 1,
"Test",
nullptr,
nullptr);
110
111 ::glfwMakeContextCurrent(
window);
112 worker_->SetReactionsAllowedOnCurrentThread(true);
113
115}
PlaygroundImpl(PlaygroundSwitches switches)
#define FML_CHECK(condition)