Home | History | Annotate | Download | only in Tools
      1 /******************************************************************************
      2 
      3  @File         PVRTTexture.cpp
      4 
      5  @Title        PVRTTexture
      6 
      7  @Version
      8 
      9  @Copyright    Copyright (c) Imagination Technologies Limited.
     10 
     11  @Platform     ANSI compatible
     12 
     13  @Description  Texture loading.
     14 
     15 ******************************************************************************/
     16 #include <string.h>
     17 #include <stdlib.h>
     18 
     19 #include "PVRTTexture.h"
     20 #include "PVRTMap.h"
     21 
     22 /*****************************************************************************
     23 ** Functions
     24 *****************************************************************************/
     25 /*!***************************************************************************
     26 @Function		ReadFromPtr
     27 @Input			pDataCursor		The data to read
     28 @Description	Reads from a pointer of memory in to the meta data block.
     29 *****************************************************************************/
     30 bool MetaDataBlock::ReadFromPtr(const unsigned char** pDataCursor)
     31 {
     32 	memcpy(&DevFOURCC,	 *pDataCursor, sizeof(PVRTuint32));		*pDataCursor += sizeof(PVRTuint32);
     33 	memcpy(&u32Key,		 *pDataCursor, sizeof(PVRTuint32));		*pDataCursor += sizeof(PVRTuint32);
     34 	memcpy(&u32DataSize, *pDataCursor, sizeof(PVRTuint32));		*pDataCursor += sizeof(PVRTuint32);
     35 	if(u32DataSize > 0)
     36 	{
     37 		Data = new PVRTuint8[u32DataSize];
     38 		memcpy(Data, *pDataCursor, u32DataSize);
     39 		*pDataCursor += u32DataSize;
     40 	}
     41 
     42 	return true;
     43 }
     44 
     45 /*!***************************************************************************
     46 @Function		PVRTTextureLoadTiled
     47 @Modified		pDst			Texture to place the tiled data
     48 @Input			nWidthDst		Width of destination texture
     49 @Input			nHeightDst		Height of destination texture
     50 @Input			pSrc			Texture to tile
     51 @Input			nWidthSrc		Width of source texture
     52 @Input			nHeightSrc		Height of source texture
     53 @Input 			nElementSize	Bytes per pixel
     54 @Input			bTwiddled		True if the data is twiddled
     55 @Description	Needed by PVRTTextureTile() in the various PVRTTextureAPIs
     56 *****************************************************************************/
     57 void PVRTTextureLoadTiled(
     58 	PVRTuint8		* const pDst,
     59 	const unsigned int	nWidthDst,
     60 	const unsigned int	nHeightDst,
     61 	const PVRTuint8	* const pSrc,
     62 	const unsigned int	nWidthSrc,
     63 	const unsigned int	nHeightSrc,
     64 	const unsigned int	nElementSize,
     65 	const bool			bTwiddled)
     66 {
     67 	unsigned int nXs, nYs;
     68 	unsigned int nXd, nYd;
     69 	unsigned int nIdxSrc, nIdxDst;
     70 
     71 	for(nIdxDst = 0; nIdxDst < nWidthDst*nHeightDst; ++nIdxDst)
     72 	{
     73 		if(bTwiddled)
     74 		{
     75 			PVRTTextureDeTwiddle(nXd, nYd, nIdxDst);
     76 		}
     77 		else
     78 		{
     79 			nXd = nIdxDst % nWidthDst;
     80 			nYd = nIdxDst / nWidthDst;
     81 		}
     82 
     83 		nXs = nXd % nWidthSrc;
     84 		nYs = nYd % nHeightSrc;
     85 
     86 		if(bTwiddled)
     87 		{
     88 			PVRTTextureTwiddle(nIdxSrc, nXs, nYs);
     89 		}
     90 		else
     91 		{
     92 			nIdxSrc = nYs * nWidthSrc + nXs;
     93 		}
     94 
     95 		memcpy(pDst + nIdxDst*nElementSize, pSrc + nIdxSrc*nElementSize, nElementSize);
     96 	}
     97 }
     98 
     99 /*!***************************************************************************
    100 @Function		PVRTTextureCreate
    101 @Input			w			Size of the texture
    102 @Input			h			Size of the texture
    103 @Input			wMin		Minimum size of a texture level
    104 @Input			hMin		Minimum size of a texture level
    105 @Input			nBPP		Bits per pixel of the format
    106 @Input			bMIPMap		Create memory for MIP-map levels also?
    107 @Return			Allocated texture memory (must be free()d)
    108 @Description	Creates a PVRTextureHeaderV3 structure, including room for
    109 				the specified texture, in memory.
    110 *****************************************************************************/
    111 PVRTextureHeaderV3 *PVRTTextureCreate(
    112 	const unsigned int	w,
    113 	const unsigned int	h,
    114 	const unsigned int	wMin,
    115 	const unsigned int	hMin,
    116 	const unsigned int	nBPP,
    117 	const bool			bMIPMap)
    118 {
    119 	size_t			len;
    120 	unsigned char	*p;
    121 
    122 	{
    123 		unsigned int	wTmp = w, hTmp = h;
    124 
    125 		len = 0;
    126 		do
    127 		{
    128 			len += PVRT_MAX(wTmp, wMin) * PVRT_MAX(hTmp, hMin);
    129 			wTmp >>= 1;
    130 			hTmp >>= 1;
    131 		}
    132 		while(bMIPMap && (wTmp || hTmp));
    133 	}
    134 
    135 	len = (len * nBPP) / 8;
    136 	len += PVRTEX3_HEADERSIZE;
    137 
    138 	p = (unsigned char*)malloc(len);
    139 	_ASSERT(p);
    140 
    141 	if(p)
    142 	{
    143 		PVRTextureHeaderV3 * const psTexHeader = (PVRTextureHeaderV3*)p;
    144 
    145 		*psTexHeader=PVRTextureHeaderV3();
    146 
    147 		psTexHeader->u32Width=w;
    148 		psTexHeader->u32Height=h;
    149 
    150 		return psTexHeader;
    151 	}
    152 	else
    153 	{
    154 		return 0;
    155 	}
    156 }
    157 
    158 
    159 /*!***************************************************************************
    160  @Function		PVRTTextureTwiddle
    161  @Output		a	Twiddled value
    162  @Input			u	Coordinate axis 0
    163  @Input			v	Coordinate axis 1
    164  @Description	Combine a 2D coordinate into a twiddled value
    165 *****************************************************************************/
    166 void PVRTTextureTwiddle(unsigned int &a, const unsigned int u, const unsigned int v)
    167 {
    168 	_ASSERT(!((u|v) & 0xFFFF0000));
    169 	a = 0;
    170 	for(int i = 0; i < 16; ++i)
    171 	{
    172 		a |= ((u & (1 << i)) << (i+1));
    173 		a |= ((v & (1 << i)) << (i+0));
    174 	}
    175 }
    176 
    177 /*!***************************************************************************
    178  @Function		PVRTTextureDeTwiddle
    179  @Output		u	Coordinate axis 0
    180  @Output		v	Coordinate axis 1
    181  @Input			a	Twiddled value
    182  @Description	Extract 2D coordinates from a twiddled value.
    183 *****************************************************************************/
    184 void PVRTTextureDeTwiddle(unsigned int &u, unsigned int &v, const unsigned int a)
    185 {
    186 	u = 0;
    187 	v = 0;
    188 	for(int i = 0; i < 16; ++i)
    189 	{
    190 		u |= (a & (1 << ((2*i)+1))) >> (i+1);
    191 		v |= (a & (1 << ((2*i)+0))) >> (i+0);
    192 	}
    193 }
    194 
    195 /*!***********************************************************************
    196  @Function		PVRTGetBitsPerPixel
    197  @Input			u64PixelFormat			A PVR Pixel Format ID.
    198  @Return		const PVRTuint32	Number of bits per pixel.
    199  @Description	Returns the number of bits per pixel in a PVR Pixel Format
    200 				identifier.
    201 *************************************************************************/
    202 PVRTuint32 PVRTGetBitsPerPixel(PVRTuint64 u64PixelFormat)
    203 {
    204 	if((u64PixelFormat&PVRTEX_PFHIGHMASK)!=0)
    205 	{
    206 		PVRTuint8* PixelFormatChar=(PVRTuint8*)&u64PixelFormat;
    207 		return PixelFormatChar[4]+PixelFormatChar[5]+PixelFormatChar[6]+PixelFormatChar[7];
    208 	}
    209 	else
    210 	{
    211 		switch (u64PixelFormat)
    212 		{
    213 		case ePVRTPF_BW1bpp:
    214 			return 1;
    215 		case ePVRTPF_PVRTCI_2bpp_RGB:
    216 		case ePVRTPF_PVRTCI_2bpp_RGBA:
    217 		case ePVRTPF_PVRTCII_2bpp:
    218 			return 2;
    219 		case ePVRTPF_PVRTCI_4bpp_RGB:
    220 		case ePVRTPF_PVRTCI_4bpp_RGBA:
    221 		case ePVRTPF_PVRTCII_4bpp:
    222 		case ePVRTPF_ETC1:
    223 		case ePVRTPF_EAC_R11:
    224 		case ePVRTPF_ETC2_RGB:
    225 		case ePVRTPF_ETC2_RGB_A1:
    226 		case ePVRTPF_DXT1:
    227 		case ePVRTPF_BC4:
    228 			return 4;
    229 		case ePVRTPF_DXT2:
    230 		case ePVRTPF_DXT3:
    231 		case ePVRTPF_DXT4:
    232 		case ePVRTPF_DXT5:
    233 		case ePVRTPF_BC5:
    234 		case ePVRTPF_EAC_RG11:
    235 		case ePVRTPF_ETC2_RGBA:
    236 			return 8;
    237 		case ePVRTPF_YUY2:
    238 		case ePVRTPF_UYVY:
    239 		case ePVRTPF_RGBG8888:
    240 		case ePVRTPF_GRGB8888:
    241 			return 16;
    242 		case ePVRTPF_SharedExponentR9G9B9E5:
    243 			return 32;
    244 		case ePVRTPF_NumCompressedPFs:
    245 			return 0;
    246 		}
    247 	}
    248 	return 0;
    249 }
    250 
    251 /*!***********************************************************************
    252  @Function		PVRTGetFormatMinDims
    253  @Input			u64PixelFormat	A PVR Pixel Format ID.
    254  @Modified		minX			Returns the minimum width.
    255  @Modified		minY			Returns the minimum height.
    256  @Modified		minZ			Returns the minimum depth.
    257  @Description	Gets the minimum dimensions (x,y,z) for a given pixel format.
    258 *************************************************************************/
    259 void PVRTGetFormatMinDims(PVRTuint64 u64PixelFormat, PVRTuint32 &minX, PVRTuint32 &minY, PVRTuint32 &minZ)
    260 {
    261 	switch(u64PixelFormat)
    262 	{
    263 	case ePVRTPF_DXT1:
    264 	case ePVRTPF_DXT2:
    265 	case ePVRTPF_DXT3:
    266 	case ePVRTPF_DXT4:
    267 	case ePVRTPF_DXT5:
    268 	case ePVRTPF_BC4:
    269 	case ePVRTPF_BC5:
    270 	case ePVRTPF_ETC1:
    271 	case ePVRTPF_ETC2_RGB:
    272 	case ePVRTPF_ETC2_RGBA:
    273 	case ePVRTPF_ETC2_RGB_A1:
    274 	case ePVRTPF_EAC_R11:
    275 	case ePVRTPF_EAC_RG11:
    276 		minX = 4;
    277 		minY = 4;
    278 		minZ = 1;
    279 		break;
    280 	case ePVRTPF_PVRTCI_4bpp_RGB:
    281 	case ePVRTPF_PVRTCI_4bpp_RGBA:
    282 		minX = 8;
    283 		minY = 8;
    284 		minZ = 1;
    285 		break;
    286 	case ePVRTPF_PVRTCI_2bpp_RGB:
    287 	case ePVRTPF_PVRTCI_2bpp_RGBA:
    288 		minX = 16;
    289 		minY = 8;
    290 		minZ = 1;
    291 		break;
    292 	case ePVRTPF_PVRTCII_4bpp:
    293 		minX = 4;
    294 		minY = 4;
    295 		minZ = 1;
    296 		break;
    297 	case ePVRTPF_PVRTCII_2bpp:
    298 		minX = 8;
    299 		minY = 4;
    300 		minZ = 1;
    301 		break;
    302 	case ePVRTPF_UYVY:
    303 	case ePVRTPF_YUY2:
    304 	case ePVRTPF_RGBG8888:
    305 	case ePVRTPF_GRGB8888:
    306 		minX = 2;
    307 		minY = 1;
    308 		minZ = 1;
    309 		break;
    310 	case ePVRTPF_BW1bpp:
    311 		minX = 8;
    312 		minY = 1;
    313 		minZ = 1;
    314 		break;
    315 	default: //Non-compressed formats all return 1.
    316 		minX = 1;
    317 		minY = 1;
    318 		minZ = 1;
    319 		break;
    320 	}
    321 }
    322 
    323 /*!***********************************************************************
    324 @Function		PVRTGetTextureDataSize
    325 @Input			iMipLevel	Specifies a mip level to check, 'PVRTEX_ALLMIPLEVELS'
    326 							can be passed to get the size of all MIP levels.
    327 @Input			bAllSurfs	Size of all surfaces is calculated if true,
    328 							only a single surface if false.
    329 @Input			bAllFaces	Size of all faces is calculated if true,
    330 							only a single face if false.
    331 @Return			PVRTuint32		Size in BYTES of the specified texture area.
    332 @Description	Gets the size in BYTES of the texture, given various input
    333 				parameters.	User can retrieve the size of either all
    334 				surfaces or a single surface, all faces or a single face and
    335 				all MIP-Maps or a single specified MIP level.
    336 *************************************************************************/
    337 PVRTuint32 PVRTGetTextureDataSize(PVRTextureHeaderV3 sTextureHeader, PVRTint32 iMipLevel, bool bAllSurfaces, bool bAllFaces)
    338 {
    339 	//The smallest divisible sizes for a pixel format
    340 	PVRTuint32 uiSmallestWidth=1;
    341 	PVRTuint32 uiSmallestHeight=1;
    342 	PVRTuint32 uiSmallestDepth=1;
    343 
    344 	PVRTuint64 PixelFormatPartHigh = sTextureHeader.u64PixelFormat&PVRTEX_PFHIGHMASK;
    345 
    346 	//If the pixel format is compressed, get the pixel format's minimum dimensions.
    347 	if (PixelFormatPartHigh==0)
    348 	{
    349 		PVRTGetFormatMinDims((EPVRTPixelFormat)sTextureHeader.u64PixelFormat, uiSmallestWidth, uiSmallestHeight, uiSmallestDepth);
    350 	}
    351 
    352 	//Needs to be 64-bit integer to support 16kx16k and higher sizes.
    353 	PVRTuint64 uiDataSize = 0;
    354 	if (iMipLevel==-1)
    355 	{
    356 		for (PVRTuint8 uiCurrentMIP = 0; uiCurrentMIP<sTextureHeader.u32MIPMapCount; ++uiCurrentMIP)
    357 		{
    358 			//Get the dimensions of the current MIP Map level.
    359 			PVRTuint32 uiWidth = PVRT_MAX(1,sTextureHeader.u32Width>>uiCurrentMIP);
    360 			PVRTuint32 uiHeight = PVRT_MAX(1,sTextureHeader.u32Height>>uiCurrentMIP);
    361 			PVRTuint32 uiDepth = PVRT_MAX(1,sTextureHeader.u32Depth>>uiCurrentMIP);
    362 
    363 			//If pixel format is compressed, the dimensions need to be padded.
    364 			if (PixelFormatPartHigh==0)
    365 			{
    366 				uiWidth=uiWidth+( (-1*uiWidth)%uiSmallestWidth);
    367 				uiHeight=uiHeight+( (-1*uiHeight)%uiSmallestHeight);
    368 				uiDepth=uiDepth+( (-1*uiDepth)%uiSmallestDepth);
    369 			}
    370 
    371 			//Add the current MIP Map's data size to the total.
    372 			uiDataSize+=(PVRTuint64)PVRTGetBitsPerPixel(sTextureHeader.u64PixelFormat)*(PVRTuint64)uiWidth*(PVRTuint64)uiHeight*(PVRTuint64)uiDepth;
    373 		}
    374 	}
    375 	else
    376 	{
    377 		//Get the dimensions of the specified MIP Map level.
    378 		PVRTuint32 uiWidth = PVRT_MAX(1,sTextureHeader.u32Width>>iMipLevel);
    379 		PVRTuint32 uiHeight = PVRT_MAX(1,sTextureHeader.u32Height>>iMipLevel);
    380 		PVRTuint32 uiDepth = PVRT_MAX(1,sTextureHeader.u32Depth>>iMipLevel);
    381 
    382 		//If pixel format is compressed, the dimensions need to be padded.
    383 		if (PixelFormatPartHigh==0)
    384 		{
    385 			uiWidth=uiWidth+( (-1*uiWidth)%uiSmallestWidth);
    386 			uiHeight=uiHeight+( (-1*uiHeight)%uiSmallestHeight);
    387 			uiDepth=uiDepth+( (-1*uiDepth)%uiSmallestDepth);
    388 		}
    389 
    390 		//Work out the specified MIP Map's data size
    391 		uiDataSize=PVRTGetBitsPerPixel(sTextureHeader.u64PixelFormat)*uiWidth*uiHeight*uiDepth;
    392 	}
    393 
    394 	//The number of faces/surfaces to register the size of.
    395 	PVRTuint32 numfaces = ((bAllFaces)?(sTextureHeader.u32NumFaces):(1));
    396 	PVRTuint32 numsurfs = ((bAllSurfaces)?(sTextureHeader.u32NumSurfaces):(1));
    397 
    398 	//Multiply the data size by number of faces and surfaces specified, and return.
    399 	return (PVRTuint32)(uiDataSize/8)*numsurfs*numfaces;
    400 }
    401 
    402 /*!***********************************************************************
    403  @Function		PVRTConvertOldTextureHeaderToV3
    404  @Input			LegacyHeader	Legacy header for conversion.
    405  @Modified		NewHeader		New header to output into.
    406  @Modified		MetaData		MetaData Map to output into.
    407  @Description	Converts a legacy texture header (V1 or V2) to a current
    408 				generation header (V3)
    409 *************************************************************************/
    410 void PVRTConvertOldTextureHeaderToV3(const PVR_Texture_Header* LegacyHeader, PVRTextureHeaderV3& NewHeader, CPVRTMap<PVRTuint32, CPVRTMap<PVRTuint32,MetaDataBlock> >* pMetaData)
    411 {
    412 	//Setup variables
    413 	bool isPreMult;
    414 	PVRTuint64 ptNew;
    415 	EPVRTColourSpace cSpaceNew;
    416 	EPVRTVariableType chanTypeNew;
    417 
    418 	//Map the old enum to the new format.
    419 	PVRTMapLegacyTextureEnumToNewFormat((PVRTPixelType)(LegacyHeader->dwpfFlags&0xff),ptNew,cSpaceNew,chanTypeNew,isPreMult);
    420 
    421 	//Check if this is a cube map.
    422 	bool isCubeMap = (LegacyHeader->dwpfFlags&PVRTEX_CUBEMAP)!=0;
    423 
    424 	//Setup the new header.
    425 	NewHeader.u64PixelFormat=ptNew;
    426 	NewHeader.u32ChannelType=chanTypeNew;
    427 	NewHeader.u32ColourSpace=cSpaceNew;
    428 	NewHeader.u32Depth=1;
    429 	NewHeader.u32Flags=isPreMult?PVRTEX3_PREMULTIPLIED:0;
    430 	NewHeader.u32Height=LegacyHeader->dwHeight;
    431 	NewHeader.u32MetaDataSize=0;
    432 	NewHeader.u32MIPMapCount=(LegacyHeader->dwpfFlags&PVRTEX_MIPMAP?LegacyHeader->dwMipMapCount+1:1); //Legacy headers have a MIP Map count of 0 if there is only the top level. New Headers have a count of 1.
    433 	NewHeader.u32NumFaces=(isCubeMap?6:1);
    434 
    435 	//Only compute the number of surfaces if it's a V2 header, else default to 1 surface.
    436 	if (LegacyHeader->dwHeaderSize==sizeof(PVR_Texture_Header))
    437 		NewHeader.u32NumSurfaces=(LegacyHeader->dwNumSurfs/(isCubeMap?6:1));
    438 	else
    439 		NewHeader.u32NumSurfaces=1;
    440 
    441 	NewHeader.u32Version=PVRTEX3_IDENT;
    442 	NewHeader.u32Width=LegacyHeader->dwWidth;
    443 
    444 	//Clear any currently stored MetaData, or it will be inaccurate.
    445 	if (pMetaData)
    446 	{
    447 		pMetaData->Clear();
    448 	}
    449 
    450 	//Check if this is a normal map.
    451 	if (LegacyHeader->dwpfFlags&PVRTEX_BUMPMAP && pMetaData)
    452 	{
    453 		//Get a reference to the correct block.
    454 		MetaDataBlock& mbBumpData=(*pMetaData)[PVRTEX_CURR_IDENT][ePVRTMetaDataBumpData];
    455 
    456 		//Set up the block.
    457 		mbBumpData.DevFOURCC=PVRTEX_CURR_IDENT;
    458 		mbBumpData.u32Key=ePVRTMetaDataBumpData;
    459 		mbBumpData.u32DataSize=8;
    460 		mbBumpData.Data=new PVRTuint8[8];
    461 
    462 		//Setup the data for the block.
    463 		float bumpScale = 1.0f;
    464 		const char* bumpOrder = "xyz";
    465 
    466 		//Copy the bumpScale into the data.
    467 		memcpy(mbBumpData.Data,&bumpScale,4);
    468 
    469 		//Clear the string
    470 		memset(mbBumpData.Data+4,0,4);
    471 
    472 		//Copy the bumpOrder into the data.
    473 		memcpy(mbBumpData.Data+4, bumpOrder,3);
    474 
    475 		//Increment the meta data size.
    476 		NewHeader.u32MetaDataSize+=(12+mbBumpData.u32DataSize);
    477 	}
    478 
    479 	//Check if for vertical flip orientation.
    480 	if (LegacyHeader->dwpfFlags&PVRTEX_VERTICAL_FLIP && pMetaData)
    481 	{
    482 		//Get the correct meta data block
    483 		MetaDataBlock& mbTexOrientation=(*pMetaData)[PVRTEX_CURR_IDENT][ePVRTMetaDataTextureOrientation];
    484 
    485 		//Set the block up.
    486 		mbTexOrientation.u32DataSize=3;
    487 		mbTexOrientation.Data=new PVRTuint8[3];
    488 		mbTexOrientation.DevFOURCC=PVRTEX_CURR_IDENT;
    489 		mbTexOrientation.u32Key=ePVRTMetaDataTextureOrientation;
    490 
    491 		//Initialise the block to default orientation.
    492 		memset(mbTexOrientation.Data,0,3);
    493 
    494 		//Set the block oriented upwards.
    495 		mbTexOrientation.Data[ePVRTAxisY]=ePVRTOrientUp;
    496 
    497 		//Increment the meta data size.
    498 		NewHeader.u32MetaDataSize+=(12+mbTexOrientation.u32DataSize);
    499 	}
    500 }
    501 
    502 /*!***********************************************************************
    503  @Function		PVRTMapLegacyTextureEnumToNewFormat
    504  @Input			OldFormat		Legacy Enumeration Value
    505  @Modified		newType			New PixelType identifier.
    506  @Modified		newCSpace		New ColourSpace
    507  @Modified		newChanType		New Channel Type
    508  @Modified		isPreMult		Whether format is pre-multiplied
    509  @Description	Maps a legacy enumeration value to the new PVR3 style format.
    510 *************************************************************************/
    511 void PVRTMapLegacyTextureEnumToNewFormat(PVRTPixelType OldFormat, PVRTuint64& newType, EPVRTColourSpace& newCSpace, EPVRTVariableType& newChanType, bool& isPreMult)
    512 {
    513 	//Default value.
    514 	isPreMult=false;
    515 
    516 	switch (OldFormat)
    517 	{
    518 	case MGLPT_ARGB_4444:
    519 		{
    520 			newType=PVRTGENPIXELID4('a','r','g','b',4,4,4,4);
    521 			newCSpace=ePVRTCSpacelRGB;
    522 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    523 			break;
    524 		}
    525 
    526 	case MGLPT_ARGB_1555:
    527 		{
    528 			newType=PVRTGENPIXELID4('a','r','g','b',1,5,5,5);
    529 			newCSpace=ePVRTCSpacelRGB;
    530 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    531 			break;
    532 		}
    533 
    534 	case MGLPT_RGB_565:
    535 		{
    536 			newType=PVRTGENPIXELID3('r','g','b',5,6,5);
    537 			newCSpace=ePVRTCSpacelRGB;
    538 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    539 			break;
    540 		}
    541 
    542 	case MGLPT_RGB_555:
    543 		{
    544 			newType=PVRTGENPIXELID4('x','r','g','b',1,5,5,5);
    545 			newCSpace=ePVRTCSpacelRGB;
    546 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    547 			break;
    548 		}
    549 
    550 	case MGLPT_RGB_888:
    551 		{
    552 			newType=PVRTGENPIXELID3('r','g','b',8,8,8);
    553 			newCSpace=ePVRTCSpacelRGB;
    554 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    555 			break;
    556 		}
    557 
    558 	case MGLPT_ARGB_8888:
    559 		{
    560 			newType=PVRTGENPIXELID4('a','r','g','b',8,8,8,8);
    561 			newCSpace=ePVRTCSpacelRGB;
    562 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    563 			break;
    564 		}
    565 
    566 	case MGLPT_ARGB_8332:
    567 		{
    568 			newType=PVRTGENPIXELID4('a','r','g','b',8,3,3,2);
    569 			newCSpace=ePVRTCSpacelRGB;
    570 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    571 			break;
    572 		}
    573 
    574 	case MGLPT_I_8:
    575 		{
    576 			newType=PVRTGENPIXELID1('i',8);
    577 			newCSpace=ePVRTCSpacelRGB;
    578 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    579 			break;
    580 		}
    581 
    582 	case MGLPT_AI_88:
    583 		{
    584 			newType=PVRTGENPIXELID2('a','i',8,8);
    585 			newCSpace=ePVRTCSpacelRGB;
    586 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    587 			break;
    588 		}
    589 
    590 	case MGLPT_1_BPP:
    591 		{
    592 			newType=ePVRTPF_BW1bpp;
    593 			newCSpace=ePVRTCSpacelRGB;
    594 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    595 			break;
    596 		}
    597 
    598 	case MGLPT_VY1UY0:
    599 		{
    600 			newType=ePVRTPF_YUY2;
    601 			newCSpace=ePVRTCSpacelRGB;
    602 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    603 			break;
    604 		}
    605 
    606 	case MGLPT_Y1VY0U:
    607 		{
    608 			newType=ePVRTPF_UYVY;
    609 			newCSpace=ePVRTCSpacelRGB;
    610 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    611 			break;
    612 		}
    613 
    614 	case MGLPT_PVRTC2:
    615 		{
    616 			newType=ePVRTPF_PVRTCI_2bpp_RGBA;
    617 			newCSpace=ePVRTCSpacelRGB;
    618 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    619 			break;
    620 		}
    621 
    622 	case MGLPT_PVRTC4:
    623 		{
    624 			newType=ePVRTPF_PVRTCI_4bpp_RGBA;
    625 			newCSpace=ePVRTCSpacelRGB;
    626 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    627 			break;
    628 		}
    629 
    630 	case OGL_RGBA_4444:
    631 		{
    632 			newType=PVRTGENPIXELID4('r','g','b','a',4,4,4,4);
    633 			newCSpace=ePVRTCSpacelRGB;
    634 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    635 			break;
    636 		}
    637 
    638 	case OGL_RGBA_5551:
    639 		{
    640 			newType=PVRTGENPIXELID4('r','g','b','a',5,5,5,1);
    641 			newCSpace=ePVRTCSpacelRGB;
    642 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    643 			break;
    644 		}
    645 
    646 	case OGL_RGBA_8888:
    647 		{
    648 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
    649 			newCSpace=ePVRTCSpacelRGB;
    650 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    651 			break;
    652 		}
    653 
    654 	case OGL_RGB_565:
    655 		{
    656 			newType=PVRTGENPIXELID3('r','g','b',5,6,5);
    657 			newCSpace=ePVRTCSpacelRGB;
    658 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    659 			break;
    660 		}
    661 
    662 	case OGL_RGB_555:
    663 		{
    664 			newType=PVRTGENPIXELID4('r','g','b','x',5,5,5,1);
    665 			newCSpace=ePVRTCSpacelRGB;
    666 			newChanType=ePVRTVarTypeUnsignedShortNorm;
    667 			break;
    668 		}
    669 
    670 	case OGL_RGB_888:
    671 		{
    672 			newType=PVRTGENPIXELID3('r','g','b',8,8,8);
    673 			newCSpace=ePVRTCSpacelRGB;
    674 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    675 			break;
    676 		}
    677 
    678 	case OGL_I_8:
    679 		{
    680 			newType=PVRTGENPIXELID1('l',8);
    681 			newCSpace=ePVRTCSpacelRGB;
    682 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    683 			break;
    684 		}
    685 
    686 	case OGL_AI_88:
    687 		{
    688 			newType=PVRTGENPIXELID2('l','a',8,8);
    689 			newCSpace=ePVRTCSpacelRGB;
    690 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    691 			break;
    692 		}
    693 
    694 	case OGL_PVRTC2:
    695 		{
    696 			newType=ePVRTPF_PVRTCI_2bpp_RGBA;
    697 			newCSpace=ePVRTCSpacelRGB;
    698 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    699 			break;
    700 		}
    701 
    702 	case OGL_PVRTC4:
    703 		{
    704 			newType=ePVRTPF_PVRTCI_4bpp_RGBA;
    705 			newCSpace=ePVRTCSpacelRGB;
    706 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    707 			break;
    708 		}
    709 
    710 	case OGL_BGRA_8888:
    711 		{
    712 			newType=PVRTGENPIXELID4('b','g','r','a',8,8,8,8);
    713 			newCSpace=ePVRTCSpacelRGB;
    714 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    715 			break;
    716 		}
    717 
    718 	case OGL_A_8:
    719 		{
    720 			newType=PVRTGENPIXELID1('a',8);
    721 			newCSpace=ePVRTCSpacelRGB;
    722 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    723 			break;
    724 		}
    725 
    726 	case OGL_PVRTCII4:
    727 		{
    728 			newType=ePVRTPF_PVRTCII_4bpp;
    729 			newCSpace=ePVRTCSpacelRGB;
    730 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    731 			break;
    732 		}
    733 
    734 	case OGL_PVRTCII2:
    735 		{
    736 			newType=ePVRTPF_PVRTCII_2bpp;
    737 			newCSpace=ePVRTCSpacelRGB;
    738 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    739 			break;
    740 		}
    741 
    742 #ifdef _WIN32
    743 	case D3D_DXT1:
    744 		{
    745 			newType=ePVRTPF_DXT1;
    746 			newCSpace=ePVRTCSpacelRGB;
    747 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    748 			break;
    749 		}
    750 
    751 	case D3D_DXT2:
    752 		{
    753 			newType=ePVRTPF_DXT2;
    754 			newCSpace=ePVRTCSpacelRGB;
    755 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    756 			isPreMult=true;
    757 			break;
    758 		}
    759 
    760 	case D3D_DXT3:
    761 		{
    762 			newType=ePVRTPF_DXT3;
    763 			newCSpace=ePVRTCSpacelRGB;
    764 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    765 			break;
    766 		}
    767 
    768 	case D3D_DXT4:
    769 		{
    770 			newType=ePVRTPF_DXT4;
    771 			newCSpace=ePVRTCSpacelRGB;
    772 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    773 			isPreMult=true;
    774 			break;
    775 		}
    776 
    777 	case D3D_DXT5:
    778 		{
    779 			newType=ePVRTPF_DXT5;
    780 			newCSpace=ePVRTCSpacelRGB;
    781 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    782 			break;
    783 		}
    784 
    785 #endif
    786 	case D3D_RGB_332:
    787 		{
    788 			newType=PVRTGENPIXELID3('r','g','b',3,3,2);
    789 			newCSpace=ePVRTCSpacelRGB;
    790 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    791 			break;
    792 		}
    793 
    794 	case D3D_AL_44:
    795 		{
    796 			newType=PVRTGENPIXELID2('a','l',4,4);
    797 			newCSpace=ePVRTCSpacelRGB;
    798 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    799 			break;
    800 		}
    801 
    802 	case D3D_LVU_655:
    803 		{
    804 			newType=PVRTGENPIXELID3('l','g','r',6,5,5);
    805 			newCSpace=ePVRTCSpacelRGB;
    806 			newChanType=ePVRTVarTypeSignedIntegerNorm;
    807 			break;
    808 		}
    809 
    810 	case D3D_XLVU_8888:
    811 		{
    812 			newType=PVRTGENPIXELID4('x','l','g','r',8,8,8,8);
    813 			newCSpace=ePVRTCSpacelRGB;
    814 			newChanType=ePVRTVarTypeSignedIntegerNorm;
    815 			break;
    816 		}
    817 
    818 	case D3D_QWVU_8888:
    819 		{
    820 			newType=PVRTGENPIXELID4('a','b','g','r',8,8,8,8);
    821 			newCSpace=ePVRTCSpacelRGB;
    822 			newChanType=ePVRTVarTypeSignedIntegerNorm;
    823 			break;
    824 		}
    825 
    826 	case D3D_ABGR_2101010:
    827 		{
    828 			newType=PVRTGENPIXELID4('a','b','g','r',2,10,10,10);
    829 			newCSpace=ePVRTCSpacelRGB;
    830 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    831 			break;
    832 		}
    833 
    834 	case D3D_ARGB_2101010:
    835 		{
    836 			newType=PVRTGENPIXELID4('a','r','g','b',2,10,10,10);
    837 			newCSpace=ePVRTCSpacelRGB;
    838 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    839 			break;
    840 		}
    841 
    842 	case D3D_AWVU_2101010:
    843 		{
    844 			newType=PVRTGENPIXELID4('a','r','g','b',2,10,10,10);
    845 			newCSpace=ePVRTCSpacelRGB;
    846 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    847 			break;
    848 		}
    849 
    850 	case D3D_GR_1616:
    851 		{
    852 			newType=PVRTGENPIXELID2('g','r',16,16);
    853 			newCSpace=ePVRTCSpacelRGB;
    854 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    855 			break;
    856 		}
    857 
    858 	case D3D_VU_1616:
    859 		{
    860 			newType=PVRTGENPIXELID2('g','r',16,16);
    861 			newCSpace=ePVRTCSpacelRGB;
    862 			newChanType=ePVRTVarTypeSignedIntegerNorm;
    863 			break;
    864 		}
    865 
    866 	case D3D_ABGR_16161616:
    867 		{
    868 			newType=PVRTGENPIXELID4('a','b','g','r',16,16,16,16);
    869 			newCSpace=ePVRTCSpacelRGB;
    870 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    871 			break;
    872 		}
    873 
    874 	case D3D_R16F:
    875 		{
    876 			newType=PVRTGENPIXELID1('r',16);
    877 			newCSpace=ePVRTCSpacelRGB;
    878 			newChanType=ePVRTVarTypeSignedFloat;
    879 			break;
    880 		}
    881 
    882 	case D3D_GR_1616F:
    883 		{
    884 			newType=PVRTGENPIXELID2('g','r',16,16);
    885 			newCSpace=ePVRTCSpacelRGB;
    886 			newChanType=ePVRTVarTypeSignedFloat;
    887 			break;
    888 		}
    889 
    890 	case D3D_ABGR_16161616F:
    891 		{
    892 			newType=PVRTGENPIXELID4('a','b','g','r',16,16,16,16);
    893 			newCSpace=ePVRTCSpacelRGB;
    894 			newChanType=ePVRTVarTypeSignedFloat;
    895 			break;
    896 		}
    897 
    898 	case D3D_R32F:
    899 		{
    900 			newType=PVRTGENPIXELID1('r',32);
    901 			newCSpace=ePVRTCSpacelRGB;
    902 			newChanType=ePVRTVarTypeSignedFloat;
    903 			break;
    904 		}
    905 
    906 	case D3D_GR_3232F:
    907 		{
    908 			newType=PVRTGENPIXELID2('g','r',32,32);
    909 			newCSpace=ePVRTCSpacelRGB;
    910 			newChanType=ePVRTVarTypeSignedFloat;
    911 			break;
    912 		}
    913 
    914 	case D3D_ABGR_32323232F:
    915 		{
    916 			newType=PVRTGENPIXELID4('a','b','g','r',32,32,32,32);
    917 			newCSpace=ePVRTCSpacelRGB;
    918 			newChanType=ePVRTVarTypeSignedFloat;
    919 			break;
    920 		}
    921 
    922 	case ETC_RGB_4BPP:
    923 		{
    924 			newType=ePVRTPF_ETC1;
    925 			newCSpace=ePVRTCSpacelRGB;
    926 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    927 			break;
    928 		}
    929 
    930 	case D3D_A8:
    931 		{
    932 			newType=PVRTGENPIXELID1('a',8);
    933 			newCSpace=ePVRTCSpacelRGB;
    934 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    935 			break;
    936 		}
    937 
    938 	case D3D_V8U8:
    939 		{
    940 			newType=PVRTGENPIXELID2('g','r',8,8);
    941 			newCSpace=ePVRTCSpacelRGB;
    942 			newChanType=ePVRTVarTypeSignedIntegerNorm;
    943 			break;
    944 		}
    945 
    946 	case D3D_L16:
    947 		{
    948 			newType=PVRTGENPIXELID1('l',16);
    949 			newCSpace=ePVRTCSpacelRGB;
    950 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    951 			break;
    952 		}
    953 
    954 	case D3D_L8:
    955 		{
    956 			newType=PVRTGENPIXELID1('l',8);
    957 			newCSpace=ePVRTCSpacelRGB;
    958 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    959 			break;
    960 		}
    961 
    962 	case D3D_AL_88:
    963 		{
    964 			newType=PVRTGENPIXELID2('a','l',8,8);
    965 			newCSpace=ePVRTCSpacelRGB;
    966 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
    967 			break;
    968 		}
    969 
    970 	case D3D_UYVY:
    971 		{
    972 			newType=ePVRTPF_UYVY;
    973 			newCSpace=ePVRTCSpacelRGB;
    974 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    975 			break;
    976 		}
    977 
    978 	case D3D_YUY2:
    979 		{
    980 			newType=ePVRTPF_YUY2;
    981 			newCSpace=ePVRTCSpacelRGB;
    982 			newChanType=ePVRTVarTypeUnsignedByteNorm;
    983 			break;
    984 		}
    985 
    986 	case DX10_R32G32B32A32_FLOAT:
    987 		{
    988 			newType=PVRTGENPIXELID4('r','g','b','a',32,32,32,32);
    989 			newCSpace=ePVRTCSpacelRGB;
    990 			newChanType=ePVRTVarTypeSignedFloat;
    991 			break;
    992 		}
    993 
    994 	case DX10_R32G32B32A32_UINT:
    995 		{
    996 			newType=PVRTGENPIXELID4('r','g','b','a',32,32,32,32);
    997 			newCSpace=ePVRTCSpacelRGB;
    998 			newChanType=ePVRTVarTypeUnsignedInteger;
    999 			break;
   1000 		}
   1001 
   1002 	case DX10_R32G32B32A32_SINT:
   1003 		{
   1004 			newType=PVRTGENPIXELID4('r','g','b','a',32,32,32,32);
   1005 			newCSpace=ePVRTCSpacelRGB;
   1006 			newChanType=ePVRTVarTypeSignedInteger;
   1007 			break;
   1008 		}
   1009 
   1010 	case DX10_R32G32B32_FLOAT:
   1011 		{
   1012 			newType=PVRTGENPIXELID3('r','g','b',32,32,32);
   1013 			newCSpace=ePVRTCSpacelRGB;
   1014 			newChanType=ePVRTVarTypeSignedFloat;
   1015 			break;
   1016 		}
   1017 
   1018 	case DX10_R32G32B32_UINT:
   1019 		{
   1020 			newType=PVRTGENPIXELID3('r','g','b',32,32,32);
   1021 			newCSpace=ePVRTCSpacelRGB;
   1022 			newChanType=ePVRTVarTypeUnsignedInteger;
   1023 			break;
   1024 		}
   1025 
   1026 	case DX10_R32G32B32_SINT:
   1027 		{
   1028 			newType=PVRTGENPIXELID3('r','g','b',32,32,32);
   1029 			newCSpace=ePVRTCSpacelRGB;
   1030 			newChanType=ePVRTVarTypeSignedInteger;
   1031 			break;
   1032 		}
   1033 
   1034 	case DX10_R16G16B16A16_FLOAT:
   1035 		{
   1036 			newType=PVRTGENPIXELID4('r','g','b','a',16,16,16,16);
   1037 			newCSpace=ePVRTCSpacelRGB;
   1038 			newChanType=ePVRTVarTypeSignedFloat;
   1039 			break;
   1040 		}
   1041 
   1042 	case DX10_R16G16B16A16_UNORM:
   1043 		{
   1044 			newType=PVRTGENPIXELID4('r','g','b','a',16,16,16,16);
   1045 			newCSpace=ePVRTCSpacelRGB;
   1046 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1047 			break;
   1048 		}
   1049 
   1050 	case DX10_R16G16B16A16_UINT:
   1051 		{
   1052 			newType=PVRTGENPIXELID4('r','g','b','a',16,16,16,16);
   1053 			newCSpace=ePVRTCSpacelRGB;
   1054 			newChanType=ePVRTVarTypeUnsignedShort;
   1055 			break;
   1056 		}
   1057 
   1058 	case DX10_R16G16B16A16_SNORM:
   1059 		{
   1060 			newType=PVRTGENPIXELID4('r','g','b','a',16,16,16,16);
   1061 			newCSpace=ePVRTCSpacelRGB;
   1062 			newChanType=ePVRTVarTypeSignedShortNorm;
   1063 			break;
   1064 		}
   1065 
   1066 	case DX10_R16G16B16A16_SINT:
   1067 		{
   1068 			newType=PVRTGENPIXELID4('r','g','b','a',16,16,16,16);
   1069 			newCSpace=ePVRTCSpacelRGB;
   1070 			newChanType=ePVRTVarTypeSignedShort;
   1071 			break;
   1072 		}
   1073 
   1074 	case DX10_R32G32_FLOAT:
   1075 		{
   1076 			newType=PVRTGENPIXELID2('r','g',32,32);
   1077 			newCSpace=ePVRTCSpacelRGB;
   1078 			newChanType=ePVRTVarTypeSignedFloat;
   1079 			break;
   1080 		}
   1081 
   1082 	case DX10_R32G32_UINT:
   1083 		{
   1084 			newType=PVRTGENPIXELID2('r','g',32,32);
   1085 			newCSpace=ePVRTCSpacelRGB;
   1086 			newChanType=ePVRTVarTypeUnsignedInteger;
   1087 			break;
   1088 		}
   1089 
   1090 	case DX10_R32G32_SINT:
   1091 		{
   1092 			newType=PVRTGENPIXELID2('r','g',32,32);
   1093 			newCSpace=ePVRTCSpacelRGB;
   1094 			newChanType=ePVRTVarTypeSignedInteger;
   1095 			break;
   1096 		}
   1097 
   1098 	case DX10_R10G10B10A2_UNORM:
   1099 		{
   1100 			newType=PVRTGENPIXELID4('r','g','b','a',10,10,10,2);
   1101 			newCSpace=ePVRTCSpacelRGB;
   1102 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1103 			break;
   1104 		}
   1105 
   1106 	case DX10_R10G10B10A2_UINT:
   1107 		{
   1108 			newType=PVRTGENPIXELID4('r','g','b','a',10,10,10,2);
   1109 			newCSpace=ePVRTCSpacelRGB;
   1110 			newChanType=ePVRTVarTypeUnsignedInteger;
   1111 			break;
   1112 		}
   1113 
   1114 	case DX10_R11G11B10_FLOAT:
   1115 		{
   1116 			newType=PVRTGENPIXELID3('r','g','b',11,11,10);
   1117 			newCSpace=ePVRTCSpacelRGB;
   1118 			newChanType=ePVRTVarTypeSignedFloat;
   1119 			break;
   1120 		}
   1121 
   1122 	case DX10_R8G8B8A8_UNORM:
   1123 		{
   1124 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1125 			newCSpace=ePVRTCSpacelRGB;
   1126 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1127 			break;
   1128 		}
   1129 
   1130 	case DX10_R8G8B8A8_UNORM_SRGB:
   1131 		{
   1132 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1133 			newCSpace=ePVRTCSpacesRGB;
   1134 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1135 			break;
   1136 		}
   1137 
   1138 	case DX10_R8G8B8A8_UINT:
   1139 		{
   1140 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1141 			newCSpace=ePVRTCSpacelRGB;
   1142 			newChanType=ePVRTVarTypeUnsignedByte;
   1143 			break;
   1144 		}
   1145 
   1146 	case DX10_R8G8B8A8_SNORM:
   1147 		{
   1148 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1149 			newCSpace=ePVRTCSpacelRGB;
   1150 			newChanType=ePVRTVarTypeSignedByteNorm;
   1151 			break;
   1152 		}
   1153 
   1154 	case DX10_R8G8B8A8_SINT:
   1155 		{
   1156 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1157 			newCSpace=ePVRTCSpacelRGB;
   1158 			newChanType=ePVRTVarTypeSignedByte;
   1159 			break;
   1160 		}
   1161 
   1162 	case DX10_R16G16_FLOAT:
   1163 		{
   1164 			newType=PVRTGENPIXELID2('r','g',16,16);
   1165 			newCSpace=ePVRTCSpacelRGB;
   1166 			newChanType=ePVRTVarTypeSignedFloat;
   1167 			break;
   1168 		}
   1169 
   1170 	case DX10_R16G16_UNORM:
   1171 		{
   1172 			newType=PVRTGENPIXELID2('r','g',16,16);
   1173 			newCSpace=ePVRTCSpacelRGB;
   1174 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1175 			break;
   1176 		}
   1177 
   1178 	case DX10_R16G16_UINT:
   1179 		{
   1180 			newType=PVRTGENPIXELID2('r','g',16,16);
   1181 			newCSpace=ePVRTCSpacelRGB;
   1182 			newChanType=ePVRTVarTypeUnsignedShort;
   1183 			break;
   1184 		}
   1185 
   1186 	case DX10_R16G16_SNORM:
   1187 		{
   1188 			newType=PVRTGENPIXELID2('r','g',16,16);
   1189 			newCSpace=ePVRTCSpacelRGB;
   1190 			newChanType=ePVRTVarTypeSignedShortNorm;
   1191 			break;
   1192 		}
   1193 
   1194 	case DX10_R16G16_SINT:
   1195 		{
   1196 			newType=PVRTGENPIXELID2('r','g',16,16);
   1197 			newCSpace=ePVRTCSpacelRGB;
   1198 			newChanType=ePVRTVarTypeSignedShort;
   1199 			break;
   1200 		}
   1201 
   1202 	case DX10_R32_FLOAT:
   1203 		{
   1204 			newType=PVRTGENPIXELID1('r',32);
   1205 			newCSpace=ePVRTCSpacelRGB;
   1206 			newChanType=ePVRTVarTypeSignedFloat;
   1207 			break;
   1208 		}
   1209 
   1210 	case DX10_R32_UINT:
   1211 		{
   1212 			newType=PVRTGENPIXELID1('r',32);
   1213 			newCSpace=ePVRTCSpacelRGB;
   1214 			newChanType=ePVRTVarTypeUnsignedInteger;
   1215 			break;
   1216 		}
   1217 
   1218 	case DX10_R32_SINT:
   1219 		{
   1220 			newType=PVRTGENPIXELID1('r',32);
   1221 			newCSpace=ePVRTCSpacelRGB;
   1222 			newChanType=ePVRTVarTypeSignedInteger;
   1223 			break;
   1224 		}
   1225 
   1226 	case DX10_R8G8_UNORM:
   1227 		{
   1228 			newType=PVRTGENPIXELID2('r','g',8,8);
   1229 			newCSpace=ePVRTCSpacelRGB;
   1230 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1231 			break;
   1232 		}
   1233 
   1234 	case DX10_R8G8_UINT:
   1235 		{
   1236 			newType=PVRTGENPIXELID2('r','g',8,8);
   1237 			newCSpace=ePVRTCSpacelRGB;
   1238 			newChanType=ePVRTVarTypeUnsignedByte;
   1239 			break;
   1240 		}
   1241 
   1242 	case DX10_R8G8_SNORM:
   1243 		{
   1244 			newType=PVRTGENPIXELID2('r','g',8,8);
   1245 			newCSpace=ePVRTCSpacelRGB;
   1246 			newChanType=ePVRTVarTypeSignedByteNorm;
   1247 			break;
   1248 		}
   1249 
   1250 	case DX10_R8G8_SINT:
   1251 		{
   1252 			newType=PVRTGENPIXELID2('r','g',8,8);
   1253 			newCSpace=ePVRTCSpacelRGB;
   1254 			newChanType=ePVRTVarTypeSignedByte;
   1255 			break;
   1256 		}
   1257 
   1258 	case DX10_R16_FLOAT:
   1259 		{
   1260 			newType=PVRTGENPIXELID1('r',16);
   1261 			newCSpace=ePVRTCSpacelRGB;
   1262 			newChanType=ePVRTVarTypeSignedFloat;
   1263 			break;
   1264 		}
   1265 
   1266 	case DX10_R16_UNORM:
   1267 		{
   1268 			newType=PVRTGENPIXELID1('r',16);
   1269 			newCSpace=ePVRTCSpacelRGB;
   1270 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1271 			break;
   1272 		}
   1273 
   1274 	case DX10_R16_UINT:
   1275 		{
   1276 			newType=PVRTGENPIXELID1('r',16);
   1277 			newCSpace=ePVRTCSpacelRGB;
   1278 			newChanType=ePVRTVarTypeUnsignedShort;
   1279 			break;
   1280 		}
   1281 
   1282 	case DX10_R16_SNORM:
   1283 		{
   1284 			newType=PVRTGENPIXELID1('r',16);
   1285 			newCSpace=ePVRTCSpacelRGB;
   1286 			newChanType=ePVRTVarTypeSignedShortNorm;
   1287 			break;
   1288 		}
   1289 
   1290 	case DX10_R16_SINT:
   1291 		{
   1292 			newType=PVRTGENPIXELID1('r',16);
   1293 			newCSpace=ePVRTCSpacelRGB;
   1294 			newChanType=ePVRTVarTypeSignedShort;
   1295 			break;
   1296 		}
   1297 
   1298 	case DX10_R8_UNORM:
   1299 		{
   1300 			newType=PVRTGENPIXELID1('r',8);
   1301 			newCSpace=ePVRTCSpacelRGB;
   1302 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1303 			break;
   1304 		}
   1305 
   1306 	case DX10_R8_UINT:
   1307 		{
   1308 			newType=PVRTGENPIXELID1('r',8);
   1309 			newCSpace=ePVRTCSpacelRGB;
   1310 			newChanType=ePVRTVarTypeUnsignedByte;
   1311 			break;
   1312 		}
   1313 
   1314 	case DX10_R8_SNORM:
   1315 		{
   1316 			newType=PVRTGENPIXELID1('r',8);
   1317 			newCSpace=ePVRTCSpacelRGB;
   1318 			newChanType=ePVRTVarTypeSignedByteNorm;
   1319 			break;
   1320 		}
   1321 
   1322 	case DX10_R8_SINT:
   1323 		{
   1324 			newType=PVRTGENPIXELID1('r',8);
   1325 			newCSpace=ePVRTCSpacelRGB;
   1326 			newChanType=ePVRTVarTypeSignedByte;
   1327 			break;
   1328 		}
   1329 
   1330 	case DX10_A8_UNORM:
   1331 		{
   1332 			newType=PVRTGENPIXELID1('r',8);
   1333 			newCSpace=ePVRTCSpacelRGB;
   1334 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1335 			break;
   1336 		}
   1337 
   1338 	case DX10_R1_UNORM:
   1339 		{
   1340 			newType=ePVRTPF_BW1bpp;
   1341 			newCSpace=ePVRTCSpacelRGB;
   1342 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1343 			break;
   1344 		}
   1345 
   1346 	case DX10_R9G9B9E5_SHAREDEXP:
   1347 		{
   1348 			newType=ePVRTPF_SharedExponentR9G9B9E5;
   1349 			newCSpace=ePVRTCSpacelRGB;
   1350 			newChanType=ePVRTVarTypeSignedFloat;
   1351 			break;
   1352 		}
   1353 
   1354 	case DX10_R8G8_B8G8_UNORM:
   1355 		{
   1356 			newType=ePVRTPF_RGBG8888;
   1357 			newCSpace=ePVRTCSpacelRGB;
   1358 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1359 			break;
   1360 		}
   1361 
   1362 	case DX10_G8R8_G8B8_UNORM:
   1363 		{
   1364 			newType=ePVRTPF_GRGB8888;
   1365 			newCSpace=ePVRTCSpacelRGB;
   1366 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1367 			break;
   1368 		}
   1369 
   1370 #ifdef _WIN32
   1371 	case DX10_BC1_UNORM:
   1372 		{
   1373 			newType=ePVRTPF_DXT1;
   1374 			newCSpace=ePVRTCSpacelRGB;
   1375 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1376 			break;
   1377 		}
   1378 
   1379 	case DX10_BC1_UNORM_SRGB:
   1380 		{
   1381 			newType=ePVRTPF_DXT1;
   1382 			newCSpace=ePVRTCSpacesRGB;
   1383 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1384 			break;
   1385 		}
   1386 
   1387 	case DX10_BC2_UNORM:
   1388 		{
   1389 			newType=ePVRTPF_DXT3;
   1390 			newCSpace=ePVRTCSpacelRGB;
   1391 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1392 			break;
   1393 		}
   1394 
   1395 	case DX10_BC2_UNORM_SRGB:
   1396 		{
   1397 			newType=ePVRTPF_DXT3;
   1398 			newCSpace=ePVRTCSpacesRGB;
   1399 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1400 			break;
   1401 		}
   1402 
   1403 	case DX10_BC3_UNORM:
   1404 		{
   1405 			newType=ePVRTPF_DXT5;
   1406 			newCSpace=ePVRTCSpacelRGB;
   1407 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1408 			break;
   1409 		}
   1410 
   1411 	case DX10_BC3_UNORM_SRGB:
   1412 		{
   1413 			newType=ePVRTPF_DXT5;
   1414 			newCSpace=ePVRTCSpacesRGB;
   1415 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1416 			break;
   1417 		}
   1418 
   1419 	case DX10_BC4_UNORM:
   1420 		{
   1421 			newType=ePVRTPF_BC4;
   1422 			newCSpace=ePVRTCSpacesRGB;
   1423 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1424 			break;
   1425 		}
   1426 
   1427 	case DX10_BC4_SNORM:
   1428 		{
   1429 			newType=ePVRTPF_BC4;
   1430 			newCSpace=ePVRTCSpacelRGB;
   1431 			newChanType=ePVRTVarTypeSignedIntegerNorm;
   1432 			break;
   1433 		}
   1434 
   1435 	case DX10_BC5_UNORM:
   1436 		{
   1437 			newType=ePVRTPF_BC5;
   1438 			newCSpace=ePVRTCSpacelRGB;
   1439 			newChanType=ePVRTVarTypeUnsignedIntegerNorm;
   1440 			break;
   1441 		}
   1442 
   1443 	case DX10_BC5_SNORM:
   1444 		{
   1445 			newType=ePVRTPF_BC5;
   1446 			newCSpace=ePVRTCSpacelRGB;
   1447 			newChanType=ePVRTVarTypeSignedIntegerNorm;
   1448 			break;
   1449 		}
   1450 
   1451 #endif
   1452 	case ePT_VG_sRGBX_8888:
   1453 		{
   1454 			newType=PVRTGENPIXELID4('r','g','b','x',8,8,8,8);
   1455 			newCSpace=ePVRTCSpacesRGB;
   1456 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1457 			break;
   1458 		}
   1459 
   1460 	case ePT_VG_sRGBA_8888:
   1461 		{
   1462 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1463 			newCSpace=ePVRTCSpacesRGB;
   1464 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1465 			break;
   1466 		}
   1467 
   1468 	case ePT_VG_sRGBA_8888_PRE:
   1469 		{
   1470 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1471 			newCSpace=ePVRTCSpacesRGB;
   1472 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1473 			isPreMult=true;
   1474 			break;
   1475 		}
   1476 
   1477 	case ePT_VG_sRGB_565:
   1478 		{
   1479 			newType=PVRTGENPIXELID3('r','g','b',5,6,5);
   1480 			newCSpace=ePVRTCSpacesRGB;
   1481 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1482 			break;
   1483 		}
   1484 
   1485 	case ePT_VG_sRGBA_5551:
   1486 		{
   1487 			newType=PVRTGENPIXELID4('r','g','b','a',5,5,5,1);
   1488 			newCSpace=ePVRTCSpacesRGB;
   1489 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1490 			break;
   1491 		}
   1492 
   1493 	case ePT_VG_sRGBA_4444:
   1494 		{
   1495 			newType=PVRTGENPIXELID4('r','g','b','a',4,4,4,4);
   1496 			newCSpace=ePVRTCSpacesRGB;
   1497 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1498 			break;
   1499 		}
   1500 
   1501 	case ePT_VG_sL_8:
   1502 		{
   1503 			newType=PVRTGENPIXELID1('l',8);
   1504 			newCSpace=ePVRTCSpacesRGB;
   1505 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1506 			break;
   1507 		}
   1508 
   1509 	case ePT_VG_lRGBX_8888:
   1510 		{
   1511 			newType=PVRTGENPIXELID4('r','g','b','x',8,8,8,8);
   1512 			newCSpace=ePVRTCSpacelRGB;
   1513 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1514 			break;
   1515 		}
   1516 
   1517 	case ePT_VG_lRGBA_8888:
   1518 		{
   1519 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1520 			newCSpace=ePVRTCSpacelRGB;
   1521 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1522 			break;
   1523 		}
   1524 
   1525 	case ePT_VG_lRGBA_8888_PRE:
   1526 		{
   1527 			newType=PVRTGENPIXELID4('r','g','b','a',8,8,8,8);
   1528 			newCSpace=ePVRTCSpacelRGB;
   1529 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1530 			isPreMult=true;
   1531 			break;
   1532 		}
   1533 
   1534 	case ePT_VG_lL_8:
   1535 		{
   1536 			newType=PVRTGENPIXELID1('l',8);
   1537 			newCSpace=ePVRTCSpacelRGB;
   1538 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1539 			break;
   1540 		}
   1541 
   1542 	case ePT_VG_A_8:
   1543 		{
   1544 			newType=PVRTGENPIXELID1('a',8);
   1545 			newCSpace=ePVRTCSpacelRGB;
   1546 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1547 			break;
   1548 		}
   1549 
   1550 	case ePT_VG_BW_1:
   1551 		{
   1552 			newType=ePVRTPF_BW1bpp;
   1553 			newCSpace=ePVRTCSpacelRGB;
   1554 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1555 			break;
   1556 		}
   1557 
   1558 	case ePT_VG_sXRGB_8888:
   1559 		{
   1560 			newType=PVRTGENPIXELID4('x','r','g','b',8,8,8,8);
   1561 			newCSpace=ePVRTCSpacesRGB;
   1562 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1563 			break;
   1564 		}
   1565 
   1566 	case ePT_VG_sARGB_8888:
   1567 		{
   1568 			newType=PVRTGENPIXELID4('a','r','g','b',8,8,8,8);
   1569 			newCSpace=ePVRTCSpacesRGB;
   1570 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1571 			break;
   1572 		}
   1573 
   1574 	case ePT_VG_sARGB_8888_PRE:
   1575 		{
   1576 			newType=PVRTGENPIXELID4('a','r','g','b',8,8,8,8);
   1577 			newCSpace=ePVRTCSpacesRGB;
   1578 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1579 			isPreMult=true;
   1580 			break;
   1581 		}
   1582 
   1583 	case ePT_VG_sARGB_1555:
   1584 		{
   1585 			newType=PVRTGENPIXELID4('a','r','g','b',1,5,5,5);
   1586 			newCSpace=ePVRTCSpacesRGB;
   1587 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1588 			break;
   1589 		}
   1590 
   1591 	case ePT_VG_sARGB_4444:
   1592 		{
   1593 			newType=PVRTGENPIXELID4('a','r','g','b',4,4,4,4);
   1594 			newCSpace=ePVRTCSpacesRGB;
   1595 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1596 			break;
   1597 		}
   1598 
   1599 	case ePT_VG_lXRGB_8888:
   1600 		{
   1601 			newType=PVRTGENPIXELID4('x','r','g','b',8,8,8,8);
   1602 			newCSpace=ePVRTCSpacelRGB;
   1603 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1604 			break;
   1605 		}
   1606 
   1607 	case ePT_VG_lARGB_8888:
   1608 		{
   1609 			newType=PVRTGENPIXELID4('a','r','g','b',8,8,8,8);
   1610 			newCSpace=ePVRTCSpacelRGB;
   1611 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1612 			break;
   1613 		}
   1614 
   1615 	case ePT_VG_lARGB_8888_PRE:
   1616 		{
   1617 			newType=PVRTGENPIXELID4('a','r','g','b',8,8,8,8);
   1618 			newCSpace=ePVRTCSpacelRGB;
   1619 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1620 			isPreMult=true;
   1621 			break;
   1622 		}
   1623 
   1624 	case ePT_VG_sBGRX_8888:
   1625 		{
   1626 			newType=PVRTGENPIXELID4('b','g','r','x',8,8,8,8);
   1627 			newCSpace=ePVRTCSpacesRGB;
   1628 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1629 			break;
   1630 		}
   1631 
   1632 	case ePT_VG_sBGRA_8888:
   1633 		{
   1634 			newType=PVRTGENPIXELID4('b','g','r','a',8,8,8,8);
   1635 			newCSpace=ePVRTCSpacesRGB;
   1636 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1637 			break;
   1638 		}
   1639 
   1640 	case ePT_VG_sBGRA_8888_PRE:
   1641 		{
   1642 			newType=PVRTGENPIXELID4('b','g','r','a',8,8,8,8);
   1643 			newCSpace=ePVRTCSpacesRGB;
   1644 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1645 			isPreMult=true;
   1646 			break;
   1647 		}
   1648 
   1649 	case ePT_VG_sBGR_565:
   1650 		{
   1651 			newType=PVRTGENPIXELID3('b','g','r',5,6,5);
   1652 			newCSpace=ePVRTCSpacesRGB;
   1653 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1654 			break;
   1655 		}
   1656 
   1657 	case ePT_VG_sBGRA_5551:
   1658 		{
   1659 			newType=PVRTGENPIXELID4('b','g','r','a',5,5,5,1);
   1660 			newCSpace=ePVRTCSpacesRGB;
   1661 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1662 			break;
   1663 		}
   1664 
   1665 	case ePT_VG_sBGRA_4444:
   1666 		{
   1667 			newType=PVRTGENPIXELID4('b','g','r','x',4,4,4,4);
   1668 			newCSpace=ePVRTCSpacesRGB;
   1669 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1670 			break;
   1671 		}
   1672 
   1673 	case ePT_VG_lBGRX_8888:
   1674 		{
   1675 			newType=PVRTGENPIXELID4('b','g','r','x',8,8,8,8);
   1676 			newCSpace=ePVRTCSpacelRGB;
   1677 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1678 			break;
   1679 		}
   1680 
   1681 	case ePT_VG_lBGRA_8888:
   1682 		{
   1683 			newType=PVRTGENPIXELID4('b','g','r','a',8,8,8,8);
   1684 			newCSpace=ePVRTCSpacelRGB;
   1685 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1686 			break;
   1687 		}
   1688 
   1689 	case ePT_VG_lBGRA_8888_PRE:
   1690 		{
   1691 			newType=PVRTGENPIXELID4('b','g','r','a',8,8,8,8);
   1692 			newCSpace=ePVRTCSpacelRGB;
   1693 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1694 			isPreMult=true;
   1695 			break;
   1696 		}
   1697 
   1698 	case ePT_VG_sXBGR_8888:
   1699 		{
   1700 			newType=PVRTGENPIXELID4('x','b','g','r',8,8,8,8);
   1701 			newCSpace=ePVRTCSpacesRGB;
   1702 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1703 			break;
   1704 		}
   1705 
   1706 	case ePT_VG_sABGR_8888:
   1707 		{
   1708 			newType=PVRTGENPIXELID4('a','b','g','r',8,8,8,8);
   1709 			newCSpace=ePVRTCSpacesRGB;
   1710 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1711 			break;
   1712 		}
   1713 
   1714 	case ePT_VG_sABGR_8888_PRE:
   1715 		{
   1716 			newType=PVRTGENPIXELID4('a','b','g','r',8,8,8,8);
   1717 			newCSpace=ePVRTCSpacesRGB;
   1718 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1719 			isPreMult=true;
   1720 			break;
   1721 		}
   1722 
   1723 	case ePT_VG_sABGR_1555:
   1724 		{
   1725 			newType=PVRTGENPIXELID4('a','b','g','r',1,5,5,5);
   1726 			newCSpace=ePVRTCSpacesRGB;
   1727 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1728 			break;
   1729 		}
   1730 
   1731 	case ePT_VG_sABGR_4444:
   1732 		{
   1733 			newType=PVRTGENPIXELID4('x','b','g','r',4,4,4,4);
   1734 			newCSpace=ePVRTCSpacesRGB;
   1735 			newChanType=ePVRTVarTypeUnsignedShortNorm;
   1736 			break;
   1737 		}
   1738 
   1739 	case ePT_VG_lXBGR_8888:
   1740 		{
   1741 			newType=PVRTGENPIXELID4('x','b','g','r',8,8,8,8);
   1742 			newCSpace=ePVRTCSpacelRGB;
   1743 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1744 			break;
   1745 		}
   1746 
   1747 	case ePT_VG_lABGR_8888:
   1748 		{
   1749 			newType=PVRTGENPIXELID4('a','b','g','r',8,8,8,8);
   1750 			newCSpace=ePVRTCSpacelRGB;
   1751 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1752 			break;
   1753 		}
   1754 
   1755 	case ePT_VG_lABGR_8888_PRE:
   1756 		{
   1757 			newType=PVRTGENPIXELID4('a','b','g','r',8,8,8,8);
   1758 			newCSpace=ePVRTCSpacelRGB;
   1759 			newChanType=ePVRTVarTypeUnsignedByteNorm;
   1760 			isPreMult=true;
   1761 			break;
   1762 		}
   1763 	default:
   1764 		{
   1765 			newType=ePVRTPF_NumCompressedPFs;
   1766 			newCSpace=ePVRTCSpacelRGB;
   1767 			newChanType=ePVRTVarTypeNumVarTypes;
   1768 			break;
   1769 		}
   1770 	}
   1771 }
   1772 
   1773 /*****************************************************************************
   1774  End of file (PVRTTexture.cpp)
   1775 *****************************************************************************/
   1776