Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
dl_test_surface_provider.cc
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
6
7namespace flutter::testing {
8
9std::optional<DlSurfaceProvider::BackendType> DlSurfaceProvider::NameToBackend(
10 const std::string& name) {
11#define FLT_SURFACE_PROVIDER_HANDLE_BACKEND(name, BACKEND) \
12 { \
13 BackendType type = BackendType::k##BACKEND; \
14 if (name.compare(DlSurfaceProvider::BackendName(type)) == 0) { \
15 return type; \
16 } \
17 }
18
24
25#undef FLT_SURFACE_PROVIDER_HANDLE_BACKEND
26
27 return std::nullopt;
28}
29
31 switch (type) {
32 case BackendType::kSkiaSoftware:
33 return "SkiaSoftware";
34 case BackendType::kSkiaOpenGL:
35 return "SkiaOpenGL";
36 case BackendType::kSkiaMetal:
37 return "SkiaMetal";
38 case BackendType::kImpellerMetal:
39 return "ImpellerMetal";
40 case BackendType::kImpellerMetalSDF:
41 return "ImpellerMetalSDF";
42 }
43}
44
45std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::Create(
46 BackendType backend_type) {
47 switch (backend_type) {
48 case BackendType::kSkiaSoftware:
49 return CreateSkiaSoftware();
50 case BackendType::kSkiaOpenGL:
51 return CreateSkiaOpenGL();
52 case BackendType::kSkiaMetal:
53 return CreateSkiaMetal();
54 case BackendType::kImpellerMetal:
55 return CreateImpellerMetal();
56 case BackendType::kImpellerMetalSDF:
57 return CreateImpellerMetalSDF();
58 }
59}
60
61#ifndef ENABLE_SOFTWARE_BENCHMARKS
62std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::CreateSkiaSoftware() {
63 return nullptr;
64}
65#endif
66#ifndef ENABLE_OPENGL_BENCHMARKS
67std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::CreateSkiaOpenGL() {
68 return nullptr;
69}
70#endif
71#ifndef ENABLE_METAL_BENCHMARKS
72std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::CreateSkiaMetal() {
73 return nullptr;
74}
75#endif
76#ifndef IMPELLER_ENABLE_METAL
77std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::CreateImpellerMetal() {
78 return nullptr;
79}
80std::unique_ptr<DlSurfaceProvider> DlSurfaceProvider::CreateImpellerMetalSDF() {
81 return nullptr;
82}
83#endif
84
85} // namespace flutter::testing
static std::optional< BackendType > NameToBackend(const std::string &name)
static std::string BackendName(BackendType type)
static std::unique_ptr< DlSurfaceProvider > Create(BackendType backend_type)
#define FLT_SURFACE_PROVIDER_HANDLE_BACKEND(name, BACKEND)
DEF_SWITCHES_START aot vmservice shared library name
Definition switch_defs.h:27
impeller::ShaderType type