Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: content/common/gpu_feature_flags.cc

Issue 6712048: Implement easy GPU feature status summary. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: First rev Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/gpu_feature_flags.h" 5 #include "content/common/gpu_feature_flags.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_util.h"
9 #include <vector>
8 10
9 const char GpuFeatureFlags::kGpuFeatureNameAccelerated2dCanvas[] = 11 const char GpuFeatureFlags::kGpuFeatureNameAccelerated2dCanvas[] =
10 "accelerated_2d_canvas"; 12 "accelerated_2d_canvas";
11 const char GpuFeatureFlags::kGpuFeatureNameAcceleratedCompositing[] = 13 const char GpuFeatureFlags::kGpuFeatureNameAcceleratedCompositing[] =
12 "accelerated_compositing"; 14 "accelerated_compositing";
13 const char GpuFeatureFlags::kGpuFeatureNameWebgl[] = "webgl"; 15 const char GpuFeatureFlags::kGpuFeatureNameWebgl[] = "webgl";
14 const char GpuFeatureFlags::kGpuFeatureNameMultisampling[] = "multisampling"; 16 const char GpuFeatureFlags::kGpuFeatureNameMultisampling[] = "multisampling";
15 const char GpuFeatureFlags::kGpuFeatureNameAll[] = "all"; 17 const char GpuFeatureFlags::kGpuFeatureNameAll[] = "all";
16 18
17 GpuFeatureFlags::GpuFeatureFlags() 19 GpuFeatureFlags::GpuFeatureFlags()
18 : flags_(0) { 20 : flags_(0) {
19 } 21 }
20 22
21 void GpuFeatureFlags::set_flags(uint32 flags) { 23 void GpuFeatureFlags::set_flags(uint32 flags) {
22 DCHECK_EQ(flags & (~kGpuFeatureAll), 0u); 24 DCHECK_EQ(flags & (~kGpuFeatureAll), 0u);
23 flags_ = flags; 25 flags_ = flags;
24 } 26 }
25 27
26 uint32 GpuFeatureFlags::flags() const { 28 uint32 GpuFeatureFlags::flags() const {
27 return flags_; 29 return flags_;
28 } 30 }
29 31
30 void GpuFeatureFlags::Combine(const GpuFeatureFlags& other) { 32 void GpuFeatureFlags::Combine(const GpuFeatureFlags& other) {
31 flags_ |= other.flags_; 33 flags_ |= other.flags_;
32 } 34 }
33 35
36 // static
34 GpuFeatureFlags::GpuFeatureType GpuFeatureFlags::StringToGpuFeatureType( 37 GpuFeatureFlags::GpuFeatureType GpuFeatureFlags::StringToGpuFeatureType(
35 const std::string& feature_string) { 38 const std::string& feature_string) {
36 if (feature_string == kGpuFeatureNameAccelerated2dCanvas) 39 if (feature_string == kGpuFeatureNameAccelerated2dCanvas)
37 return kGpuFeatureAccelerated2dCanvas; 40 return kGpuFeatureAccelerated2dCanvas;
38 else if (feature_string == kGpuFeatureNameAcceleratedCompositing) 41 else if (feature_string == kGpuFeatureNameAcceleratedCompositing)
39 return kGpuFeatureAcceleratedCompositing; 42 return kGpuFeatureAcceleratedCompositing;
40 else if (feature_string == kGpuFeatureNameWebgl) 43 else if (feature_string == kGpuFeatureNameWebgl)
41 return kGpuFeatureWebgl; 44 return kGpuFeatureWebgl;
42 else if (feature_string == kGpuFeatureNameMultisampling) 45 else if (feature_string == kGpuFeatureNameMultisampling)
43 return kGpuFeatureMultisampling; 46 return kGpuFeatureMultisampling;
44 else if (feature_string == kGpuFeatureNameAll) 47 else if (feature_string == kGpuFeatureNameAll)
45 return kGpuFeatureAll; 48 return kGpuFeatureAll;
46 return kGpuFeatureUnknown; 49 return kGpuFeatureUnknown;
47 } 50 }
48 51
52 // static
53 std::string GpuFeatureFlags::GpuFeatureTypeToUserFriendlyString(
54 GpuFeatureFlags::GpuFeatureType type) {
55 std::vector<std::string> matches;
56 if (type == kGpuFeatureAll) {
57 matches.push_back("All GPU features");
zmo 2011/04/07 20:46:06 If you don't care about the difference between "ac
58 } else {
59 if (kGpuFeatureAccelerated2dCanvas & type)
60 matches.push_back("Accelerated 2D Canvas");
61 if (kGpuFeatureAcceleratedCompositing & type)
62 matches.push_back("Accelerated Compositing");
63 if (kGpuFeatureWebgl & type)
64 matches.push_back("WebGL");
65 if (kGpuFeatureMultisampling & type)
66 matches.push_back("WebGL + Canvas Multisampling");
zmo 2011/04/07 20:46:06 I think only WebGL has Multisampling
67 if (!matches.size())
68 matches.push_back("Unknown feature");
Avi (use Gerrit) 2011/04/07 00:28:20 Gah. No, no, no. All user-visible text must go thr
69 }
70 return JoinString(matches, ',');
zmo 2011/04/07 20:46:06 There is no loop here, so why do you need a vector
71 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698