12 #ifndef _PVRTEXTURE_HEADER_H
13 #define _PVRTEXTURE_HEADER_H
16 #include "PVRTextureFormat.h"
17 #include "PVRTString.h"
30 CPVRTMap<uint32, CPVRTMap<uint32,MetaDataBlock> >
m_MetaData;
50 MetaDataBlock* metaData=NULL);
73 uint32 u32NumArrayMembers=1,
75 EPVRTColourSpace eColourSpace=ePVRTCSpacelRGB,
76 EPVRTVariableType eChannelType=ePVRTVarTypeUnsignedByteNorm,
77 bool bPreMultiplied=
false);
92 PVRTextureHeaderV3 getFileHeader()
const;
98 PixelType getPixelType()
const;
104 uint32 getBitsPerPixel()
const;
110 EPVRTColourSpace getColourSpace()
const;
116 EPVRTVariableType getChannelType()
const;
124 uint32 getWidth(
uint32 uiMipLevel=PVRTEX_TOPMIPLEVEL)
const;
132 uint32 getHeight(
uint32 uiMipLevel=PVRTEX_TOPMIPLEVEL)
const;
140 uint32 getDepth(
uint32 uiMipLevel=PVRTEX_TOPMIPLEVEL)
const;
156 uint32 getTextureSize(
int32 iMipLevel=PVRTEX_ALLMIPLEVELS,
bool bAllSurfaces =
true,
bool bAllFaces =
true)
const;
172 uint32 getDataSize(
int32 iMipLevel=PVRTEX_ALLMIPLEVELS,
bool bAllSurfaces =
true,
bool bAllFaces =
true)
const;
178 uint32 getNumArrayMembers()
const;
184 uint32 getNumMIPLevels()
const;
190 uint32 getNumFaces()
const;
197 EPVRTOrientation getOrientation(EPVRTAxis axis)
const;
205 bool isFileCompressed()
const;
212 bool isPreMultiplied()
const;
219 uint32 getMetaDataSize()
const;
250 uint32 getD3DFormat()
const;
259 uint32 getDXGIFormat()
const;
267 void setPixelFormat(PixelType uPixelFormat);
273 void setColourSpace(EPVRTColourSpace eColourSpace);
279 void setChannelType(EPVRTVariableType eVarType);
289 bool setOGLFormat(
const uint32& internalformat,
const uint32& format,
const uint32& type);
299 bool setOGLESFormat(
const uint32& internalformat,
const uint32& format,
const uint32& type);
306 bool setD3DFormat(
const uint32& DWORD_D3D_FORMAT);
313 bool setDXGIFormat(
const uint32& DWORD_DXGI_FORMAT);
319 void setWidth(
uint32 newWidth);
325 void setHeight(
uint32 newHeight);
331 void setDepth(
uint32 newDepth);
337 void setNumArrayMembers(
uint32 newNumMembers);
343 void setNumMIPLevels(
uint32 newNumMIPLevels);
349 void setNumFaces(
uint32 newNumFaces);
355 void setOrientation(EPVRTOrientation eAxisOrientation);
363 void setIsFileCompressed(
bool isFileCompressed);
370 void setIsPreMultiplied(
bool isPreMultiplied);
378 bool isBumpMap()
const;
387 float getBumpMapScale()
const;
401 CPVRTString getBumpMapOrder()
const;
408 int getNumTextureAtlasMembers()
const;
414 const float* getTextureAtlasData()
const;
423 CPVRTString getCubeMapOrder()
const;
431 void getBorder(
uint32& uiBorderWidth,
uint32& uiBorderHeight,
uint32& uiBorderDepth)
const;
442 MetaDataBlock getMetaData(
uint32 DevFOURCC,
uint32 u32Key)
const;
453 bool hasMetaData(
uint32 DevFOURCC,
uint32 u32Key)
const;
483 void setBumpMap(
float bumpScale, CPVRTString bumpOrder=
"xyz");
495 void setTextureAtlas(
float* pAtlasData,
uint32 dataSize);
510 void setCubeMapOrder(CPVRTString cubeMapOrder=
"XxYyZz");
526 void addMetaData(
const MetaDataBlock& MetaBlock);
535 void removeMetaData(
const uint32& DevFOURCC,
const uint32& u32Key);