1 #ifndef _ESEXTCTEXTURECUBEMAPARRAYIMAGETEXTURESIZETESTS_HPP 2 #define _ESEXTCTEXTURECUBEMAPARRAYIMAGETEXTURESIZETESTS_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 esextcTextureCubeMapArrayTextureSizeTests.hpp 28 * \brief texture_cube_map_array extension - Texture Size Test (Test 10) 29 */ /*-------------------------------------------------------------------*/ 30 31 #include "esextcTextureCubeMapArrayImageTextureSize.hpp" 32 #include "glcContext.hpp" 33 #include "glcTestCase.hpp" 34 35 namespace glcts 36 { 37 /** Implementation of (Test 10) for texture_cube_map_array extension. Test description follows: 38 * Make sure shaders can correctly query the size of cube-map array textures 39 * bound to active texture or image samplers. 40 * 41 * Category: Coverage, 42 * Optional dependency on EXT_geometry_shader; 43 * Optional dependency on EXT_tessellation_shader; 44 * Suggested priority: Must-have for the texture part; 45 * Must-have for the image part; 46 * 47 * Make sure textureSize() (both shadow and normal cases) GLSL functions 48 * return correct values for cube-map array textures. 49 * Make sure imageSize() returns correct values for image units, to which 50 * cube-map array textures have been bound. 51 * 52 * All supported shader types should be considered for the purpose of the 53 * test. 54 * 55 * The results should be XFBed back to test implementation for verification 56 * in case of geometry & tessellation shaders & vertex shaders. 57 * For compute shaders, the size should be stored to an image of 58 * 1x1 resolution and of GL_RGBA32UI internalformat. 59 * Fragment shaders should store the texture size by writing it to 60 * an output variable defined in the fragment shader. A GL_RGBA32UI 61 * texture of 1x1 resolution should be used as a draw buffer. 62 * 63 * The following texture resolutions should be used 64 * { 64, 64, 6}, 65 * {128, 128, 12}, 66 * {256, 256, 12}, 67 * { 32, 32, 18} 68 * Both immutable and mutable textures should be checked. 69 * 70 */ 71 class TextureCubeMapArrayImageTextureSizeTests : public glcts::TestCaseGroupBase 72 { 73 public: 74 /* Public methods */ 75 TextureCubeMapArrayImageTextureSizeTests(glcts::Context& context, const ExtParameters& extParams, const char* name, 76 const char* description); 77 ~TextureCubeMapArrayImageTextureSizeTests()78 virtual ~TextureCubeMapArrayImageTextureSizeTests() 79 { 80 } 81 82 virtual void init(void); 83 virtual void deinit(void); 84 }; 85 86 } // namespace glcts 87 88 #endif // _ESEXTCTEXTURECUBEMAPARRAYIMAGETEXTURESIZETESTS_HPP 89