Skip to content

hanfling/UnrealTextureFormatRegistry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

UnrealTextureFormatRegistry

Standardized List of extended TextureFormat IDs for Unreal Engine 1.

enum ETextureFormat
{
	// Original.
	TEXF_P8                = 0x00,
	TEXF_BGRA8_LM          = 0x01, // Highest bit is ignored. LightMaps: 0..127 maps to 0.0..2.0, alpha is ignored. FogMaps: 0..127 maps to 0.0..1.0. Prior: TEXF_RGBA7.
	TEXF_R5G6B5            = 0x02, // Prior: TEXF_RGB16. !! Conflicted with naming scheme.
	TEXF_BC1               = 0x03, // Solid alpha variant. See TEXF_BC1_PA for punchthrough alpha variant.
	TEXF_RGB8              = 0x04,
	TEXF_BGRA8             = 0x05, // Prior: TEXF_RGBA8. !! Conflicted with naming scheme.

	// S3TC (continued).
	TEXF_BC2               = 0x06,
	TEXF_BC3               = 0x07,

	// RGTC.
	TEXF_BC4               = 0x08,
	TEXF_BC4_S             = 0x09,
	TEXF_BC5               = 0x0a,
	TEXF_BC5_S             = 0x0b,

	// BPTC.
	TEXF_BC7               = 0x0c,
	TEXF_BC6H_S            = 0x0d,
	TEXF_BC6H              = 0x0e,

	// Normalized RGBA.
	TEXF_RGBA16            = 0x0f,
	TEXF_RGBA16_S          = 0x10,
	TEXF_RGBA32            = 0x11,
	TEXF_RGBA32_S          = 0x12,

	// Meta.
	TEXF_NODATA            = 0x13,
	TEXF_UNCOMPRESSED      = 0x14, // Default quality uncompressed meta target.
	TEXF_UNCOMPRESSED_LOW  = 0x15, // Low quality uncompressed meta target.
	TEXF_UNCOMPRESSED_HIGH = 0x16, // High quality uncompressed meta target.
	TEXF_COMPRESSED        = 0x17, // Default quality compressed meta target.
	TEXF_COMPRESSED_LOW    = 0x18, // Low quality compressed meta target.
	TEXF_COMPRESSED_HIGH   = 0x19, // High quality compressed meta target.

	// S3TC (continued).
	TEXF_BC1_PA            = 0x1a, // Punchthrough alpha variant. See TEXF_BC1 for solid alpha variant.

	// Normalized RGBA (continued).
	TEXF_R8                = 0x1b,
	TEXF_R8_S              = 0x1c,
	TEXF_R16               = 0x1d,
	TEXF_R16_S             = 0x1e,
	TEXF_R32               = 0x1f,
	TEXF_R32_S             = 0x20,
	TEXF_RG8               = 0x21,
	TEXF_RG8_S             = 0x22,
	TEXF_RG16              = 0x23,
	TEXF_RG16_S            = 0x24,
	TEXF_RG32              = 0x25,
	TEXF_RG32_S            = 0x26,
	TEXF_RGB8_S            = 0x27,
#if _REALLY_WANT_TEXF_RGB16
	TEXF_RGB16             = 0x28, // !! This is not the old TEXF_RGB16 which was 16 bits/color instead of 48 bits/color.
#endif
	TEXF_RGB16_            = 0x28, // Snake'd.
	TEXF_RGB16_S           = 0x29,
	TEXF_RGB32             = 0x2a,
	TEXF_RGB32_S           = 0x2b,
#if _REALLY_WANT_TEXF_RGBA8
	TEXF_RGBA8             = 0x2c, // !! This is not the old TEXF_RGBA8 which was BGRA instead of RGBA data.
#endif
	TEXF_RGBA8_            = 0x2c, // Snake'd.
	TEXF_RGBA8_S           = 0x2d,

	// Floating point RGBA.
	TEXF_R16_F             = 0x2e,
	TEXF_R32_F             = 0x2f,
	TEXF_RG16_F            = 0x30,
	TEXF_RG32_F            = 0x31,
	TEXF_RGB16_F           = 0x32,
	TEXF_RGB32_F           = 0x33,
	TEXF_RGBA16_F          = 0x34,
	TEXF_RGBA32_F          = 0x35,

	// ETC1/ETC2/EAC.
	TEXF_ETC1              = 0x36,
	TEXF_ETC2              = 0x37,
	TEXF_ETC2_PA           = 0x38,
	TEXF_ETC2_RGB_EAC_A    = 0x39,
	TEXF_EAC_R             = 0x40,
	TEXF_EAC_R_S           = 0x41,
	TEXF_EAC_RG            = 0x42,
	TEXF_EAC_RG_S          = 0x43,

	// ASTC.
	TEXF_ASTC_4x4          = 0x44, //
	TEXF_ASTC_5x4          = 0x45, // ASTC can store an
	TEXF_ASTC_5x5          = 0x46, // HDR alpha channel.
	TEXF_ASTC_6x5          = 0x47, //
	TEXF_ASTC_6x6          = 0x48,
	TEXF_ASTC_8x5          = 0x49,
	TEXF_ASTC_8x6          = 0x4a,
	TEXF_ASTC_8x8          = 0x4b,
	TEXF_ASTC_10x5         = 0x4c,
	TEXF_ASTC_10x6         = 0x4d,
	TEXF_ASTC_10x8         = 0x4e,
	TEXF_ASTC_10x10        = 0x4f,
	TEXF_ASTC_12x10        = 0x50,
	TEXF_ASTC_12x12        = 0x51,
	TEXF_ASTC_3x3x3        = 0x52, //
	TEXF_ASTC_4x3x3        = 0x53, // Block can has
	TEXF_ASTC_4x4x3        = 0x54, // three deezs.
	TEXF_ASTC_4x4x4        = 0x55, //
	TEXF_ASTC_5x4x4        = 0x56,
	TEXF_ASTC_5x5x4        = 0x57,
	TEXF_ASTC_5x5x5        = 0x58,
	TEXF_ASTC_6x5x5        = 0x59,
	TEXF_ASTC_6x6x5        = 0x60,
	TEXF_ASTC_6x6x6        = 0x6a,

	// PVRTC.
	TEXF_PVRTC1_2BPP       = 0x6b, // Could use better names, maybe
	TEXF_PVRTC1_4BPP       = 0x6c, // something about the block size
	TEXF_PVRTC2_2BPP       = 0x6d, // but I have no real clue about
	TEXF_PVRTC2_4BPP       = 0x6e, // these formats. --han

	// RGBA (Integral).
	TEXF_R8_UI             = 0x6f,
	TEXF_R8_I              = 0x70,
	TEXF_R16_UI            = 0x71,
	TEXF_R16_I             = 0x72,
	TEXF_R32_UI            = 0x73,
	TEXF_R32_I             = 0x74,
	TEXF_RG8_UI            = 0x75,
	TEXF_RG8_I             = 0x76,
	TEXF_RG16_UI           = 0x77,
	TEXF_RG16_I            = 0x78,
	TEXF_RG32_UI           = 0x79,
	TEXF_RG32_I            = 0x7a,
	TEXF_RGB8_UI           = 0x7b,
	TEXF_RGB8_I            = 0x7c,
	TEXF_RGB16_UI          = 0x7d,
	TEXF_RGB16_I           = 0x7e,
	TEXF_RGB32_UI          = 0x7f,
	TEXF_RGB32_I           = 0x80,
	TEXF_RGBA8_UI          = 0x81,
	TEXF_RGBA8_I           = 0x82,
	TEXF_RGBA16_UI         = 0x83,
	TEXF_RGBA16_I          = 0x84,
	TEXF_RGBA32_UI         = 0x85,
	TEXF_RGBA32_I          = 0x86,

	// Special.
	TEXF_ARGB8             = 0x87,
	TEXF_ABGR8             = 0x88,
	TEXF_RGB10A2           = 0x89,
	TEXF_RGB10A2_UI        = 0x8a,
	TEXF_RGB10A2_LM        = 0x8b, // Highest bit and alpha is ignored. Otherwise same old song as TEXF_BGRA8_LM: 0..1023 maps to 0.0..2.0.
	TEXF_RGB9E5            = 0x8c, // No sign bit, individual 9 bit mantissa with a shared 5 bit exponent.
	TEXF_P8_RGB9E5         = 0x8d, // Palette for RGB9E5 data. Intended as an option to store HDR data for FireTexture.
	TEXF_R1                = 0x8e, // Unsigned normalized red format stored as 8x1 blocks taking 1 byte each. Upper left pixel is stored in least significant bit.
	TEXF_RGB10A2_S         = 0x8f,
	TEXF_RGB10A2_I         = 0x90,
	TEXF_R11G11B10_F       = 0x91,

	// Normalized BGR.
	TEXF_B5G6R5            = 0x92, // Mostly just for specifc file formats,
	TEXF_BGR8              = 0x93, // which store their data in BGR order.

	// Double precission floating point RGBA.
	TEXF_R64_F             = 0x94,
	TEXF_RG64_F            = 0x95,
	TEXF_RGB64_F           = 0x96,
	TEXF_RGBA64_F          = 0x97,

	// Depth, stencil and depth-stencil formats.
	TEXF_S8                = 0x98,
	TEXF_D16               = 0x99,
	TEXF_D24               = 0x9A,
	TEXF_D24S8             = 0x9B, // Correct order?
	TEXF_D32_F             = 0x9C,
	TEXF_D32_FS8           = 0x9D, // Correct order?

	//
	// Idea is to set this to the last defined format the
	// code here is valid, so it can be used to filter out
	// any (at this point) unknown format in binaries.
	//
	TEXF_LAST              = TEXF_RGBA64_F,

	// Max.
	TEXF_MAX               = 0xff,  
};

About

Standardized List of TextureFormat IDs for Unreal Engine 1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published