1#ifndef _ES31CTEXTURESTORAGEMULTISAMPLEGETMULTISAMPLEFVTESTS_HPP
2#define _ES31CTEXTURESTORAGEMULTISAMPLEGETMULTISAMPLEFVTESTS_HPP
3/*-------------------------------------------------------------------------
4 * OpenGL Conformance Test Suite
5 * -----------------------------
6 *
7 * Copyright (c) 2014-2016 The Khronos Group Inc.
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
24 */ /*-------------------------------------------------------------------*/
25
26/**
27 */ /*!
28 * \file  es31cTextureStorageMultisampleGetMultisamplefvTests.hpp
29 * \brief Declares test classes for glGetMultisamplefv() conformance
30 *        tests. (ES3.1 only)
31 */ /*-------------------------------------------------------------------*/
32
33#include "es31cTextureStorageMultisampleTests.hpp"
34
35namespace glcts
36{
37/** Test case: GL_INVALID_VALUE error is reported if index argument is equal to GL_SAMPLES value */
38class MultisampleTextureGetMultisamplefvIndexEqualGLSamplesRejectedTest : public glcts::TestCase
39{
40public:
41	/* Public methods */
42	MultisampleTextureGetMultisamplefvIndexEqualGLSamplesRejectedTest(Context& context);
43
44	virtual tcu::TestNode::IterateResult iterate();
45};
46
47/** Test case: GL_INVALID_VALUE error is reported if index argument is greater than GL_SAMPLES value */
48class MultisampleTextureGetMultisamplefvIndexGreaterGLSamplesRejectedTest : public glcts::TestCase
49{
50public:
51	/* Public methods */
52	MultisampleTextureGetMultisamplefvIndexGreaterGLSamplesRejectedTest(Context& context);
53
54	virtual tcu::TestNode::IterateResult iterate();
55};
56
57/** Test case: GL_INVALID_ENUM error is reported for invalid pname.*/
58class MultisampleTextureGetMultisamplefvInvalidPnameRejectedTest : public glcts::TestCase
59{
60public:
61	/* Public methods */
62	MultisampleTextureGetMultisamplefvInvalidPnameRejectedTest(Context& context);
63
64	virtual tcu::TestNode::IterateResult iterate();
65};
66
67/** Test case: NULL val arguments accepted for valid glGetMultisamplefv() calls. */
68class MultisampleTextureGetMultisamplefvNullValArgumentsAcceptedTest : public glcts::TestCase
69{
70public:
71	/* Public methods */
72	MultisampleTextureGetMultisamplefvNullValArgumentsAcceptedTest(Context& context);
73
74	virtual tcu::TestNode::IterateResult iterate();
75	virtual void						 deinit();
76
77private:
78	glw::GLuint fbo_id;
79	glw::GLuint to_2d_multisample_id;
80};
81
82/** Test case: Spec-wise correct values are reported for valid
83 *             calls with GL_SAMPLE_POSITION pname.
84 **/
85class MultisampleTextureGetMultisamplefvSamplePositionValuesValidationTest : public glcts::TestCase
86{
87public:
88	/* Public methods */
89	MultisampleTextureGetMultisamplefvSamplePositionValuesValidationTest(Context& context);
90
91	virtual tcu::TestNode::IterateResult iterate();
92};
93} /* glcts namespace */
94
95#endif // _ES31CTEXTURESTORAGEMULTISAMPLEGETMULTISAMPLEFVTESTS_HPP
96