#ifndef _ESEXTCTEXTURECUBEMAPARRAYTEX3DVALIDATION_HPP #define _ESEXTCTEXTURECUBEMAPARRAYTEX3DVALIDATION_HPP /*------------------------------------------------------------------------- * OpenGL Conformance Test Suite * ----------------------------- * * Copyright (c) 2014-2016 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ /*! * \file * \brief */ /*-------------------------------------------------------------------*/ /*! * \file esextcTextureCubeMapArrayTex3DValidation.hpp * \brief texture_cube_map_array extension - Tex3DValidation (Test 4) */ /*-------------------------------------------------------------------*/ #include "../esextcTestCaseBase.hpp" namespace glcts { /** Implementation of Test 4 from CTS_EXT_texture_cube_map_array. * Test description follows: * * Make sure specified errors are generated if glTexImage3D() or glTexStorage3D() * is called for a GL_TEXTURE_CUBE_MAP_ARRAY_EXT texture target with invalid * arguments * * Category: Coverage. * Priority: Must-have. * * Make sure that GL_INVALID_VALUE error is generated if glTexImage3D() or * glTexStorage3D() is called for GL_TEXTURE_CUBE_MAP_ARRAY_EXT texture target, * and width or height arguments are not equal. * Make sure that GL_INVALID_VALUE error is generated if glTexImage3D() or * glTexStorage3D() is called for GL_TEXTURE_CUBE_MAP_ARRAY_EXT texture target, * and depth is not a multiple of six. * Make sure GL_INVALID_OPERATION error is generated by glTexStorage3D(), * if the function is called for GL_TEXTURE_CUBE_MAP_ARRAY_EXT texture target, * and levels argument is greater than floor(log2(max(width, height))) + 1; **/ class TextureCubeMapArrayTex3DValidation : public TestCaseBase { public: /* Public methods */ TextureCubeMapArrayTex3DValidation(Context& context, const ExtParameters& extParams, const char* name, const char* description); virtual ~TextureCubeMapArrayTex3DValidation(void) { } virtual void deinit(void); virtual IterateResult iterate(void); private: /* Private methods */ bool checkError(glw::GLint expectedError, const char* message); void createTexture(void); void deleteTexture(void); /* Private variables */ glw::GLuint m_to_id; }; } /* glcts */ #endif // _ESEXTCTEXTURECUBEMAPARRAYTEX3DVALIDATION_HPP