72 handle_(nullptr, &DestroyWindowHandle),
74 use_angle_(switches.use_angle) {
76#if IMPELLER_PLAYGROUND_SUPPORTS_ANGLE
77 angle_glesv2_ = dlopen(
"libGLESv2.dylib", RTLD_LAZY);
82 ::glfwDefaultWindowHints();
85 FML_CHECK(use_angle_) <<
"Must use Angle on macOS for OpenGL ES.";
86 ::glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API);
91 ::glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API);
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);
106 ::glfwWindowHint(GLFW_CONTEXT_DEBUG,
GLFW_TRUE);
109 auto window = ::glfwCreateWindow(1, 1,
"Test",
nullptr,
nullptr);
111 ::glfwMakeContextCurrent(
window);
112 worker_->SetReactionsAllowedOnCurrentThread(
true);
123 std::make_shared<fml::NonOwnedMapping>(
124 impeller_entity_shaders_gles3_data,
125 impeller_entity_shaders_gles3_length),
126 std::make_shared<fml::NonOwnedMapping>(
127 impeller_modern_shaders_gles3_data,
128 impeller_modern_shaders_gles3_length),
129 std::make_shared<fml::NonOwnedMapping>(
130 impeller_framebuffer_blend_shaders_gles3_data,
131 impeller_framebuffer_blend_shaders_gles3_length),
132 std::make_shared<fml::NonOwnedMapping>(
133 impeller_fixtures_shaders_gles3_data,
134 impeller_fixtures_shaders_gles3_length),
135 std::make_shared<fml::NonOwnedMapping>(
136 impeller_modern_fixtures_shaders_gles3_data,
137 impeller_modern_fixtures_shaders_gles3_length),
138 std::make_shared<fml::NonOwnedMapping>(
139 impeller_imgui_shaders_gles3_data,
140 impeller_imgui_shaders_gles3_length),
144 std::make_shared<fml::NonOwnedMapping>(
145 impeller_entity_shaders_gles_data,
146 impeller_entity_shaders_gles_length),
147 std::make_shared<fml::NonOwnedMapping>(
148 impeller_modern_shaders_gles_data,
149 impeller_modern_shaders_gles_length),
150 std::make_shared<fml::NonOwnedMapping>(
151 impeller_framebuffer_blend_shaders_gles_data,
152 impeller_framebuffer_blend_shaders_gles_length),
153 std::make_shared<fml::NonOwnedMapping>(
154 impeller_fixtures_shaders_gles_data,
155 impeller_fixtures_shaders_gles_length),
156 std::make_shared<fml::NonOwnedMapping>(
157 impeller_modern_fixtures_shaders_gles_data,
158 impeller_modern_fixtures_shaders_gles_length),
159 std::make_shared<fml::NonOwnedMapping>(
160 impeller_imgui_shaders_gles_data, impeller_imgui_shaders_gles_length),
static std::shared_ptr< ContextGLES > Create(const Flags &flags, std::unique_ptr< ProcTableGLES > gl, const std::vector< std::shared_ptr< fml::Mapping > > &shader_libraries, bool enable_gpu_tracing)