1 /*-------------------------------------------------------------------------
2  * OpenGL Conformance Test Suite
3  * -----------------------------
4  *
5  * Copyright (c) 2014-2016 The Khronos Group Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */ /*!
20  * \file
21  * \brief
22  */ /*-------------------------------------------------------------------*/
23 
24 #include "esextcTessellationShaderTests.hpp"
25 #include "esextcTessellationShaderBarrier.hpp"
26 #include "esextcTessellationShaderErrors.hpp"
27 #include "esextcTessellationShaderInvariance.hpp"
28 #include "esextcTessellationShaderIsolines.hpp"
29 #include "esextcTessellationShaderMaxPatchVertices.hpp"
30 #include "esextcTessellationShaderPoints.hpp"
31 #include "esextcTessellationShaderPrimitiveCoverage.hpp"
32 #include "esextcTessellationShaderProgramInterfaces.hpp"
33 #include "esextcTessellationShaderProperties.hpp"
34 #include "esextcTessellationShaderQuads.hpp"
35 #include "esextcTessellationShaderTCTE.hpp"
36 #include "esextcTessellationShaderTessellation.hpp"
37 #include "esextcTessellationShaderTriangles.hpp"
38 #include "esextcTessellationShaderVertexOrdering.hpp"
39 #include "esextcTessellationShaderVertexSpacing.hpp"
40 #include "esextcTessellationShaderWinding.hpp"
41 #include "esextcTessellationShaderXFB.hpp"
42 
43 namespace glcts
44 {
45 
46 /** Constructor
47  *
48  * @param context       Test context
49  * @param glslVersion   GLSL version
50  **/
TessellationShaderTests(glcts::Context & context,const ExtParameters & extParams)51 TessellationShaderTests::TessellationShaderTests(glcts::Context &context, const ExtParameters &extParams)
52     : TestCaseGroupBase(context, extParams, "tessellation_shader", "EXT_tessellation_shader tests")
53 {
54     /* No implementation needed */
55 }
56 
57 /**
58  * Initializes test groups for geometry shader tests
59  **/
init(void)60 void TessellationShaderTests::init(void)
61 {
62     TestCaseGroupBase *vertexGroup = new TestCaseGroupBase(m_context, m_extParams, "vertex", "");
63     vertexGroup->addChild(new TessellationShaderVertexOrdering(m_context, m_extParams));
64     vertexGroup->addChild(new TessellationShaderVertexSpacing(m_context, m_extParams));
65     addChild(vertexGroup);
66 
67     TestCaseGroupBase *singleGroup = new TestCaseGroupBase(m_context, m_extParams, "single", "");
68 
69     singleGroup->addChild(new TessellationShaderPropertiesDefaultContextWideValues(m_context, m_extParams));
70 
71     singleGroup->addChild(new TessellationShadersIsolines(m_context, m_extParams));
72 
73     singleGroup->addChild(new TessellationShaderProgramInterfaces(m_context, m_extParams));
74 
75     singleGroup->addChild(new TessellationShaderPropertiesProgramObject(m_context, m_extParams));
76     singleGroup->addChild(new TessellationShaderXFB(m_context, m_extParams));
77     singleGroup->addChild(new TessellationShaderMaxPatchVertices(m_context, m_extParams));
78     singleGroup->addChild(new TessellationShaderPrimitiveCoverage(m_context, m_extParams));
79     addChild(singleGroup);
80 
81     addChild(new TessellationShaderQuadsTests(m_context, m_extParams));
82     addChild(new TessellationShaderTCTETests(m_context, m_extParams));
83     addChild(new TessellationShaderTessellationTests(m_context, m_extParams));
84     addChild(new TessellationShaderTrianglesTests(m_context, m_extParams));
85     addChild(new TessellationShaderPointsTests(m_context, m_extParams));
86     addChild(new TessellationShaderBarrierTests(m_context, m_extParams));
87     addChild(new TessellationShaderErrors(m_context, m_extParams));
88     addChild(new TessellationShaderInvarianceTests(m_context, m_extParams));
89     addChild(new TesselationShaderWindingTests(m_context, m_extParams));
90 }
91 
92 } // namespace glcts
93