/*!**************************************************************************** @file OGLES2/PVRTTextureAPI.h @ingroup API_OGLES2 @copyright Copyright (c) Imagination Technologies Limited. @brief OGLES2 texture loading. ******************************************************************************/ #ifndef _PVRTTEXTUREAPI_H_ #define _PVRTTEXTUREAPI_H_ /*! @addtogroup API_OGLES2 @{ */ #include "../PVRTError.h" /**************************************************************************** ** Functions ****************************************************************************/ template <typename KeyType, typename DataType> class CPVRTMap; /*!*************************************************************************** @brief Allows textures to be stored in C header files and loaded in. Can load parts of a mipmaped texture (ie skipping the highest detailed levels). Sets the texture MIN/MAG filter to GL_LINEAR_MIPMAP_NEAREST/GL_LINEAR if mipmaps are present, GL_LINEAR/GL_LINEAR otherwise. @param[in] pointer Pointer to header-texture's structure @param[in,out] texName the OpenGL ES texture name as returned by glBindTexture @param[in,out] psTextureHeader Pointer to a PVRTextureHeaderV3 struct. Modified to contain the header data of the returned texture Ignored if NULL. @param[in] bAllowDecompress Allow decompression if PVRTC is not supported in hardware. @param[in] nLoadFromLevel Which mipmap level to start loading from (0=all) @param[in] texPtr If null, texture follows header, else texture is here. @param[in,out] pMetaData If a valid map is supplied, this will return any and all MetaDataBlocks stored in the texture, organised by DevFourCC then identifier. Supplying NULL will ignore all MetaData. @return PVR_SUCCESS on success *****************************************************************************/ EPVRTError PVRTTextureLoadFromPointer( const void* pointer, GLuint *const texName, const void *psTextureHeader=NULL, bool bAllowDecompress = true, const unsigned int nLoadFromLevel=0, const void * const texPtr=0, CPVRTMap<unsigned int, CPVRTMap<unsigned int, struct MetaDataBlock> > *pMetaData=NULL); /*!*************************************************************************** @brief Allows textures to be stored in binary PVR files and loaded in. Can load parts of a mipmaped texture (ie skipping the highest detailed levels). Sets the texture MIN/MAG filter to GL_LINEAR_MIPMAP_NEAREST/GL_LINEAR if mipmaps are present, GL_LINEAR/GL_LINEAR otherwise. @param[in] filename Filename of the .PVR file to load the texture from @param[in,out] texName the OpenGL ES texture name as returned by glBindTexture @param[in,out] psTextureHeader Pointer to a PVRTextureHeaderV3 struct. Modified to contain the header data of the returned texture Ignored if NULL. @param[in] bAllowDecompress Allow decompression if PVRTC is not supported in hardware. @param[in] nLoadFromLevel Which mipmap level to start loading from (0=all) @param[in,out] pMetaData If a valid map is supplied, this will return any and all MetaDataBlocks stored in the texture, organised by DevFourCC then identifier. Supplying NULL will ignore all MetaData. @return PVR_SUCCESS on success *****************************************************************************/ EPVRTError PVRTTextureLoadFromPVR( const char * const filename, GLuint * const texName, const void *psTextureHeader=NULL, bool bAllowDecompress = true, const unsigned int nLoadFromLevel=0, CPVRTMap<unsigned int, CPVRTMap<unsigned int, struct MetaDataBlock> > *pMetaData=NULL); /*!*************************************************************************** @brief Returns the bits per pixel (BPP) of the format. @param[in] nFormat @param[in] nType @return Unsigned integer representing the bits per pixel of the format *****************************************************************************/ unsigned int PVRTTextureFormatGetBPP(const GLuint nFormat, const GLuint nType); /*! @} */ #endif /* _PVRTTEXTUREAPI_H_ */ /***************************************************************************** End of file (PVRTTextureAPI.h) *****************************************************************************/