Garry's Mod Wiki

IMAGE_FORMAT

Description

Enumerations used by GetRenderTargetEx to determine the byte format of each pixel in the Render Target.

Values

IMAGE_FORMAT_DEFAULT-1
IMAGE_FORMAT_RGBA88880Red, Green, Blue, Alpha, 8 bit per pixel.
IMAGE_FORMAT_ABGR88881Probably legacy format. Alpha, Red, Green, Blue, 8 bit per pixel.
IMAGE_FORMAT_RGB8882Red, Green, Blue, 8 bit per pixel.
IMAGE_FORMAT_BGR8883Legacy format. Blue, Green, Red order, 8 bit per pixel.
IMAGE_FORMAT_RGB5654Red, Green, Blue, 5 bit per pixel for Red and Blue channels, 6 bits for Green. Effectively uses less video memory.
IMAGE_FORMAT_ARGB888811IMAGE_FORMAT_RGBA8888 with different byte order. Legacy format.
IMAGE_FORMAT_BGRA888812IMAGE_FORMAT_RGBA8888 with different byte order. Legacy format.
IMAGE_FORMAT_RGBA1616161625RGBA, but 16 bits per pixel. Was meant to be used for "Integer mode" for HDR. Probably legacy format.
IMAGE_FORMAT_RGBA16161616F24RGBA, but floating point 16 bits per pixel. Is used for "Float mode" HDR.

Additional Values

In addition to the enum values listed above, there are several additional image formats that can be used to create Render Targets but do not have Lua variables defined for them.

To use these additional enums, use the numerical value directly
(E.g. use 5 instead of IMAGE_FORMAT_I8)

The values below may not be an completely exhaustive list.
For more information on these formats, see VTF Enumerations.

General

The following enum values are from the base Source Engine and do not have Lua variables defined for them simply because they are used less frequently than other formats.

Enum Name Value Description
IMAGE_FORMAT_I8 5 Grayscale format (black and white), 8 bits per pixel. Not working on Proton as of 2026/01/11.
IMAGE_FORMAT_IA88 6 Grayscale format (black and white) with alpha support, 8 bits per pixel/channel. Not working on Proton.
IMAGE_FORMAT_A8 8 8 bit alpha. Same as I8 besides assigned meaning/name to the channel?
IMAGE_FORMAT_BGRX8888 16 Unknown legacy format. Same as BGRA8888, but without defining meaning to the 4th channel?
IMAGE_FORMAT_BGR565 17 RGB565, but reverse color order. Legacy format.
IMAGE_FORMAT_BGRX5551 18 Unknown legacy format.
IMAGE_FORMAT_BGRA4444 19 Unknown legacy format.
IMAGE_FORMAT_BGRA5551 21 Unknown legacy format.
IMAGE_FORMAT_R32F 27 Single color channel, 32bit float per pixel.
IMAGE_FORMAT_RGBA32323232F 29 32bit floating point RGBA.
IMAGE_FORMAT_DXT1 13 Compressed texture format. See https://en.wikipedia.org/wiki/S3_Texture_Compression.
IMAGE_FORMAT_DXT3 14 Compressed texture format. Do not use. See https://en.wikipedia.org/wiki/S3_Texture_Compression.
IMAGE_FORMAT_DXT5 15 Compressed texture format. Better quality than DXT1, supports alpha. See https://en.wikipedia.org/wiki/S3_Texture_Compression.

Team Fortress 2

The following enum values are available on the main and dev branches and are originally from Team Fortress 2's engine branch.

Enum Name Value Description
IMAGE_FORMAT_NV_DST16 30 Hardware 16 bit Depth texture format for shadow depth mapping. Used in ProjectedTexture.
IMAGE_FORMAT_NV_DST24 31 Hardware 24 bit Depth texture format for shadow depth mapping.
IMAGE_FORMAT_NV_INTZ 32 Hardware depth format. Allow to read depth as color texture. See D3D9 GPU Hacks.

Counter-Strike: Global Offensive

The following enum values are available on the x86-64 branch and are originally from Counter-Strike: Global Offensive's engine branch

Enum Name Value Description
IMAGE_FORMAT_D16 39 Hardware 16 bit Depth texture format for shadow depth mapping.
IMAGE_FORMAT_D16_SHADOW 47 Hardware 16 bit Depth texture format for shadow depth mapping. Used in ProjectedTexture.
IMAGE_FORMAT_D24X8_SHADOW 48 Hardware Depth-stencil texture format for shadow depth mapping. 24 bit depth + 8 bit stencil.
IMAGE_FORMAT_INTZ 67 Hardware depth format. Allow to read depth as color texture. See D3D9 GPU Hacks.