11 #if SHELL_ENABLE_METAL
14 #endif // SHELL_ENABLE_METAL
19 const fml::scoped_nsobject<CALayer>& layer) {
23 #if SHELL_ENABLE_METAL
25 if ([layer.get() isKindOfClass:[CAMetalLayer
class]]) {
26 switch (context->GetBackend()) {
28 return std::make_unique<IOSSurfaceMetalSkia>(
29 fml::scoped_nsobject<CAMetalLayer>(
30 reinterpret_cast<CAMetalLayer*
>([layer.get() retain])),
35 return std::make_unique<IOSSurfaceMetalImpeller>(
36 fml::scoped_nsobject<CAMetalLayer>(
37 reinterpret_cast<CAMetalLayer*
>([layer.get() retain])),
43 #endif // SHELL_ENABLE_METAL
45 return std::make_unique<IOSSurfaceSoftware>(layer,
51 : ios_context_(std::move(ios_context)) {
52 FML_DCHECK(ios_context_);