- add sources.
[platform/framework/web/crosswalk.git] / src / gpu / gles2_conform_support / egl / config.cc
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.
4
5 #include "gpu/gles2_conform_support/egl/config.h"
6
7 namespace egl {
8
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_DONT_CARE),
18       bind_to_texture_rgba_(EGL_DONT_CARE),
19       color_buffer_type_(EGL_RGB_BUFFER),
20       config_caveat_(EGL_DONT_CARE),
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_DONT_CARE),
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) {
42 }
43
44 Config::~Config() {
45 }
46
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;
148   }
149   return true;
150 }
151
152 }  // namespace egl