18852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#ifndef _ES31FFBOTESTCASE_HPP 28852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#define _ES31FFBOTESTCASE_HPP 38852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry/*------------------------------------------------------------------------- 48852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * drawElements Quality Program OpenGL ES 3.1 Module 58852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * ------------------------------------------------- 68852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * 78852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * Copyright 2014 The Android Open Source Project 88852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * 98852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 108852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * you may not use this file except in compliance with the License. 118852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * You may obtain a copy of the License at 128852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * 138852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * http://www.apache.org/licenses/LICENSE-2.0 148852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * 158852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 168852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 178852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 188852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * See the License for the specific language governing permissions and 198852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * limitations under the License. 208852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * 218852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry *//*! 228852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * \file 238852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry * \brief Base class for FBO tests. 248852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry *//*--------------------------------------------------------------------*/ 258852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 268852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#include "tcuDefs.hpp" 278852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#include "tes31TestCase.hpp" 288852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#include "sglrContextWrapper.hpp" 298852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 308852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyrynamespace tcu 318852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry{ 328852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyryclass Surface; 338852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyryclass TextureFormat; 348852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry} 358852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 368852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyrynamespace deqp 378852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry{ 388852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyrynamespace gles31 398852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry{ 408852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyrynamespace Functional 418852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry{ 428852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 438852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyryclass FboTestCase : public TestCase, public sglr::ContextWrapper 448852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry{ 458852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyrypublic: 468852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry FboTestCase (Context& context, const char* name, const char* description, bool useScreenSizedViewport = false); 478852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry ~FboTestCase (void); 488852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 498852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry IterateResult iterate (void); 508852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 518852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyryprotected: 528852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry virtual void preCheck (void) {} 538852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry virtual void render (tcu::Surface& dst) = DE_NULL; 548852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry virtual bool compare (const tcu::Surface& reference, const tcu::Surface& result); 558852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 568852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry // Utilities. 578852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void checkFormatSupport (deUint32 sizedFormat); 588852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void checkSampleCount (deUint32 sizedFormat, int numSamples); 598852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void readPixels (tcu::Surface& dst, int x, int y, int width, int height, const tcu::TextureFormat& format, const tcu::Vec4& scale, const tcu::Vec4& bias); 608852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void readPixels (tcu::Surface& dst, int x, int y, int width, int height); 618852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void checkFramebufferStatus (deUint32 target); 628852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void checkError (void); 638852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry void clearColorBuffer (const tcu::TextureFormat& format, const tcu::Vec4& value = tcu::Vec4(0.0f, 0.0f, 0.0f, 0.0f)); 648852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 658852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry int m_viewportWidth; 668852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry int m_viewportHeight; 678852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 688852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyryprivate: 698852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry FboTestCase (const FboTestCase& other); 708852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry FboTestCase& operator= (const FboTestCase& other); 718852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry}; 728852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 738852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry} // Functional 748852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry} // gles31 758852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry} // deqp 768852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry 778852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#endif // _ES31FFBOTESTCASE_HPP 78