38 return {std::make_shared<fml::NonOwnedMapping>(
39 impeller_entity_shaders_data, impeller_entity_shaders_length),
40 std::make_shared<fml::NonOwnedMapping>(
41 impeller_modern_shaders_data, impeller_modern_shaders_length),
42 std::make_shared<fml::NonOwnedMapping>(
43 impeller_framebuffer_blend_shaders_data,
44 impeller_framebuffer_blend_shaders_length),
45 std::make_shared<fml::NonOwnedMapping>(
46 impeller_fixtures_shaders_data, impeller_fixtures_shaders_length),
47 std::make_shared<fml::NonOwnedMapping>(
48 impeller_modern_fixtures_shaders_data,
49 impeller_modern_fixtures_shaders_length),
50 std::make_shared<fml::NonOwnedMapping>(impeller_imgui_shaders_data,
51 impeller_imgui_shaders_length),
52 std::make_shared<fml::NonOwnedMapping>(
53 impeller_compute_shaders_data, impeller_compute_shaders_length)
67 handle_(nullptr, &DestroyWindowHandle),
68 data_(
std::make_unique<
Data>()),
69 concurrent_loop_(
fml::ConcurrentMessageLoop::Create()),
70 is_gpu_disabled_sync_switch_(new
fml::SyncSwitch(false)) {
71 ::glfwDefaultWindowHints();
72 ::glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
74 auto window = ::glfwCreateWindow(1, 1,
"Test",
nullptr,
nullptr);
79 std::optional<PixelFormat> wide_gamut_format = std::nullopt;
85 is_gpu_disabled_sync_switch_,
"Playground Library", wide_gamut_format);
89 NSWindow* cocoa_window = ::glfwGetCocoaWindow(
window);
90 if (cocoa_window == nil) {
93 data_->metal_layer = [CAMetalLayer layer];
95 data_->metal_layer.pixelFormat =
97 data_->metal_layer.framebufferOnly = NO;
98 cocoa_window.contentView.layer = data_->metal_layer;
99 cocoa_window.contentView.wantsLayer = YES;
103 swapchain_transients_ = std::make_shared<SwapchainTransientsMTL>(
104 context_->GetResourceAllocator());
static std::shared_ptr< ContextMTL > Create(const Flags &flags, const std::vector< std::string > &shader_library_paths, std::shared_ptr< const fml::SyncSwitch > is_gpu_disabled_sync_switch)
id< MTLDevice > GetMTLDevice() const