# Enumerated Types

A list of important enumerated types used in the idTech7 engine.

# textureType_t

The textureType\_t enum is part of the idImage class. It designates a texture as 2-dimensional, 3-dimensional, or cubic. It can be found in [.tga file headers](https://wiki.eternalmods.com/books/reverse-engineering-file-formats/page/tga-file-extension-bimage ".tga File Extension (BIMAGE)") extracted from Doom Eternal .resources files.

## Definition

```
enum textureType_t
{
    TT_2D = 0x0,
    TT_3D = 0x1,
    TT_CUBIC = 0x2,
};
```

# textureFormat_t

The `textureFormat_t` enum is part of the `idImage` class. It describes the image format / block compression type. There are 56 formats defined, but only 13 of these formats are known to be used in Doom Eternal.

## Definition

```INI
enum textureFormat_t
{
  FMT_NONE 				= 0x0,
  FMT_RGBA32F 			= 0x1,
  FMT_RGBA16F			= 0x2,
  FMT_RGBA8 			= 0x3,
  FMT_ARGB8 			= 0x4,
  FMT_ALPHA 			= 0x5,
  FMT_L8A8_DEPRECATED 	= 0x6,
  FMT_RG8 				= 0x7,
  FMT_LUM8_DEPRECATED	= 0x8,
  FMT_INT8_DEPRECATED 	= 0x9,
  FMT_BC1 				= 0xA,
  FMT_BC3 				= 0xB,
  FMT_DEPTH 			= 0xC,
  FMT_DEPTH_STENCIL 	= 0xD,
  FMT_X32F 				= 0xE,
  FMT_Y16F_X16F			= 0xF,
  FMT_X16 				= 0x10,
  FMT_Y16_X16 			= 0x11,
  FMT_RGB565			= 0x12,
  FMT_R8 				= 0x13,
  FMT_R11FG11FB10F 		= 0x14,
  FMT_X16F 				= 0x15,
  FMT_BC6H_UF16			= 0x16,
  FMT_BC7 				= 0x17,
  FMT_BC4 				= 0x18,
  FMT_BC5 				= 0x19,
  FMT_RG16F 			= 0x1A,
  FMT_R10G10B10A2 		= 0x1B,
  FMT_RG32F 			= 0x1C,
  FMT_R32_UINT 			= 0x1D,
  FMT_R16_UINT 			= 0x1E,
  FMT_DEPTH16 			= 0x1F,
  FMT_RGBA8_SRGB 		= 0x20,
  FMT_BC1_SRGB			= 0x21,
  FMT_BC3_SRGB 			= 0x22,
  FMT_BC7_SRGB 			= 0x23,
  FMT_BC6H_SF16 		= 0x24,
  FMT_ASTC_4X4 			= 0x25,
  FMT_ASTC_4X4_SRGB 	= 0x26,
  FMT_ASTC_5X4 			= 0x27,
  FMT_ASTC_5X4_SRGB 	= 0x28,
  FMT_ASTC_5X5 			= 0x29,
  FMT_ASTC_5X5_SRGB 	= 0x2A,
  FMT_ASTC_6X5 			= 0x2B,
  FMT_ASTC_6X5_SRGB 	= 0x2C,
  FMT_ASTC_6X6 			= 0x2D,
  FMT_ASTC_6X6_SRGB 	= 0x2E,
  FMT_ASTC_8X5 			= 0x2F,
  FMT_ASTC_8X5_SRGB 	= 0x30,
  FMT_ASTC_8X6 			= 0x31,
  FMT_ASTC_8X6_SRGB 	= 0x32,
  FMT_ASTC_8X8 			= 0x33,
  FMT_ASTC_8X8_SRGB 	= 0x34,
  FMT_DEPTH32F 			= 0x35,
  FMT_BC1_ZERO_ALPHA 	= 0x36,
  FMT_NEXTAVAILABLE		= 0x37,
};
```

## Known values used in Doom Eternal

These formats are confirmed to be used in Doom Eternal, based on textures extracted from .resources or .streamdb.

```INI
FMT_RGBA8 			= 0x3
FMT_ALPHA 			= 0x5
FMT_RG8 			= 0x7
FMT_BC1		 		= 0xA
FMT_BC3				= 0xB
FMT_BC6H_UF16 		= 0x16
FMT_BC7 			= 0x17
FMT_BC4				= 0x18
FMT_BC5				= 0x19
FMT_BC1_SRGB		= 0x21
FMT_BC3_SRGB		= 0x22
FMT_BC7_SRGB		= 0x23
FMT_BC1_ZERO_ALPHA 	= 0x36
```

# textureMaterialKind_t

The `textureMaterialKind_t` enum is part of the `idImage` class.

## Definition

```INI
enum textureMaterialKind_t
{
  TMK_NONE = 0x0,
  TMK_ALBEDO = 0x1,
  TMK_SPECULAR = 0x2,
  TMK_NORMAL = 0x3,
  TMK_SMOOTHNESS = 0x4,
  TMK_COVER = 0x5,
  TMK_SSSMASK = 0x6,
  TMK_COLORMASK = 0x7,
  TMK_BLOOMMASK = 0x8,
  TMK_HEIGHTMAP = 0x9,
  TMK_DECALALBEDO = 0xA,
  TMK_DECALNORMAL = 0xB,
  TMK_DECALSPECULAR = 0xC,
  TMK_LIGHTPROJECT = 0xD,
  TMK_PARTICLE = 0xE,
  TMK_UNUSED_1 = 0xF,
  TMK_UNUSED_2 = 0x10,
  TMK_LIGHTMAP = 0x11,
  TMK_UI = 0x12,
  TMK_FONT = 0x13,
  TMK_LEGACY_FLASH_UI = 0x14,
  TMK_LIGHTMAP_DIRECTIONAL = 0x15,
  TMK_BLENDMASK = 0x16,
  TMK_COUNT = 0x17,
};
```