• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _ES31CTEXTURESTORAGEMULTISAMPLEGLCOVERAGETESTS_HPP
2 #define _ES31CTEXTURESTORAGEMULTISAMPLEGLCOVERAGETESTS_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  es31cTextureStorageMultisampleGLCoverageTests.hpp
29  * \brief Declares test classes for coverage conformance tests for
30  *        multisample texture functionality (ES3.1 only)
31  */ /*-------------------------------------------------------------------*/
32 
33 #include "es31cTextureStorageMultisampleTests.hpp"
34 
35 namespace glcts
36 {
37 /** Test case: GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_COLOR_TEXTURE_SAMPLES,
38  *             GL_MAX_DEPTH_TEXTURE_SAMPLES, GL_MAX_INTEGER_SAMPLES,
39  *             GL_TEXTURE_BINDING_2D_MULTISAMPLE and GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES
40  *             are recognized by glGet*() functions.
41  */
42 class GLCoverageExtensionSpecificEnumsAreRecognizedTest : public glcts::TestCase
43 {
44 public:
45 	/* Public methods */
46 	GLCoverageExtensionSpecificEnumsAreRecognizedTest(Context& context);
47 
48 	virtual void						 deinit();
49 	virtual tcu::TestNode::IterateResult iterate();
50 
51 private:
52 	/* Private methods */
53 
54 	/* Private fields */
55 	glw::GLboolean gl_oes_texture_storage_multisample_2d_array_supported;
56 	glw::GLuint	to_id_2d_multisample;
57 	glw::GLuint	to_id_2d_multisample_array;
58 };
59 
60 /** Test case: glGetTexParameter*() should accept GL_TEXTURE_2D_MULTISAMPLE
61  and GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES texture targets. Default
62  state information should be as per-spec for both targets.
63  */
64 class GLCoverageGLGetTexParameterReportsCorrectDefaultValuesForMultisampleTextureTargets : public glcts::TestCase
65 {
66 public:
67 	/* Public methods */
68 	GLCoverageGLGetTexParameterReportsCorrectDefaultValuesForMultisampleTextureTargets(Context& context);
69 
70 	virtual void						 deinit();
71 	virtual tcu::TestNode::IterateResult iterate();
72 
73 private:
74 	/* Private methods */
75 	glw::GLboolean gl_oes_texture_storage_multisample_2d_array_supported;
76 	glw::GLuint	to_id_2d;
77 	glw::GLuint	to_id_2d_array;
78 };
79 
80 /** Test case: Checks disabled/enabled status of GL_SAMPLE_MASK mode is reported correctly.
81  */
82 class GLCoverageGLSampleMaskModeStatusIsReportedCorrectlyTest : public glcts::TestCase
83 {
84 public:
85 	/* Public methods */
86 	GLCoverageGLSampleMaskModeStatusIsReportedCorrectlyTest(Context& context);
87 
88 	virtual tcu::TestNode::IterateResult iterate();
89 };
90 
91 /** Test case: glTexParameter*() should not generate an error if application
92  *             attempts to set zero texture mipmap base level for
93  *             GL_TEXTURE_2D_MULTISAMPLE and
94  *             GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES
95  *             texture targets.
96  */
97 class GLCoverageGLTexParameterHandlersAcceptZeroBaseLevelForExtensionSpecificTextureTargetsTest : public glcts::TestCase
98 {
99 public:
100 	/* Public methods */
101 	GLCoverageGLTexParameterHandlersAcceptZeroBaseLevelForExtensionSpecificTextureTargetsTest(Context& context);
102 
103 	virtual void						 deinit();
104 	virtual tcu::TestNode::IterateResult iterate();
105 
106 private:
107 	/* Private methods */
108 	void initInternals();
109 
110 	/* Private variables */
111 	bool		are_2d_array_multisample_tos_supported;
112 	glw::GLuint to_id_2d;
113 	glw::GLuint to_id_2d_array;
114 };
115 } /* glcts namespace */
116 
117 #endif // _ES31CTEXTURESTORAGEMULTISAMPLEGLCOVERAGETESTS_HPP
118