1 // Copyright 2020 The Chromium 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 #include "components/viz/test/test_types.h"
6
7 #include "components/viz/test/buildflags.h"
8
9 namespace viz {
10
11 namespace {
12
13 // Provides a test renderer suffix appropriate for |type|.
RendererTypeTestSuffix(RendererType type)14 const char* RendererTypeTestSuffix(RendererType type) {
15 switch (type) {
16 case RendererType::kGL:
17 return "GL";
18 case RendererType::kSkiaGL:
19 return "SkiaGL";
20 case RendererType::kSkiaVk:
21 return "SkiaVulkan";
22 case RendererType::kSkiaDawn:
23 return "SkiaDawn";
24 case RendererType::kSoftware:
25 return "Software";
26 }
27 }
28
GetRendererTypes(bool include_software,bool include_dawn,bool skia_only)29 std::vector<RendererType> GetRendererTypes(bool include_software,
30 bool include_dawn,
31 bool skia_only) {
32 std::vector<RendererType> types;
33 if (include_software && !skia_only)
34 types.push_back(RendererType::kSoftware);
35 #if BUILDFLAG(ENABLE_GL_BACKEND_TESTS)
36 if (!skia_only)
37 types.push_back(RendererType::kGL);
38 types.push_back(RendererType::kSkiaGL);
39 #endif
40 #if BUILDFLAG(ENABLE_VULKAN_BACKEND_TESTS)
41 types.push_back(RendererType::kSkiaVk);
42 #endif
43 #if BUILDFLAG(ENABLE_DAWN_BACKEND_TESTS)
44 if (include_dawn)
45 types.push_back(RendererType::kSkiaDawn);
46 #endif
47 return types;
48 }
49
50 } // namespace
51
PrintTo(RendererType type,std::ostream * os)52 void PrintTo(RendererType type, std::ostream* os) {
53 *os << RendererTypeTestSuffix(type);
54 }
55
GetRendererTypes()56 std::vector<RendererType> GetRendererTypes() {
57 return GetRendererTypes(true, true, false);
58 }
59
GetRendererTypesNoDawn()60 std::vector<RendererType> GetRendererTypesNoDawn() {
61 return GetRendererTypes(true, false, false);
62 }
63
GetGpuRendererTypes()64 std::vector<RendererType> GetGpuRendererTypes() {
65 return GetRendererTypes(false, true, false);
66 }
67
GetGpuRendererTypesNoDawn()68 std::vector<RendererType> GetGpuRendererTypesNoDawn() {
69 return GetRendererTypes(false, false, false);
70 }
71
GetRendererTypesSkiaOnly()72 std::vector<RendererType> GetRendererTypesSkiaOnly() {
73 return GetRendererTypes(false, true, true);
74 }
75
76 } // namespace viz
77