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),
43 };
45 impeller_flags,
46 (__bridge id<MTLDevice>)
device,
47 (__bridge id<MTLCommandQueue>)command_queue,
48 shader_mappings,
49 std::make_shared<fml::SyncSwitch>(false),
50 "Impeller Library"
51 );
53 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (MetalSDF).";
54 } else {
55 FML_LOG(IMPORTANT) <<
"Using the Impeller rendering backend (Metal).";
56 }
57
58 valid_ = !!context_;
59}
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)
#define FML_LOG(severity)
bool use_sdfs
Use SDFs for rendering.