32 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),
40 std::make_shared<fml::NonOwnedMapping>(impeller_scene_shaders_data,
41 impeller_scene_shaders_length),
43 std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_data,
44 impeller_modern_shaders_length),
45 std::make_shared<fml::NonOwnedMapping>(impeller_framebuffer_blend_shaders_data,
46 impeller_framebuffer_blend_shaders_length),
50 (id<MTLCommandQueue>)command_queue,
52 std::make_shared<fml::SyncSwitch>(
false),
55 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (Metal).";
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)
#define IMPELLER_CA_METAL_LAYER_AVAILABLE