- add sources.
[platform/framework/web/crosswalk.git] / src / gpu / gles2_conform_support / egl / config.h
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 #ifndef GPU_GLES2_CONFORM_TEST_CONFIG_H_
6 #define GPU_GLES2_CONFORM_TEST_CONFIG_H_
7
8 #include <EGL/egl.h>
9
10 #include "base/basictypes.h"
11
12 namespace egl {
13
14 class Config {
15  public:
16   Config();
17   ~Config();
18
19   bool GetAttrib(EGLint attribute, EGLint* value) const;
20
21  private:
22   // Total color component bits in the color buffer.
23   EGLint buffer_size_;
24   // Bits of Red in the color buffer.
25   EGLint red_size_;
26   // Bits of Green in the color buffer.
27   EGLint green_size_;
28   // Bits of Blue in the color buffer.
29   EGLint blue_size_;
30   // Bits of Luminance in the color buffer.
31   EGLint luminance_size_;
32   // Bits of Alpha in the color buffer.
33   EGLint alpha_size_;
34   // Bits of Alpha Mask in the mask buffer.
35   EGLint alpha_mask_size_;
36   // True if bindable to RGB textures.
37   EGLBoolean bind_to_texture_rgb_;
38   // True if bindable to RGBA textures.
39   EGLBoolean bind_to_texture_rgba_;
40   // Color buffer type.
41   EGLenum color_buffer_type_;
42   // Any caveats for the configuration.
43   EGLenum config_caveat_;
44   // Unique EGLConfig identifier.
45   EGLint config_id_;
46   // Whether contexts created with this config are conformant.
47   EGLint conformant_;
48   // Bits of Z in the depth buffer.
49   EGLint depth_size_;
50   // Frame buffer level.
51   EGLint level_;
52   // Maximum width of pbuffer.
53   EGLint max_pbuffer_width_;
54   // Maximum height of pbuffer.
55   EGLint max_pbuffer_height_;
56   // Maximum size of pbuffer.
57   EGLint max_pbuffer_pixels_;
58   // Minimum swap interval.
59   EGLint min_swap_interval_;
60   // Maximum swap interval.
61   EGLint max_swap_interval_;
62   // True if native rendering APIs can render to surface.
63   EGLBoolean native_renderable_;
64   // Handle of corresponding native visual.
65   EGLint native_visual_id_;
66   // Native visual type of the associated visual.
67   EGLint native_visual_type_;
68   // Which client rendering APIs are supported.
69   EGLint renderable_type_;
70   // Number of multisample buffers.
71   EGLint sample_buffers_;
72   // Number of samples per pixel.
73   EGLint samples_;
74   // Bits of Stencil in the stencil buffer.
75   EGLint stencil_size_;
76   // Which types of EGL surfaces are supported.
77   EGLint surface_type_;
78   // Type of transparency supported
79   EGLenum transparent_type_;
80   // Transparent red value
81   EGLint transparent_red_value_;
82   // Transparent green value
83   EGLint transparent_green_value_;
84   // Transparent blue value
85   EGLint transparent_blue_value_;
86
87   DISALLOW_COPY_AND_ASSIGN(Config);
88 };
89
90 }  // namespace egl
91
92 #endif  // GPU_GLES2_CONFORM_TEST_CONFIG_H_