Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / gpu / command_buffer / service / gles2_cmd_validation.h
blob22ee2da0d0d7c424f59eae562d9cb6d4cecf1aa0
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
3 // found in the LICENSE file.
5 // Contains various validation functions for the GLES2 service.
7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_H_
8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_H_
10 #include <algorithm>
11 #include <vector>
12 #define GLES2_GPU_SERVICE 1
13 #include "gpu/command_buffer/common/gles2_cmd_format.h"
15 namespace gpu {
16 namespace gles2 {
18 // ValueValidator returns true if a value is valid.
19 template <typename T>
20 class ValueValidator {
21 public:
22 ValueValidator() {}
24 ValueValidator(const T* valid_values, int num_values) {
25 for (int ii = 0; ii < num_values; ++ii) {
26 AddValue(valid_values[ii]);
30 void AddValue(const T value) {
31 if (!IsValid(value)) {
32 valid_values_.push_back(value);
36 bool IsValid(const T value) const {
37 return std::find(valid_values_.begin(), valid_values_.end(), value) !=
38 valid_values_.end();
41 const std::vector<T>& GetValues() const {
42 return valid_values_;
45 private:
46 std::vector<T> valid_values_;
49 struct Validators {
50 Validators();
51 #include "gpu/command_buffer/service/gles2_cmd_validation_autogen.h"
54 } // namespace gles2
55 } // namespace gpu
57 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_H_