Home | History | Annotate | Download | only in texture_buffer
      1 #ifndef _ESEXTCTEXTUREBUFFERERRORS_HPP
      2 #define _ESEXTCTEXTUREBUFFERERRORS_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  esextcTextureBufferErrors.hpp
     28  * \brief TexBufferEXT and TexBufferRangeEXT errors (Test 7)
     29  */ /*-------------------------------------------------------------------*/
     30 
     31 #include "../esextcTestCaseBase.hpp"
     32 #include "gluShaderUtil.hpp"
     33 #include "tcuDefs.hpp"
     34 
     35 #include <vector>
     36 
     37 namespace glcts
     38 {
     39 
     40 /*    Implementation of (Test 7) from CTS_EXT_texture_buffer. Description follows:
     41  *
     42  *    Test whether functions TexBufferEXT and TexBufferRangeEXT generate errors
     43  *    as specified in the extension specification.
     44  *
     45  *    Category: API.
     46  *              Dependency with OES_texture_storage_multisample_2d_array
     47  *
     48  *    Check if for all targets apart from TEXTURE_BUFFER_EXT functions
     49  *    TexBufferEXT and TexBufferRangeEXT report INVALID_ENUM error.
     50  *
     51  *    Check if for GL_DEPTH_COMPONENT32F internal format functions
     52  *    TexBufferEXT and TexBufferRangeEXT report INVALID_ENUM error.
     53  *
     54  *    Check if for buffer id not previously returned by genBuffers and
     55  *    not equal to zero functions TexBufferEXT and TexBufferRangeEXT report
     56  *    INVALID_OPERATION error.
     57  *
     58  *    Check if for offset parameter that is negative, size parameter that is less
     59  *    than or equal to zero or offset + size that is greater than the value of
     60  *    GL_BUFFER_SIZE for the buffer object bound to TEXTURE_BUFFER_EXT target
     61  *    function TexBufferRangeEXT reports INVALID_VALUE error.
     62  *
     63  *    Check if in case of offset parameter not being an integer multiple of
     64  *    value(TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT) function TexBufferRangeEXT
     65  *    reports INVALID_VALUE error.
     66  */
     67 class TextureBufferErrors : public TestCaseBase
     68 {
     69 public:
     70 	/* Public methods */
     71 	TextureBufferErrors(Context& context, const ExtParameters& extParams, const char* name, const char* description);
     72 
     73 	virtual ~TextureBufferErrors()
     74 	{
     75 	}
     76 
     77 	virtual void		  deinit(void);
     78 	virtual IterateResult iterate(void);
     79 
     80 private:
     81 	/* Private methods */
     82 	void		   initTest(void);
     83 	glw::GLboolean verifyError(const glw::GLenum expected_error, const char* description);
     84 
     85 	typedef std::vector<glw::GLenum> TargetsVector;
     86 
     87 	/* Private variables */
     88 	glw::GLuint   m_bo_id;			 /* Buffer  Object */
     89 	glw::GLuint   m_tex_id;			 /* Texture Buffer Object Texture ID */
     90 	TargetsVector m_texture_targets; /* Texture Targets */
     91 
     92 	/* Private static constants */
     93 	static const glw::GLint m_bo_size; /* Buffer object size */
     94 };
     95 
     96 } // namespace glcts
     97 
     98 #endif // _ESEXTCTEXTUREBUFFERERRORS_HPP
     99