Flutter Engine
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  kOpenGLES,
17  kMetal,
18 };
19 
20 // Pass force_software to force software rendering. This is only respected on
21 // simulators.
22 IOSRenderingAPI GetRenderingAPIForProcess(bool force_software);
23 
25 
26 } // namespace flutter
27 
28 // Flutter supports Metal on all devices with Apple A7 SoC or above that have
29 // been updated to or past iOS 10.0. The processor was selected as it is the
30 // first version at which Metal was supported. The iOS version floor was
31 // selected due to the availability of features used by Skia.
32 // Support for Metal on simulators was added by Apple in the SDK for iOS 13.
33 #if TARGET_OS_SIMULATOR
34 #define METAL_IOS_VERSION_BASELINE 13.0
35 #else
36 #define METAL_IOS_VERSION_BASELINE 10.0
37 #endif // TARGET_OS_SIMULATOR
38 
39 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_RENDERING_API_SELECTION_H_
Class GetCoreAnimationLayerClassForRenderingAPI(IOSRenderingAPI rendering_api)
IOSRenderingAPI GetRenderingAPIForProcess(bool force_software)