blob: 53bb56821812226be2f4e0c086e373a3f43f7c7f [file] [log] [blame]
// 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:
Config();
~Config();
bool GetAttrib(EGLint attribute, EGLint* value) const;
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_