Home | History | Annotate | Download | only in egl
      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_
     93