1e5c31af7Sopenharmony_ci#ifndef _GL3CTESTPACKAGES_HPP
2e5c31af7Sopenharmony_ci#define _GL3CTESTPACKAGES_HPP
3e5c31af7Sopenharmony_ci/*-------------------------------------------------------------------------
4e5c31af7Sopenharmony_ci * OpenGL Conformance Test Suite
5e5c31af7Sopenharmony_ci * -----------------------------
6e5c31af7Sopenharmony_ci *
7e5c31af7Sopenharmony_ci * Copyright (c) 2016 Google Inc.
8e5c31af7Sopenharmony_ci * Copyright (c) 2016 The Khronos Group Inc.
9e5c31af7Sopenharmony_ci *
10e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
11e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License.
12e5c31af7Sopenharmony_ci * You may obtain a copy of the License at
13e5c31af7Sopenharmony_ci *
14e5c31af7Sopenharmony_ci *      http://www.apache.org/licenses/LICENSE-2.0
15e5c31af7Sopenharmony_ci *
16e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
17e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
18e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and
20e5c31af7Sopenharmony_ci * limitations under the License.
21e5c31af7Sopenharmony_ci *
22e5c31af7Sopenharmony_ci */ /*!
23e5c31af7Sopenharmony_ci * \file
24e5c31af7Sopenharmony_ci * \brief OpenGL 3.x Test Packages.
25e5c31af7Sopenharmony_ci */ /*-------------------------------------------------------------------*/
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_ci#include "glcTestCase.hpp"
28e5c31af7Sopenharmony_ci#include "glcTestPackage.hpp"
29e5c31af7Sopenharmony_ci#include "gluRenderContext.hpp"
30e5c31af7Sopenharmony_ci#include "tcuDefs.hpp"
31e5c31af7Sopenharmony_ci
32e5c31af7Sopenharmony_cinamespace gl3cts
33e5c31af7Sopenharmony_ci{
34e5c31af7Sopenharmony_ci
35e5c31af7Sopenharmony_ciclass TestCaseWrapper : public tcu::TestCaseExecutor
36e5c31af7Sopenharmony_ci{
37e5c31af7Sopenharmony_cipublic:
38e5c31af7Sopenharmony_ci	TestCaseWrapper(deqp::TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
39e5c31af7Sopenharmony_ci	~TestCaseWrapper(void);
40e5c31af7Sopenharmony_ci
41e5c31af7Sopenharmony_ci	void init(tcu::TestCase* testCase, const std::string& path);
42e5c31af7Sopenharmony_ci	void deinit(tcu::TestCase* testCase);
43e5c31af7Sopenharmony_ci	tcu::TestNode::IterateResult iterate(tcu::TestCase* testCase);
44e5c31af7Sopenharmony_ci
45e5c31af7Sopenharmony_ciprivate:
46e5c31af7Sopenharmony_ci	deqp::TestPackage&				m_testPackage;
47e5c31af7Sopenharmony_ci	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
48e5c31af7Sopenharmony_ci};
49e5c31af7Sopenharmony_ci
50e5c31af7Sopenharmony_ciclass GL30TestPackage : public deqp::TestPackage
51e5c31af7Sopenharmony_ci{
52e5c31af7Sopenharmony_cipublic:
53e5c31af7Sopenharmony_ci	GL30TestPackage(tcu::TestContext& testCtx, const char* packageName,
54e5c31af7Sopenharmony_ci					const char*		 description	   = "OpenGL 3.0 Conformance Tests",
55e5c31af7Sopenharmony_ci					glu::ContextType renderContextType = glu::ContextType(3, 0, glu::PROFILE_CORE));
56e5c31af7Sopenharmony_ci
57e5c31af7Sopenharmony_ci	~GL30TestPackage(void);
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ci	tcu::TestCaseExecutor* createExecutor(void) const;
60e5c31af7Sopenharmony_ci
61e5c31af7Sopenharmony_ci	void init(void);
62e5c31af7Sopenharmony_ci
63e5c31af7Sopenharmony_ci	using deqp::TestPackage::getContext;
64e5c31af7Sopenharmony_ci};
65e5c31af7Sopenharmony_ci
66e5c31af7Sopenharmony_ciclass GL31TestPackage : public GL30TestPackage
67e5c31af7Sopenharmony_ci{
68e5c31af7Sopenharmony_cipublic:
69e5c31af7Sopenharmony_ci	GL31TestPackage(tcu::TestContext& testCtx, const char* packageName,
70e5c31af7Sopenharmony_ci					const char*		 description	   = "OpenGL 3.1 Conformance Tests",
71e5c31af7Sopenharmony_ci					glu::ContextType renderContextType = glu::ContextType(3, 1, glu::PROFILE_CORE, glu::CONTEXT_FORWARD_COMPATIBLE));
72e5c31af7Sopenharmony_ci
73e5c31af7Sopenharmony_ci	~GL31TestPackage(void);
74e5c31af7Sopenharmony_ci
75e5c31af7Sopenharmony_ci	void init(void);
76e5c31af7Sopenharmony_ci};
77e5c31af7Sopenharmony_ci
78e5c31af7Sopenharmony_ciclass GL32TestPackage : public GL31TestPackage
79e5c31af7Sopenharmony_ci{
80e5c31af7Sopenharmony_cipublic:
81e5c31af7Sopenharmony_ci	GL32TestPackage(tcu::TestContext& testCtx, const char* packageName,
82e5c31af7Sopenharmony_ci					const char*		 description	   = "OpenGL 3.2 Conformance Tests",
83e5c31af7Sopenharmony_ci					glu::ContextType renderContextType = glu::ContextType(3, 2, glu::PROFILE_CORE));
84e5c31af7Sopenharmony_ci	~GL32TestPackage(void);
85e5c31af7Sopenharmony_ci
86e5c31af7Sopenharmony_ci	void init(void);
87e5c31af7Sopenharmony_ci};
88e5c31af7Sopenharmony_ci
89e5c31af7Sopenharmony_ciclass GL33TestPackage : public GL32TestPackage
90e5c31af7Sopenharmony_ci{
91e5c31af7Sopenharmony_cipublic:
92e5c31af7Sopenharmony_ci	GL33TestPackage(tcu::TestContext& testCtx, const char* packageName,
93e5c31af7Sopenharmony_ci					const char*		 description	   = "OpenGL 3.3 Conformance Tests",
94e5c31af7Sopenharmony_ci					glu::ContextType renderContextType = glu::ContextType(3, 3, glu::PROFILE_CORE));
95e5c31af7Sopenharmony_ci	~GL33TestPackage(void);
96e5c31af7Sopenharmony_ci
97e5c31af7Sopenharmony_ci	void init(void);
98e5c31af7Sopenharmony_ci};
99e5c31af7Sopenharmony_ci
100e5c31af7Sopenharmony_ci} // gl3cts
101e5c31af7Sopenharmony_ci
102e5c31af7Sopenharmony_ci#endif // _GL3CTESTPACKAGES_HPP
103