Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
[platform/upstream/VK-GL-CTS.git] / modules / glshared / glsShaderConstExprTests.hpp
1 #ifndef _GLSSHADERCONSTEXPRTESTS_HPP
2 #define _GLSSHADERCONSTEXPRTESTS_HPP
3 /*-------------------------------------------------------------------------
4  * drawElements Quality Program OpenGL Shared Module
5  * -------------------------------------------------
6  *
7  * Copyright 2014 The Android Open Source Project
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  *//*!
22  * \file
23  * \brief Shared shader constant expression test components
24  *//*--------------------------------------------------------------------*/
25
26 #include "tcuDefs.hpp"
27 #include "gluShaderUtil.hpp"
28
29 #include <vector>
30
31 namespace tcu
32 {
33 class TestNode;
34 class TestContext;
35 }
36
37 namespace glu
38 {
39 class RenderContext;
40 }
41
42 namespace deqp
43 {
44 namespace gls
45 {
46 namespace ShaderConstExpr
47 {
48 using glu::DataType;
49
50 struct TestParams
51 {
52         const char*             name;
53         const char*             expression;
54
55         DataType                inType;
56         int                             minComponents;
57         int                             maxComponents;
58
59         DataType                outType;
60         float                   output;
61 };
62
63 enum TestShaderStage
64 {
65         SHADER_VERTEX = 1<<0,
66         SHADER_FRAGMENT = 1<<2,
67         SHADER_BOTH = SHADER_VERTEX | SHADER_FRAGMENT,
68 };
69
70 std::vector<tcu::TestNode*>             createTests             (tcu::TestContext&                      testContext,
71                                                                                                  glu::RenderContext&            renderContext,
72                                                                                                  const glu::ContextInfo&        contextInfo,
73                                                                                                  const TestParams*                      cases,
74                                                                                                  int                                            numCases,
75                                                                                                  glu::GLSLVersion                       version,
76                                                                                                  TestShaderStage                        testStage = SHADER_BOTH);
77
78 } // ShaderConstExpr
79 } // gls
80 } // deqp
81
82 #endif // _GLSSHADERCONSTEXPRTESTS_HPP