You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nvidia-texture-tools/extern/pvrtextool/Include/PVRTextureDefines.h

110 lines
3.0 KiB
C++

/******************************************************************************
@File PVRTextureDefines.h
@Title
@Version
@Copyright Copyright (c) Imagination Technologies Limited. All Rights Reserved. Strictly Confidential.
@Platform
@Description
******************************************************************************/
#ifndef _PVRTEXTURE_DEFINES_H
#define _PVRTEXTURE_DEFINES_H
//To use the PVRTexLib .dll on Windows, you need to define _WINDLL_IMPORT
#ifndef PVR_DLL
#if defined(_WINDLL_EXPORT)
#define PVR_DLL __declspec(dllexport)
//Forward declaration of PVRTexture Header and CPVRTMap. This exports their interfaces for DLLs.
struct PVR_DLL PVRTextureHeaderV3;
template <typename KeyType, typename DataType>
class PVR_DLL CPVRTMap;
template<typename T>
class PVR_DLL CPVRTArray;
#elif defined(_WINDLL_IMPORT)
#define PVR_DLL __declspec(dllimport)
//Forward declaration of PVRTexture Header and CPVRTMap. This imports their interfaces for DLLs.
struct PVR_DLL PVRTextureHeaderV3;
template <typename KeyType, typename DataType>
class PVR_DLL CPVRTMap;
template<typename T>
class PVR_DLL CPVRTArray;
#else
#define PVR_DLL
#endif
#endif
#include "PVRTTexture.h"
namespace pvrtexture
{
/*****************************************************************************
* Type defines for standard variable sizes.
*****************************************************************************/
typedef signed char int8;
typedef signed short int16;
typedef signed int int32;
typedef signed long long int64;
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned int uint32;
typedef unsigned long long uint64;
/*****************************************************************************
* Texture related constants and enumerations.
*****************************************************************************/
enum ECompressorQuality
{
ePVRTCFast=0,
ePVRTCNormal,
ePVRTCHigh,
ePVRTCBest,
eNumPVRTCModes,
eETCFast=0,
eETCFastPerceptual,
eETCSlow,
eETCSlowPerceptual,
eNumETCModes
};
enum EResizeMode
{
eResizeNearest,
eResizeLinear,
eResizeCubic,
eNumResizeModes
};
// Legacy - API enums.
enum ELegacyApi
{
eOGLES=1,
eOGLES2,
eD3DM,
eOGL,
eDX9,
eDX10,
eOVG,
eMGL,
};
/*****************************************************************************
* Useful macros.
*****************************************************************************/
#define TEXOFFSET2D(x,y,width) ( ((x)+(y)*(width)) )
#define TEXOFFSET3D(x,y,z,width,height) ( ((x)+(y)*(width)+(z)*(width)*(height)) )
/*****************************************************************************
* Useful typedef for Meta Data Maps
*****************************************************************************/
typedef CPVRTMap<uint32, CPVRTMap<uint32,MetaDataBlock> > MetaDataMap;
};
#endif //_PVRTEXTURE_DEFINES_H