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; 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*--------------------------------------------------------------------*//*! 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief GL pixel transfer format. 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyrystruct TransferFormat 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 format; //!< Pixel format. 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deUint32 dataType; //!< Data type. 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TransferFormat (void) 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : format (0) 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , dataType (0) 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry TransferFormat (deUint32 format_, deUint32 dataType_) 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : format (format_) 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , dataType (dataType_) 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::TextureFormat mapGLTransferFormat (deUint32 format, deUint32 dataType); 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::TextureFormat mapGLInternalFormat (deUint32 internalFormat); 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyrybool isGLInternalColorFormatFilterable (deUint32 internalFormat); 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 minFilter, deUint32 magFilter); 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 wrapT, deUint32 minFilter, deUint32 magFilter); 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler mapGLSampler (deUint32 wrapS, deUint32 wrapT, deUint32 wrapR, deUint32 minFilter, deUint32 magFilter); 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytcu::Sampler::CompareMode mapGLCompareFunc (deUint32 mode); 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 673c827367444ee418f129b2c238299f49d3264554Jarkko PoyryTransferFormat getTransferFormat (tcu::TextureFormat format); 683c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getInternalFormat (tcu::TextureFormat format); 693c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLFormat (tcu::CompressedTexture::Format format); 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 713c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLWrapMode (tcu::Sampler::WrapMode wrapMode); 723c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLFilterMode (tcu::Sampler::FilterMode filterMode); 733c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLCompareFunc (tcu::Sampler::CompareMode compareMode); 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 753c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeUint32 getGLCubeFace (tcu::CubeFace face); 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 773c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler1DType (tcu::TextureFormat format); 783c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler2DType (tcu::TextureFormat format); 793c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSamplerCubeType (tcu::TextureFormat format); 803c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler2DArrayType (tcu::TextureFormat format); 813c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSampler3DType (tcu::TextureFormat format); 823c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDataType getSamplerCubeArrayType (tcu::TextureFormat format); 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyrybool isSizedFormatColorRenderable (const RenderContext& renderCtx, const ContextInfo& contextInfo, deUint32 sizedFormat); 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // glu 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _GLUTEXTUREUTIL_HPP 89