15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef GPU_GLES2_CONFORM_TEST_CONFIG_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GPU_GLES2_CONFORM_TEST_CONFIG_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <EGL/egl.h> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace egl { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Config { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Config(); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~Config(); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool GetAttrib(EGLint attribute, EGLint* value) const; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Total color component bits in the color buffer. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint buffer_size_; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Red in the color buffer. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint red_size_; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Green in the color buffer. 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint green_size_; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Blue in the color buffer. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint blue_size_; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Luminance in the color buffer. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint luminance_size_; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Alpha in the color buffer. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint alpha_size_; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Alpha Mask in the mask buffer. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint alpha_mask_size_; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if bindable to RGB textures. 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLBoolean bind_to_texture_rgb_; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if bindable to RGBA textures. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLBoolean bind_to_texture_rgba_; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Color buffer type. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLenum color_buffer_type_; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Any caveats for the configuration. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLenum config_caveat_; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Unique EGLConfig identifier. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint config_id_; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether contexts created with this config are conformant. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint conformant_; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Z in the depth buffer. 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint depth_size_; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Frame buffer level. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint level_; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Maximum width of pbuffer. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint max_pbuffer_width_; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Maximum height of pbuffer. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint max_pbuffer_height_; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Maximum size of pbuffer. 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint max_pbuffer_pixels_; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Minimum swap interval. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint min_swap_interval_; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Maximum swap interval. 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint max_swap_interval_; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if native rendering APIs can render to surface. 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLBoolean native_renderable_; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Handle of corresponding native visual. 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint native_visual_id_; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Native visual type of the associated visual. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint native_visual_type_; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Which client rendering APIs are supported. 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint renderable_type_; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Number of multisample buffers. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint sample_buffers_; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Number of samples per pixel. 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint samples_; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bits of Stencil in the stencil buffer. 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint stencil_size_; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Which types of EGL surfaces are supported. 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint surface_type_; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Type of transparency supported 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLenum transparent_type_; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Transparent red value 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint transparent_red_value_; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Transparent green value 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint transparent_green_value_; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Transparent blue value 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EGLint transparent_blue_value_; 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(Config); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace egl 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // GPU_GLES2_CONFORM_TEST_CONFIG_H_ 93