13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _GLUTEXTUREUTIL_HPP 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _GLUTEXTUREUTIL_HPP 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL ES Utilities 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 format utilities. 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluDefs.hpp" 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuTexture.hpp" 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuCompressedTexture.hpp" 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluShaderUtil.hpp" 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deInt32.h" 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace glu 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass RenderContext; 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ContextInfo; 3712fea2ef01511716e0387c3e3dd8c4ba6ade0cc2Jarkko Pöyryclass TextureBuffer; 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*--------------------------------------------------------------------*//*! 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief GL pixel transfer format. 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyrystruct TransferFormat 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 format; //!< Pixel format. 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 dataType; //!< Data type. 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TransferFormat (void) 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : format (0) 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , dataType (0) 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TransferFormat (deUint32 format_, deUint32 dataType_) 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : format (format_) 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , dataType (dataType_) 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5893df37596ea66700965094b3aa2830cf4f2ca5aaJarkko Pöyry} DE_WARN_UNUSED_TYPE; 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::TextureFormat mapGLTransferFormat (deUint32 format, deUint32 dataType); 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::TextureFormat mapGLInternalFormat (deUint32 internalFormat); 62b0f5bf50aa6a56357da18ee3147612fbaca19ab8Mika Isojärvitcu::CompressedTexFormat mapGLCompressedTexFormat (deUint32 format); 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyrybool isGLInternalColorFormatFilterable (deUint32 internalFormat); 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 minFilter, deUint32 magFilter); 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 wrapT, deUint32 minFilter, deUint32 magFilter); 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 wrapT, deUint32 wrapR, deUint32 minFilter, deUint32 magFilter); 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler::CompareMode mapGLCompareFunc (deUint32 mode); 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 693c827367444ee418f129b2c238299f49d3264554Jarkko PoyryTransferFormat getTransferFormat (tcu::TextureFormat format); 703c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getInternalFormat (tcu::TextureFormat format); 71becd5d53015521acf7536ba754de326d8b1da2f3Mika IsojärvideUint32 getGLFormat (tcu::CompressedTexFormat format); 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 733c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLWrapMode (tcu::Sampler::WrapMode wrapMode); 743c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLFilterMode (tcu::Sampler::FilterMode filterMode); 753c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLCompareFunc (tcu::Sampler::CompareMode compareMode); 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 773c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLCubeFace (tcu::CubeFace face); 7807b89ce0885a4a9e02b7057d45a4260d24740ba9Mika Isojärvitcu::CubeFace getCubeFaceFromGL (deUint32 face); 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 803c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler1DType (tcu::TextureFormat format); 813c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler2DType (tcu::TextureFormat format); 823c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSamplerCubeType (tcu::TextureFormat format); 83edf980303ee60f2697c628a432f82d910d3a60a4Akos DirnerDataType getSampler1DArrayType (tcu::TextureFormat format); 843c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler2DArrayType (tcu::TextureFormat format); 853c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler3DType (tcu::TextureFormat format); 863c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSamplerCubeArrayType (tcu::TextureFormat format); 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyrybool isSizedFormatColorRenderable (const RenderContext& renderCtx, const ContextInfo& contextInfo, deUint32 sizedFormat); 89238d2aee289b3bc19b059ddbfc9e83892be1d8a6Jarkko Pöyrybool isCompressedFormat (deUint32 internalFormat); 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9145b7dbbfe93d87336754e8c06380953ec003aeafJarkko Pöyryconst tcu::IVec2 (&getDefaultGatherOffsets (void))[4]; 9245b7dbbfe93d87336754e8c06380953ec003aeafJarkko Pöyry 9312fea2ef01511716e0387c3e3dd8c4ba6ade0cc2Jarkko Pöyrytcu::PixelBufferAccess getTextureBufferEffectiveRefTexture (TextureBuffer& buffer, int maxTextureBufferSize); 9412fea2ef01511716e0387c3e3dd8c4ba6ade0cc2Jarkko Pöyrytcu::ConstPixelBufferAccess getTextureBufferEffectiveRefTexture (const TextureBuffer& buffer, int maxTextureBufferSize); 9512fea2ef01511716e0387c3e3dd8c4ba6ade0cc2Jarkko Pöyry 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // glu 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _GLUTEXTUREUTIL_HPP 99