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