#ifndef _ES3FASTCDECOMPRESSIONCASES_HPP #define _ES3FASTCDECOMPRESSIONCASES_HPP /*------------------------------------------------------------------------- * drawElements Quality Program OpenGL ES 3.0 Module * ------------------------------------------------- * * Copyright 2014 The Android Open Source Project * * 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 ASTC decompression tests *//*--------------------------------------------------------------------*/ #include "deDefs.h" #include "tes3TestCase.hpp" #include "tcuCompressedTexture.hpp" #include "tcuAstcUtil.hpp" #include "deUniquePtr.hpp" #include <vector> namespace deqp { namespace gles3 { namespace Functional { namespace ASTCDecompressionCaseInternal { class ASTCRenderer2D; } // General ASTC block test class. class ASTCBlockCase2D : public TestCase { public: ASTCBlockCase2D (Context& context, const char* name, const char* description, tcu::astc::BlockTestType testType, tcu::CompressedTexFormat format); ~ASTCBlockCase2D (void); void init (void); void deinit (void); IterateResult iterate (void); private: ASTCBlockCase2D (const ASTCBlockCase2D& other); ASTCBlockCase2D& operator= (const ASTCBlockCase2D& other); const tcu::astc::BlockTestType m_testType; const tcu::CompressedTexFormat m_format; std::vector<deUint8> m_blockData; int m_numBlocksTested; int m_currentIteration; de::UniquePtr<ASTCDecompressionCaseInternal::ASTCRenderer2D> m_renderer; }; // For a format with block size (W, H), test with texture sizes {(k*W + a, k*H + b) | 0 <= a < W, 0 <= b < H } . class ASTCBlockSizeRemainderCase2D : public TestCase { public: ASTCBlockSizeRemainderCase2D (Context& context, const char* name, const char* description, tcu::CompressedTexFormat format); ~ASTCBlockSizeRemainderCase2D (void); void init (void); void deinit (void); IterateResult iterate (void); private: enum { MAX_NUM_BLOCKS_X = 5, MAX_NUM_BLOCKS_Y = 5 }; ASTCBlockSizeRemainderCase2D (const ASTCBlockSizeRemainderCase2D& other); ASTCBlockSizeRemainderCase2D& operator= (const ASTCBlockSizeRemainderCase2D& other); const tcu::CompressedTexFormat m_format; int m_currentIteration; de::UniquePtr<ASTCDecompressionCaseInternal::ASTCRenderer2D> m_renderer; }; } // Functional } // gles3 } // deqp #endif // _ES3FASTCDECOMPRESSIONCASES_HPP