| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef GPU_GLES2_CONFORM_TEST_CONFIG_H_ |
| #define GPU_GLES2_CONFORM_TEST_CONFIG_H_ |
| |
| #include <EGL/egl.h> |
| |
| #include "base/macros.h" |
| |
| namespace egl { |
| |
| class Config { |
| public: |
| explicit Config(EGLint surface_type); |
| ~Config(); |
| bool Matches(const EGLint* attrib_list) const; |
| bool GetAttrib(EGLint attribute, EGLint* value) const; |
| static bool ValidateAttributeList(const EGLint* attrib_list); |
| |
| private: |
| // Total color component bits in the color buffer. |
| EGLint buffer_size_; |
| // Bits of Red in the color buffer. |
| EGLint red_size_; |
| // Bits of Green in the color buffer. |
| EGLint green_size_; |
| // Bits of Blue in the color buffer. |
| EGLint blue_size_; |
| // Bits of Luminance in the color buffer. |
| EGLint luminance_size_; |
| // Bits of Alpha in the color buffer. |
| EGLint alpha_size_; |
| // Bits of Alpha Mask in the mask buffer. |
| EGLint alpha_mask_size_; |
| // True if bindable to RGB textures. |
| EGLBoolean bind_to_texture_rgb_; |
| // True if bindable to RGBA textures. |
| EGLBoolean bind_to_texture_rgba_; |
| // Color buffer type. |
| EGLenum color_buffer_type_; |
| // Any caveats for the configuration. |
| EGLenum config_caveat_; |
| // Unique EGLConfig identifier. |
| EGLint config_id_; |
| // Whether contexts created with this config are conformant. |
| EGLint conformant_; |
| // Bits of Z in the depth buffer. |
| EGLint depth_size_; |
| // Frame buffer level. |
| EGLint level_; |
| // Maximum width of pbuffer. |
| EGLint max_pbuffer_width_; |
| // Maximum height of pbuffer. |
| EGLint max_pbuffer_height_; |
| // Maximum size of pbuffer. |
| EGLint max_pbuffer_pixels_; |
| // Minimum swap interval. |
| EGLint min_swap_interval_; |
| // Maximum swap interval. |
| EGLint max_swap_interval_; |
| // True if native rendering APIs can render to surface. |
| EGLBoolean native_renderable_; |
| // Handle of corresponding native visual. |
| EGLint native_visual_id_; |
| // Native visual type of the associated visual. |
| EGLint native_visual_type_; |
| // Which client rendering APIs are supported. |
| EGLint renderable_type_; |
| // Number of multisample buffers. |
| EGLint sample_buffers_; |
| // Number of samples per pixel. |
| EGLint samples_; |
| // Bits of Stencil in the stencil buffer. |
| EGLint stencil_size_; |
| // Which types of EGL surfaces are supported. |
| EGLint surface_type_; |
| // Type of transparency supported |
| EGLenum transparent_type_; |
| // Transparent red value |
| EGLint transparent_red_value_; |
| // Transparent green value |
| EGLint transparent_green_value_; |
| // Transparent blue value |
| EGLint transparent_blue_value_; |
| |
| DISALLOW_COPY_AND_ASSIGN(Config); |
| }; |
| |
| } // namespace egl |
| |
| #endif // GPU_GLES2_CONFORM_TEST_CONFIG_H_ |