Flutter iOS Embedder
rendering_api_selection.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_RENDERING_API_SELECTION_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_RENDERING_API_SELECTION_H_
7 
8 #include <objc/runtime.h>
9 
10 #include "flutter/fml/macros.h"
11 
12 namespace flutter {
13 
14 enum class IOSRenderingAPI {
15  kSoftware,
16  kMetal,
17 };
18 
19 enum class IOSRenderingBackend {
20  kSkia,
21  kImpeller,
22 };
23 
24 // Pass force_software to force software rendering. This is only respected on
25 // simulators.
26 IOSRenderingAPI GetRenderingAPIForProcess(bool force_software);
27 
29 
30 } // namespace flutter
31 
32 // Flutter supports Metal on all devices with Apple A7 SoC or above that have
33 // been updated to or past iOS 10.0. The processor was selected as it is the
34 // first version at which Metal was supported. The iOS version floor was
35 // selected due to the availability of features used by Skia.
36 // Support for Metal on simulators was added by Apple in the SDK for iOS 13.
37 #if TARGET_OS_SIMULATOR
38 #define METAL_IOS_VERSION_BASELINE 13.0
39 #else
40 #define METAL_IOS_VERSION_BASELINE 10.0
41 #endif // TARGET_OS_SIMULATOR
42 
43 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_RENDERING_API_SELECTION_H_
flutter::IOSRenderingBackend::kSkia
@ kSkia
flutter::GetCoreAnimationLayerClassForRenderingAPI
Class GetCoreAnimationLayerClassForRenderingAPI(IOSRenderingAPI rendering_api)
Definition: rendering_api_selection.mm:63
flutter::IOSRenderingBackend
IOSRenderingBackend
Definition: rendering_api_selection.h:19
flutter::GetRenderingAPIForProcess
IOSRenderingAPI GetRenderingAPIForProcess(bool force_software)
Definition: rendering_api_selection.mm:33
flutter::IOSRenderingBackend::kImpeller
@ kImpeller
flutter
Definition: accessibility_bridge.h:28
flutter::IOSRenderingAPI
IOSRenderingAPI
Definition: rendering_api_selection.h:14
flutter::IOSRenderingAPI::kMetal
@ kMetal
flutter::IOSRenderingAPI::kSoftware
@ kSoftware