1 #ifndef _ESEXTCTEXTUREBORDERCLAMPPARAMETERTEXTUREBORDERCOLOR_HPP 2 #define _ESEXTCTEXTUREBORDERCLAMPPARAMETERTEXTUREBORDERCOLOR_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 * \file esextcTextureBorderClampParameterTextureBorderColor.hpp 28 * \brief Verify that GL_TEXTURE_BORDER_COLOR_EXT state is correctly retrieved 29 * by glGetSamplerParameter*() and glGetTexParameter*() functions. (Test 6) 30 */ /*-------------------------------------------------------------------*/ 31 32 #include "esextcTextureBorderClampBase.hpp" 33 34 namespace glcts 35 { 36 /** Implementation of Test 6 from CTS_EXT_texture_border_clamp. Description follows 37 * 38 * Verify that GL_TEXTURE_BORDER_COLOR_EXT state is correctly retrieved 39 * by glGetSamplerParameter*() and glGetTexParameter*() functions. 40 * 41 * Category: Functional tests; 42 * Optional dependency on EXT_texture_cube_map_array. 43 * Priority: Must-have. 44 * 45 * Verify default border color is set to (0.0, 0.0, 0.0, 0.0) and 46 * (0, 0, 0, 0). 47 * 48 * Verify setting signed integer border color of (-1, -2, 3, 4) using 49 * glSamplerParameterIivEXT() / glTexParameterIivEXT() call affects the values 50 * later reported by glGetSamplerParameterIivEXT() and glGetTexParameterIivEXT(). 51 * These values should match. 52 * 53 * Verify setting unsigned integer border color of (1, 2, 3, 4) using 54 * glSamplerParameterIuivEXT() / glTexParameterIuivEXT() call affects the values 55 * later reported by glGetSamplerParameterIuivEXT() and glGetTexParameterIuivEXT(). 56 * These values should match. 57 * 58 * Verify setting floating-point border color of (0.1, 0.2, 0.3, 0.4) 59 * affects the values later reported by glGetSamplerParameterfv() / 60 * glGetTexParameterfv(). These values should match. 61 * 62 * Verify setting integer border color of 63 * (0, 1, 2, 4) using glSamplerParameteriv() 64 * / glTexParameteriv() affects the values later reported by 65 * glGetSamplerParameteriv() / glGetTexParameteriv(). The returned values 66 * should correspond to the outcome of equation 2.2 from ES3.0.2 spec 67 * applied to each component. 68 * 69 * All texture targets available in ES3.1, as well as 70 * GL_TEXTURE_CUBE_MAP_ARRAY_EXT (if supported). 71 */ 72 class TextureBorderClampParameterTextureBorderColor : public TextureBorderClampBase 73 { 74 public: 75 /* Public methods */ 76 TextureBorderClampParameterTextureBorderColor(Context &context, const ExtParameters &extParams, const char *name, 77 const char *description); 78 ~TextureBorderClampParameterTextureBorderColor()79 virtual ~TextureBorderClampParameterTextureBorderColor() 80 { 81 } 82 83 virtual void deinit(void); 84 virtual IterateResult iterate(void); 85 86 private: 87 /* Private methods */ 88 void initTest(void); 89 90 bool verifyGLGetSamplerParameterfvResult(glw::GLuint sampler_id, glw::GLenum target, 91 const glw::GLfloat *expected_data); 92 93 bool verifyGLGetSamplerParameterivResult(glw::GLuint sampler_id, glw::GLenum target, 94 const glw::GLint *expected_data); 95 96 bool verifyGLGetSamplerParameterIivResult(glw::GLuint sampler_id, glw::GLenum target, 97 const glw::GLint *expected_data); 98 99 bool verifyGLGetSamplerParameterIuivResult(glw::GLuint sampler_id, glw::GLenum target, 100 const glw::GLuint *expected_data); 101 102 bool verifyGLGetTexParameterfvResult(glw::GLenum target, const glw::GLfloat *expected_data); 103 104 bool verifyGLGetTexParameterivResult(glw::GLenum target, const glw::GLint *expected_data); 105 106 bool verifyGLGetTexParameterIivResult(glw::GLenum target, const glw::GLint *expected_data); 107 108 bool verifyGLGetTexParameterIuivResult(glw::GLenum target, const glw::GLuint *expected_data); 109 110 /* Private variables */ 111 glw::GLuint m_sampler_id; 112 std::vector<glw::GLenum> m_texture_targets; 113 glw::GLuint m_to_id; 114 115 /* Private static constants */ 116 static const glw::GLuint m_buffer_length; 117 static const glw::GLuint m_texture_unit_index; 118 }; 119 120 } // namespace glcts 121 122 #endif // _ESEXTCTEXTUREBORDERCLAMPPARAMETERTEXTUREBORDERCOLOR_HPP 123