//========== Copyright © Valve Corporation, All rights reserved. ======== #ifndef IMAGEFORMAT_DECLARATIONS_HDR #define IMAGEFORMAT_DECLARATIONS_HDR enum NormalDecodeMode_t { NORMAL_DECODE_NONE = 0, NORMAL_DECODE_ATI2N = 1, NORMAL_DECODE_ATI2N_ALPHA = 2 }; // Forward declaration #ifdef _WIN32 typedef enum _D3DFORMAT D3DFORMAT; typedef enum DXGI_FORMAT; #endif //----------------------------------------------------------------------------- // The various image format types //----------------------------------------------------------------------------- // don't bitch that inline functions aren't used!!!! #ifndef SPU #pragma warning(disable : 4514) #endif enum ImageFormat { IMAGE_FORMAT_DEFAULT = -2, // Use this image format if you want to perform tool operations on the texture IMAGE_FORMAT_UNKNOWN = -1, IMAGE_FORMAT_RGBA8888 = 0, IMAGE_FORMAT_ABGR8888, IMAGE_FORMAT_RGB888, IMAGE_FORMAT_BGR888, IMAGE_FORMAT_RGB565, IMAGE_FORMAT_I8, IMAGE_FORMAT_IA88, IMAGE_FORMAT_P8, IMAGE_FORMAT_A8, IMAGE_FORMAT_RGB888_BLUESCREEN, IMAGE_FORMAT_BGR888_BLUESCREEN, IMAGE_FORMAT_ARGB8888, IMAGE_FORMAT_BGRA8888, IMAGE_FORMAT_DXT1, IMAGE_FORMAT_DXT3, IMAGE_FORMAT_DXT5, IMAGE_FORMAT_BGRX8888, IMAGE_FORMAT_BGR565, IMAGE_FORMAT_BGRX5551, IMAGE_FORMAT_BGRA4444, IMAGE_FORMAT_DXT1_ONEBITALPHA, IMAGE_FORMAT_BGRA5551, IMAGE_FORMAT_UV88, IMAGE_FORMAT_UVWQ8888, IMAGE_FORMAT_RGBA16161616F, IMAGE_FORMAT_RGBA16161616, IMAGE_FORMAT_UVLX8888, IMAGE_FORMAT_R32F, // Single-channel 32-bit floating point IMAGE_FORMAT_RGB323232F, // NOTE: D3D9 does not have this format IMAGE_FORMAT_RGBA32323232F, IMAGE_FORMAT_RG1616F, IMAGE_FORMAT_RG3232F, IMAGE_FORMAT_RGBX8888, IMAGE_FORMAT_NULL, // Dummy format which takes no video memory // Compressed normal map formats IMAGE_FORMAT_ATI2N, // One-surface ATI2N / DXN format IMAGE_FORMAT_ATI1N, // Two-surface ATI1N format IMAGE_FORMAT_RGBA1010102, // 10 bit-per component render targets IMAGE_FORMAT_BGRA1010102, IMAGE_FORMAT_R16F, // 16 bit FP format // Depth-stencil texture formats IMAGE_FORMAT_D16, IMAGE_FORMAT_D15S1, IMAGE_FORMAT_D32, IMAGE_FORMAT_D24S8, IMAGE_FORMAT_LINEAR_D24S8, IMAGE_FORMAT_D24X8, IMAGE_FORMAT_D24X4S4, IMAGE_FORMAT_D24FS8, IMAGE_FORMAT_D16_SHADOW, // Specific formats for shadow mapping IMAGE_FORMAT_D24X8_SHADOW, // Specific formats for shadow mapping // supporting these specific formats as non-tiled for procedural cpu access (360-specific) IMAGE_FORMAT_LINEAR_BGRX8888, IMAGE_FORMAT_LINEAR_RGBA8888, IMAGE_FORMAT_LINEAR_ABGR8888, IMAGE_FORMAT_LINEAR_ARGB8888, IMAGE_FORMAT_LINEAR_BGRA8888, IMAGE_FORMAT_LINEAR_RGB888, IMAGE_FORMAT_LINEAR_BGR888, IMAGE_FORMAT_LINEAR_BGRX5551, IMAGE_FORMAT_LINEAR_I8, IMAGE_FORMAT_LINEAR_RGBA16161616, IMAGE_FORMAT_LINEAR_A8, IMAGE_FORMAT_LINEAR_DXT1, IMAGE_FORMAT_LINEAR_DXT3, IMAGE_FORMAT_LINEAR_DXT5, IMAGE_FORMAT_LE_BGRX8888, IMAGE_FORMAT_LE_BGRA8888, // these are used for runtime conversion to DXT1/5 IMAGE_FORMAT_DXT1_RUNTIME, IMAGE_FORMAT_DXT5_RUNTIME, // special depth format IMAGE_FORMAT_INTZ, NUM_IMAGE_FORMATS }; #if defined( DX_TO_GL_ABSTRACTION ) || defined( _PS3 ) typedef enum _D3DFORMAT { D3DFMT_INDEX16, D3DFMT_D16, D3DFMT_D24S8, D3DFMT_A8R8G8B8, D3DFMT_A4R4G4B4, D3DFMT_X8R8G8B8, D3DFMT_R5G6R5, D3DFMT_X1R5G5B5, D3DFMT_A1R5G5B5, D3DFMT_L8, D3DFMT_A8L8, D3DFMT_A, D3DFMT_DXT1, D3DFMT_DXT3, D3DFMT_DXT5, D3DFMT_V8U8, D3DFMT_Q8W8V8U8, D3DFMT_X8L8V8U8, D3DFMT_A16B16G16R16F, D3DFMT_A16B16G16R16, D3DFMT_R32F, D3DFMT_A32B32G32R32F, D3DFMT_R8G8B8, D3DFMT_D24X4S4, D3DFMT_A8, D3DFMT_R5G6B5, D3DFMT_D15S1, D3DFMT_D24X8, D3DFMT_VERTEXDATA, D3DFMT_INDEX32, // new d3d format enums for Source main engine (i.e Portal2, AS, Dota) D3DFMT_D24FS8, D3DFMT_A8B8G8R8, D3DFMT_P8, D3DFMT_G16R16F, D3DFMT_G32R32F, D3DFMT_X8B8G8R8, D3DFMT_A2B10G10R10, D3DFMT_A2R10G10B10, D3DFMT_R16F, D3DFMT_D32, // adding fake D3D format names for the vendor specific ones (eases debugging/logging) // NV shadow depth tex D3DFMT_NV_INTZ = 0x5a544e49, // MAKEFOURCC('I','N','T','Z') D3DFMT_NV_RAWZ = 0x5a574152, // MAKEFOURCC('R','A','W','Z') // NV null tex D3DFMT_NV_NULL = 0x4c4c554e, // MAKEFOURCC('N','U','L','L') // ATI shadow depth tex D3DFMT_ATI_D16 = 0x36314644, // MAKEFOURCC('D','F','1','6') D3DFMT_ATI_D24S8 = 0x34324644, // MAKEFOURCC('D','F','2','4') // ATI 1N and 2N compressed tex D3DFMT_ATI_2N = 0x32495441, // MAKEFOURCC('A', 'T', 'I', '2') D3DFMT_ATI_1N = 0x31495441, // MAKEFOURCC('A', 'T', 'I', '1') D3DFMT_UNKNOWN } D3DFORMAT; #endif #endif