13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _GLSTEXTUREBUFFERCASE_HPP 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _GLSTEXTUREBUFFERCASE_HPP 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL (ES) Module 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * ----------------------------------------------- 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License. 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * http://www.apache.org/licenses/LICENSE-2.0 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License. 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*! 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Texture buffer test case 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuDefs.hpp" 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuTestCase.hpp" 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace glu 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry class RenderContext; 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry class ShaderProgram; 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // glu 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gls 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace TextureBufferCaseUtil 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyryenum ModifyBits 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry MODIFYBITS_NONE = 0, 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry MODIFYBITS_BUFFERDATA = (0x1<<0), 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry MODIFYBITS_BUFFERSUBDATA = (0x1<<1), 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry MODIFYBITS_MAPBUFFER_WRITE = (0x1<<2), 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry MODIFYBITS_MAPBUFFER_READWRITE = (0x1<<3), 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyryenum RenderBits 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry RENDERBITS_NONE = 0, 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry RENDERBITS_AS_VERTEX_ARRAY = (0x1<<0), 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry RENDERBITS_AS_INDEX_ARRAY = (0x1<<1), 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry RENDERBITS_AS_VERTEX_TEXTURE = (0x1<<2), 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry RENDERBITS_AS_FRAGMENT_TEXTURE = (0x1<<3) 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // TextureBufferCaseUtil 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass TextureBufferCase : public tcu::TestCase 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TextureBufferCase (tcu::TestContext& testCtx, 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glu::RenderContext& renderCtx, 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 format, 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry size_t bufferSize, 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry size_t offset, 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry size_t size, 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TextureBufferCaseUtil::RenderBits preRender, 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TextureBufferCaseUtil::ModifyBits modify, 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TextureBufferCaseUtil::RenderBits postRender, 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const char* name, 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const char* description); 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ~TextureBufferCase (void); 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void init (void); 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void deinit (void); 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry IterateResult iterate (void); 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glu::RenderContext& m_renderCtx; 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const deUint32 m_format; 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const size_t m_bufferSize; 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const size_t m_offset; 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const size_t m_size; 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const TextureBufferCaseUtil::RenderBits m_preRender; 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const TextureBufferCaseUtil::ModifyBits m_modify; 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const TextureBufferCaseUtil::RenderBits m_postRender; 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glu::ShaderProgram* m_preRenderProgram; 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glu::ShaderProgram* m_postRenderProgram; 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gls 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp 1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _GLSTEXTUREBUFFERCASE_HPP 102