13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _GLSSHADERCONSTEXPRTESTS_HPP
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _GLSSHADERCONSTEXPRTESTS_HPP
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL Shared Module
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 *
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *      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 Shared shader constant expression test components
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuDefs.hpp"
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluShaderUtil.hpp"
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <vector>
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace tcu
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass TestNode;
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass TestContext;
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace glu
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass RenderContext;
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gls
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace ShaderConstExpr
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing glu::DataType;
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyrystruct TestParams
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	const char*		name;
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	const char*		expression;
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	DataType		inType;
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	int				minComponents;
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	int				maxComponents;
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	DataType		outType;
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	float			output;
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyryenum TestShaderStage
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SHADER_VERTEX = 1<<0,
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SHADER_FRAGMENT = 1<<2,
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SHADER_BOTH = SHADER_VERTEX | SHADER_FRAGMENT,
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyrystd::vector<tcu::TestNode*>		createTests		(tcu::TestContext&			testContext,
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 glu::RenderContext&		renderContext,
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 const glu::ContextInfo&	contextInfo,
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 const TestParams*			cases,
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 int						numCases,
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 glu::GLSLVersion			version,
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry												 TestShaderStage			testStage = SHADER_BOTH);
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // ShaderConstExpr
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gls
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _GLSSHADERCONSTEXPRTESTS_HPP
83