Fix missing dependency on sparse binds
[platform/upstream/VK-GL-CTS.git] / external / openglcts / modules / gles31 / es31cTextureStorageMultisampleGLCoverageTests.hpp
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