13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _EGLUCONFIGINFO_HPP 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _EGLUCONFIGINFO_HPP 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program Tester Core 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * ---------------------------------------- 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License. 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 13baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License. 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*! 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief EGL config info. 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuDefs.hpp" 273c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulos#include "eglwDefs.hpp" 28baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos#include "eglwEnums.hpp" 293c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulos 303c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulosnamespace eglw 313c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulos{ 323c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulosclass Library; 333c67e4f0ec73f9c30c6b2ed2adfbfe7faaf576a4Pyry Haulos} 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace eglu 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ConfigInfo 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 41baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos // Core attributes 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 bufferSize; 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 redSize; 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 greenSize; 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 blueSize; 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 luminanceSize; 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 alphaSize; 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 alphaMaskSize; 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 bindToTextureRGB; 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 bindToTextureRGBA; 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 colorBufferType; 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 configCaveat; 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 configId; 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 conformant; 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 depthSize; 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 level; 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 maxPbufferWidth; 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 maxPbufferHeight; 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 maxSwapInterval; 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 minSwapInterval; 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 nativeRenderable; 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 nativeVisualId; 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 nativeVisualType; 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 renderableType; 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 sampleBuffers; 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 samples; 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 stencilSize; 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 surfaceType; 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 transparentType; 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 transparentRedValue; 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 transparentGreenValue; 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 transparentBlueValue; 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 74baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos // Extension attributes - set by queryExtConfigInfo() 75baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos 76baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos // EGL_EXT_yuv_surface 77baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deUint32 yuvOrder; 78baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deInt32 yuvNumberOfPlanes; 79baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deUint32 yuvSubsample; 80baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deUint32 yuvDepthRange; 81baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deUint32 yuvCscStandard; 82baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos deInt32 yuvPlaneBpp; 83baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos 8408d24954e0c75c3e6a1d2ba231bd09915d5c7ecdMark Adams // EGL_EXT_pixel_format_float 8508d24954e0c75c3e6a1d2ba231bd09915d5c7ecdMark Adams deUint32 colorComponentType; 8608d24954e0c75c3e6a1d2ba231bd09915d5c7ecdMark Adams 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ConfigInfo (void) 88baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos : bufferSize (0) 89baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , redSize (0) 90baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , greenSize (0) 91baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , blueSize (0) 92baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , luminanceSize (0) 93baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , alphaSize (0) 94baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , alphaMaskSize (0) 95baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , bindToTextureRGB (0) 96baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , bindToTextureRGBA (0) 97baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , colorBufferType (0) 98baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , configCaveat (0) 99baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , configId (0) 100baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , conformant (0) 101baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , depthSize (0) 102baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , level (0) 103baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , maxPbufferWidth (0) 104baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , maxPbufferHeight (0) 105baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , maxSwapInterval (0) 106baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , minSwapInterval (0) 107baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , nativeRenderable (0) 108baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , nativeVisualId (0) 109baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , nativeVisualType (0) 110baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , renderableType (0) 111baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , sampleBuffers (0) 112baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , samples (0) 113baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , stencilSize (0) 114baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , surfaceType (0) 115baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , transparentType (0) 116baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , transparentRedValue (0) 117baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , transparentGreenValue (0) 118baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , transparentBlueValue (0) 119baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvOrder (EGL_NONE) 120baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvNumberOfPlanes (0) 121baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvSubsample (EGL_NONE) 122baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvDepthRange (EGL_NONE) 123baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvCscStandard (EGL_NONE) 124baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulos , yuvPlaneBpp (EGL_YUV_PLANE_BPP_0_EXT) 12508d24954e0c75c3e6a1d2ba231bd09915d5c7ecdMark Adams , colorComponentType (EGL_NONE) 1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deInt32 getAttribute (deUint32 attribute) const; 1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 132baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulosvoid queryCoreConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config, ConfigInfo* dst); 133baea2158190b91fcf5d1aa78628dbad01d52a3cePyry Haulosvoid queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config, ConfigInfo* dst); 1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // eglu 1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _EGLUCONFIGINFO_HPP 138