JSONStringValueSerializer takes a StringPiece instead of std::string&.
[chromium-blink-merge.git] / gpu / gles2_conform_support / egl / config.cc
blobd6ce3072c982e5f01c9194d6f1dcc9f21622e042
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 #include "gpu/gles2_conform_support/egl/config.h"
7 namespace egl {
9 Config::Config()
10 : buffer_size_(0),
11 red_size_(0),
12 green_size_(0),
13 blue_size_(0),
14 luminance_size_(0),
15 alpha_size_(0),
16 alpha_mask_size_(0),
17 bind_to_texture_rgb_(EGL_FALSE),
18 bind_to_texture_rgba_(EGL_FALSE),
19 color_buffer_type_(EGL_RGB_BUFFER),
20 config_caveat_(EGL_NONE),
21 config_id_(EGL_DONT_CARE),
22 conformant_(EGL_OPENGL_ES2_BIT),
23 depth_size_(0),
24 level_(0),
25 max_pbuffer_width_(0),
26 max_pbuffer_height_(0),
27 max_pbuffer_pixels_(0),
28 min_swap_interval_(EGL_DONT_CARE),
29 max_swap_interval_(EGL_DONT_CARE),
30 native_renderable_(EGL_TRUE),
31 native_visual_id_(0),
32 native_visual_type_(EGL_DONT_CARE),
33 renderable_type_(EGL_OPENGL_ES2_BIT),
34 sample_buffers_(0),
35 samples_(0),
36 stencil_size_(0),
37 surface_type_(EGL_WINDOW_BIT),
38 transparent_type_(EGL_NONE),
39 transparent_red_value_(EGL_DONT_CARE),
40 transparent_green_value_(EGL_DONT_CARE),
41 transparent_blue_value_(EGL_DONT_CARE) {
44 Config::~Config() {
47 bool Config::GetAttrib(EGLint attribute, EGLint* value) const {
48 // TODO(alokp): Find out how to get correct values.
49 switch (attribute) {
50 case EGL_BUFFER_SIZE:
51 *value = buffer_size_;
52 break;
53 case EGL_RED_SIZE:
54 *value = red_size_;
55 break;
56 case EGL_GREEN_SIZE:
57 *value = green_size_;
58 break;
59 case EGL_BLUE_SIZE:
60 *value = blue_size_;
61 break;
62 case EGL_LUMINANCE_SIZE:
63 *value = luminance_size_;
64 break;
65 case EGL_ALPHA_SIZE:
66 *value = alpha_size_;
67 break;
68 case EGL_ALPHA_MASK_SIZE:
69 *value = alpha_mask_size_;
70 break;
71 case EGL_BIND_TO_TEXTURE_RGB:
72 *value = bind_to_texture_rgb_;
73 break;
74 case EGL_BIND_TO_TEXTURE_RGBA:
75 *value = bind_to_texture_rgba_;
76 break;
77 case EGL_COLOR_BUFFER_TYPE:
78 *value = color_buffer_type_;
79 break;
80 case EGL_CONFIG_CAVEAT:
81 *value = config_caveat_;
82 break;
83 case EGL_CONFIG_ID:
84 *value = config_id_;
85 break;
86 case EGL_CONFORMANT:
87 *value = conformant_;
88 break;
89 case EGL_DEPTH_SIZE:
90 *value = depth_size_;
91 break;
92 case EGL_LEVEL:
93 *value = level_;
94 break;
95 case EGL_MAX_PBUFFER_WIDTH:
96 *value = max_pbuffer_width_;
97 break;
98 case EGL_MAX_PBUFFER_HEIGHT:
99 *value = max_pbuffer_height_;
100 break;
101 case EGL_MAX_PBUFFER_PIXELS:
102 *value = max_pbuffer_pixels_;
103 break;
104 case EGL_MIN_SWAP_INTERVAL:
105 *value = min_swap_interval_;
106 break;
107 case EGL_MAX_SWAP_INTERVAL:
108 *value = max_swap_interval_;
109 break;
110 case EGL_NATIVE_RENDERABLE:
111 *value = native_renderable_;
112 break;
113 case EGL_NATIVE_VISUAL_ID:
114 *value = native_visual_id_;
115 break;
116 case EGL_NATIVE_VISUAL_TYPE:
117 *value = native_visual_type_;
118 break;
119 case EGL_RENDERABLE_TYPE:
120 *value = renderable_type_;
121 break;
122 case EGL_SAMPLE_BUFFERS:
123 *value = sample_buffers_;
124 break;
125 case EGL_SAMPLES:
126 *value = samples_;
127 break;
128 case EGL_STENCIL_SIZE:
129 *value = stencil_size_;
130 break;
131 case EGL_SURFACE_TYPE:
132 *value = surface_type_;
133 break;
134 case EGL_TRANSPARENT_TYPE:
135 *value = transparent_type_;
136 break;
137 case EGL_TRANSPARENT_RED_VALUE:
138 *value = transparent_red_value_;
139 break;
140 case EGL_TRANSPARENT_GREEN_VALUE:
141 *value = transparent_green_value_;
142 break;
143 case EGL_TRANSPARENT_BLUE_VALUE:
144 *value = transparent_blue_value_;
145 break;
146 default:
147 return false;
149 return true;
152 } // namespace egl