37 return {std::make_shared<fml::NonOwnedMapping>(
38 impeller_entity_shaders_data, impeller_entity_shaders_length),
39 std::make_shared<fml::NonOwnedMapping>(
40 impeller_modern_shaders_data, impeller_modern_shaders_length),
41 std::make_shared<fml::NonOwnedMapping>(
42 impeller_framebuffer_blend_shaders_data,
43 impeller_framebuffer_blend_shaders_length),
44 std::make_shared<fml::NonOwnedMapping>(
45 impeller_fixtures_shaders_data, impeller_fixtures_shaders_length),
46 std::make_shared<fml::NonOwnedMapping>(impeller_imgui_shaders_data,
47 impeller_imgui_shaders_length),
48 std::make_shared<fml::NonOwnedMapping>(impeller_scene_shaders_data,
49 impeller_scene_shaders_length),
50 std::make_shared<fml::NonOwnedMapping>(
51 impeller_compute_shaders_data, impeller_compute_shaders_length)
65 handle_(nullptr, &DestroyWindowHandle),
66 data_(
std::make_unique<
Data>()),
67 concurrent_loop_(
fml::ConcurrentMessageLoop::
Create()),
68 is_gpu_disabled_sync_switch_(new
fml::SyncSwitch(false)) {
69 ::glfwDefaultWindowHints();
70 ::glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
72 auto window = ::glfwCreateWindow(1, 1,
"Test",
nullptr,
nullptr);
86 NSWindow* cocoa_window = ::glfwGetCocoaWindow(
window);
87 if (cocoa_window == nil) {
90 data_->metal_layer = [CAMetalLayer layer];
92 data_->metal_layer.pixelFormat =
94 data_->metal_layer.framebufferOnly = NO;
95 cocoa_window.contentView.layer = data_->metal_layer;
96 cocoa_window.contentView.wantsLayer = YES;
99 context_ = std::move(context);
static std::shared_ptr< ContextMTL > Create(const std::vector< std::string > &shader_library_paths, std::shared_ptr< const fml::SyncSwitch > is_gpu_disabled_sync_switch)
id< MTLDevice > GetMTLDevice() const