31 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder,
34 metal_dispatch_table_(
std::move(metal_dispatch_table)),
35 external_view_embedder_(
std::move(external_view_embedder)) {
36 std::vector<std::shared_ptr<fml::Mapping>> shader_mappings = {
37 std::make_shared<fml::NonOwnedMapping>(impeller_entity_shaders_data,
38 impeller_entity_shaders_length),
39 std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_data,
40 impeller_modern_shaders_length),
41 std::make_shared<fml::NonOwnedMapping>(impeller_framebuffer_blend_shaders_data,
42 impeller_framebuffer_blend_shaders_length),
46 (__bridge id<MTLDevice>)
device,
47 (__bridge id<MTLCommandQueue>)command_queue,
49 std::make_shared<fml::SyncSwitch>(
false),
53 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (MetalSDF).";
55 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (Metal).";
78 auto surface = std::make_unique<GPUSurfaceMetalImpeller>(
this, aiks_context_, render_to_surface);
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)
static std::shared_ptr< TypographerContext > Make()