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

Side by Side Diff: gpu/config/gpu_control_list.h

Issue 15745014: Move GPU device/driver info related code from content to gpu. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 7 years, 7 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
« no previous file with comments | « gpu/config/gpu_blacklist_unittest.cc ('k') | gpu/config/gpu_control_list.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #ifndef CONTENT_BROWSER_GPU_GPU_CONTROL_LIST_H_ 5 #ifndef GPU_CONFIG_GPU_CONTROL_LIST_H_
6 #define CONTENT_BROWSER_GPU_GPU_CONTROL_LIST_H_ 6 #define GPU_CONFIG_GPU_CONTROL_LIST_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/gtest_prod_util.h" 13 #include "base/gtest_prod_util.h"
14 #include "base/hash_tables.h" 14 #include "base/hash_tables.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/values.h" 17 #include "base/values.h"
18 #include "build/build_config.h" 18 #include "build/build_config.h"
19 #include "content/common/content_export.h" 19 #include "gpu/gpu_export.h"
20 20
21 namespace content { 21 namespace gpu {
22 struct GPUInfo; 22 struct GPUInfo;
23 23
24 class CONTENT_EXPORT GpuControlList { 24 class GPU_EXPORT GpuControlList {
25 public: 25 public:
26 enum OsType { 26 enum OsType {
27 kOsLinux, 27 kOsLinux,
28 kOsMacosx, 28 kOsMacosx,
29 kOsWin, 29 kOsWin,
30 kOsChromeOS, 30 kOsChromeOS,
31 kOsAndroid, 31 kOsAndroid,
32 kOsAny, 32 kOsAny,
33 kOsUnknown 33 kOsUnknown
34 }; 34 };
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 kBetween, // <= * <= 114 kBetween, // <= * <=
115 kEQ, // = 115 kEQ, // =
116 kLT, // < 116 kLT, // <
117 kLE, // <= 117 kLE, // <=
118 kGT, // > 118 kGT, // >
119 kGE, // >= 119 kGE, // >=
120 kAny, 120 kAny,
121 kUnknown // Indicates the data is invalid. 121 kUnknown // Indicates the data is invalid.
122 }; 122 };
123 123
124 class CONTENT_EXPORT VersionInfo { 124 class GPU_EXPORT VersionInfo {
125 public: 125 public:
126 // If version_style is empty, it defaults to kNumerical. 126 // If version_style is empty, it defaults to kNumerical.
127 VersionInfo(const std::string& version_op, 127 VersionInfo(const std::string& version_op,
128 const std::string& version_style, 128 const std::string& version_style,
129 const std::string& version_string, 129 const std::string& version_string,
130 const std::string& version_string2); 130 const std::string& version_string2);
131 ~VersionInfo(); 131 ~VersionInfo();
132 132
133 // Determines if a given version is included in the VersionInfo range. 133 // Determines if a given version is included in the VersionInfo range.
134 // "splitter" divides version string into segments. 134 // "splitter" divides version string into segments.
(...skipping 29 matching lines...) Expand all
164 static int Compare(const std::vector<std::string>& version, 164 static int Compare(const std::vector<std::string>& version,
165 const std::vector<std::string>& version_ref, 165 const std::vector<std::string>& version_ref,
166 VersionStyle version_style); 166 VersionStyle version_style);
167 167
168 NumericOp op_; 168 NumericOp op_;
169 VersionStyle version_style_; 169 VersionStyle version_style_;
170 std::vector<std::string> version_; 170 std::vector<std::string> version_;
171 std::vector<std::string> version2_; 171 std::vector<std::string> version2_;
172 }; 172 };
173 173
174 class CONTENT_EXPORT OsInfo { 174 class GPU_EXPORT OsInfo {
175 public: 175 public:
176 OsInfo(const std::string& os, 176 OsInfo(const std::string& os,
177 const std::string& version_op, 177 const std::string& version_op,
178 const std::string& version_string, 178 const std::string& version_string,
179 const std::string& version_string2); 179 const std::string& version_string2);
180 ~OsInfo(); 180 ~OsInfo();
181 181
182 // Determines if a given os/version is included in the OsInfo set. 182 // Determines if a given os/version is included in the OsInfo set.
183 bool Contains(OsType type, const std::string& version) const; 183 bool Contains(OsType type, const std::string& version) const;
184 184
185 // Determines if the VersionInfo contains valid information. 185 // Determines if the VersionInfo contains valid information.
186 bool IsValid() const; 186 bool IsValid() const;
187 187
188 OsType type() const; 188 OsType type() const;
189 189
190 // Maps string to OsType; returns kOsUnknown if it's not a valid os. 190 // Maps string to OsType; returns kOsUnknown if it's not a valid os.
191 static OsType StringToOsType(const std::string& os); 191 static OsType StringToOsType(const std::string& os);
192 192
193 private: 193 private:
194 OsType type_; 194 OsType type_;
195 scoped_ptr<VersionInfo> version_info_; 195 scoped_ptr<VersionInfo> version_info_;
196 }; 196 };
197 197
198 class CONTENT_EXPORT StringInfo { 198 class GPU_EXPORT StringInfo {
199 public: 199 public:
200 StringInfo(const std::string& string_op, const std::string& string_value); 200 StringInfo(const std::string& string_op, const std::string& string_value);
201 201
202 // Determines if a given string is included in the StringInfo. 202 // Determines if a given string is included in the StringInfo.
203 bool Contains(const std::string& value) const; 203 bool Contains(const std::string& value) const;
204 204
205 // Determines if the StringInfo contains valid information. 205 // Determines if the StringInfo contains valid information.
206 bool IsValid() const; 206 bool IsValid() const;
207 207
208 private: 208 private:
209 enum Op { 209 enum Op {
210 kContains, 210 kContains,
211 kBeginWith, 211 kBeginWith,
212 kEndWith, 212 kEndWith,
213 kEQ, // = 213 kEQ, // =
214 kUnknown // Indicates StringInfo data is invalid. 214 kUnknown // Indicates StringInfo data is invalid.
215 }; 215 };
216 216
217 // Maps string to Op; returns kUnknown if it's not a valid Op. 217 // Maps string to Op; returns kUnknown if it's not a valid Op.
218 static Op StringToOp(const std::string& string_op); 218 static Op StringToOp(const std::string& string_op);
219 219
220 Op op_; 220 Op op_;
221 std::string value_; 221 std::string value_;
222 }; 222 };
223 223
224 class CONTENT_EXPORT FloatInfo { 224 class GPU_EXPORT FloatInfo {
225 public: 225 public:
226 FloatInfo(const std::string& float_op, 226 FloatInfo(const std::string& float_op,
227 const std::string& float_value, 227 const std::string& float_value,
228 const std::string& float_value2); 228 const std::string& float_value2);
229 229
230 // Determines if a given float is included in the FloatInfo. 230 // Determines if a given float is included in the FloatInfo.
231 bool Contains(float value) const; 231 bool Contains(float value) const;
232 232
233 // Determines if the FloatInfo contains valid information. 233 // Determines if the FloatInfo contains valid information.
234 bool IsValid() const; 234 bool IsValid() const;
235 235
236 private: 236 private:
237 NumericOp op_; 237 NumericOp op_;
238 float value_; 238 float value_;
239 float value2_; 239 float value2_;
240 }; 240 };
241 241
242 class CONTENT_EXPORT IntInfo { 242 class GPU_EXPORT IntInfo {
243 public: 243 public:
244 IntInfo(const std::string& int_op, 244 IntInfo(const std::string& int_op,
245 const std::string& int_value, 245 const std::string& int_value,
246 const std::string& int_value2); 246 const std::string& int_value2);
247 247
248 // Determines if a given int is included in the IntInfo. 248 // Determines if a given int is included in the IntInfo.
249 bool Contains(int value) const; 249 bool Contains(int value) const;
250 250
251 // Determines if the IntInfo contains valid information. 251 // Determines if the IntInfo contains valid information.
252 bool IsValid() const; 252 bool IsValid() const;
253 253
254 private: 254 private:
255 NumericOp op_; 255 NumericOp op_;
256 int value_; 256 int value_;
257 int value2_; 257 int value2_;
258 }; 258 };
259 259
260 class CONTENT_EXPORT MachineModelInfo { 260 class GPU_EXPORT MachineModelInfo {
261 public: 261 public:
262 MachineModelInfo(const std::string& name_op, 262 MachineModelInfo(const std::string& name_op,
263 const std::string& name_value, 263 const std::string& name_value,
264 const std::string& version_op, 264 const std::string& version_op,
265 const std::string& version_string, 265 const std::string& version_string,
266 const std::string& version_string2); 266 const std::string& version_string2);
267 ~MachineModelInfo(); 267 ~MachineModelInfo();
268 268
269 // Determines if a given name/version is included in the MachineModelInfo. 269 // Determines if a given name/version is included in the MachineModelInfo.
270 bool Contains(const std::string& name, const std::string& version) const; 270 bool Contains(const std::string& name, const std::string& version) const;
271 271
272 // Determines if the MachineModelInfo contains valid information. 272 // Determines if the MachineModelInfo contains valid information.
273 bool IsValid() const; 273 bool IsValid() const;
274 274
275 private: 275 private:
276 scoped_ptr<StringInfo> name_info_; 276 scoped_ptr<StringInfo> name_info_;
277 scoped_ptr<VersionInfo> version_info_; 277 scoped_ptr<VersionInfo> version_info_;
278 }; 278 };
279 279
280 class GpuControlListEntry; 280 class GpuControlListEntry;
281 typedef scoped_refptr<GpuControlListEntry> ScopedGpuControlListEntry; 281 typedef scoped_refptr<GpuControlListEntry> ScopedGpuControlListEntry;
282 282
283 typedef base::hash_map<std::string, int> FeatureMap; 283 typedef base::hash_map<std::string, int> FeatureMap;
284 284
285 class CONTENT_EXPORT GpuControlListEntry 285 class GPU_EXPORT GpuControlListEntry
286 : public base::RefCounted<GpuControlListEntry> { 286 : public base::RefCounted<GpuControlListEntry> {
287 public: 287 public:
288 // Constructs GpuControlListEntry from DictionaryValue loaded from json. 288 // Constructs GpuControlListEntry from DictionaryValue loaded from json.
289 // Top-level entry must have an id number. Others are exceptions. 289 // Top-level entry must have an id number. Others are exceptions.
290 static ScopedGpuControlListEntry GetEntryFromValue( 290 static ScopedGpuControlListEntry GetEntryFromValue(
291 const base::DictionaryValue* value, bool top_level, 291 const base::DictionaryValue* value, bool top_level,
292 const FeatureMap& feature_map, 292 const FeatureMap& feature_map,
293 bool supports_feature_type_all); 293 bool supports_feature_type_all);
294 294
295 // Determines if a given os/gc/machine_model/driver is included in the 295 // Determines if a given os/gc/machine_model/driver is included in the
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 485
486 bool contains_unknown_fields_; 486 bool contains_unknown_fields_;
487 487
488 bool needs_more_info_; 488 bool needs_more_info_;
489 489
490 // The features a GpuControlList recognizes and handles. 490 // The features a GpuControlList recognizes and handles.
491 FeatureMap feature_map_; 491 FeatureMap feature_map_;
492 bool supports_feature_type_all_; 492 bool supports_feature_type_all_;
493 }; 493 };
494 494
495 } // namespace content 495 } // namespace gpu
496 496
497 #endif // CONTENT_BROWSER_GPU_GPU_CONTROL_LIST_H_ 497 #endif // GPU_CONFIG_GPU_CONTROL_LIST_H_
498 498
OLDNEW
« no previous file with comments | « gpu/config/gpu_blacklist_unittest.cc ('k') | gpu/config/gpu_control_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698