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