using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Rendering * @{ */ /// Pixel formats usable by images, textures and render surfaces. public enum PixelFormat { /// 8-bit 1-channel pixel format, unsigned normalized. R8 = 1, /// 8-bit 2-channel pixel format, unsigned normalized. RG8 = 2, /// 8-bit 3-channel pixel format, unsigned normalized. RGB8 = 3, /// 8-bit 3-channel pixel format, unsigned normalized. BGR8 = 4, /// DXT3/BC2 format containing RGB with explicit alpha. 8 bits per pixel. BC2 = 15, /// 8-bit 4-channel pixel format, unsigned normalized. BGRA8 = 7, /// /// DXT5/BC2 format containing RGB with explicit alpha. 8 bits per pixel. Better alpha gradients than BC2. /// BC3 = 16, /// 8-bit 4-channel pixel format, unsigned normalized. RGBA8 = 8, /// DXT1/BC1 format containing opaque RGB or 1-bit alpha RGB. 4 bits per pixel. BC1 = 13, /// One channel compressed format. 4 bits per pixel. BC4 = 17, /// Two channel compressed format. 8 bits per pixel. BC5 = 18, /// Format storing RGB in half (16-bit) floating point format usable for HDR. 8 bits per pixel. BC6H = 19, /// /// Format storing RGB with optional alpha channel. Similar to BC1/BC2/BC3 formats but with higher quality and higher /// decompress overhead. 8 bits per pixel. /// BC7 = 20, /// 16-bit 1-channel pixel format, signed float. R16F = 21, /// 16-bit 2-channel pixel format, signed float. RG16F = 22, /// 16-bit 4-channel pixel format, signed float. RGBA16F = 24, /// 32-bit 1-channel pixel format, signed float. R32F = 25, /// 32-bit 2-channel pixel format, signed float. RG32F = 26, /// 32-bit 3-channel pixel format, signed float. RGB32F = 27, /// 32-bit 4-channel pixel format, signed float. RGBA32F = 28, /// Depth stencil format, 32bit depth, 8bit stencil + 24 unused. Depth stored as signed float. D32_S8X24 = 29, /// Depth stencil fomrat, 24bit depth + 8bit stencil. Depth stored as unsigned normalized. D24S8 = 30, /// Depth format, 32bits. Signed float. D32 = 31, /// Depth format, 16bits. Unsigned normalized. D16 = 32, /// 8-bit 1-channel pixel format, signed integer. R8I = 35, /// 8-bit 2-channel pixel format, signed integer. RG8I = 36, /// 8-bit 4-channel pixel format, signed integer. RGBA8I = 37, /// 8-bit 1-channel pixel format, unsigned integer. R8U = 38, /// 8-bit 2-channel pixel format, unsigned integer. RG8U = 39, /// 8-bit 4-channel pixel format, unsigned integer. RGBA8U = 40, /// 8-bit 1-channel pixel format, signed normalized. R8S = 41, /// 8-bit 2-channel pixel format, signed normalized. RG8S = 42, /// 8-bit 4-channel pixel format, signed normalized. RGBA8S = 43, /// 16-bit 1-channel pixel format, signed integer. R16I = 44, /// 16-bit 2-channel pixel format, signed integer. RG16I = 45, /// 16-bit 4-channel pixel format, signed integer. RGBA16I = 46, /// 16-bit 1-channel pixel format, unsigned integer. R16U = 47, /// 16-bit 2-channel pixel format, unsigned integer. RG16U = 48, /// 16-bit 4-channel pixel format, unsigned integer. RGBA16U = 49, /// 32-bit 1-channel pixel format, signed integer. R32I = 50, /// 32-bit 2-channel pixel format, signed integer. RG32I = 51, /// 32-bit 3-channel pixel format, signed integer. RGB32I = 52, /// 32-bit 4-channel pixel format, signed integer. RGBA32I = 53, /// 32-bit 1-channel pixel format, unsigned integer. R32U = 54, /// 32-bit 2-channel pixel format, unsigned integer. RG32U = 55, /// 32-bit 3-channel pixel format, unsigned integer. RGB32U = 56, /// 32-bit 4-channel pixel format, unsigned integer. RGBA32U = 57, /// 16-bit 1-channel pixel format, signed normalized. R16S = 58, /// 16-bit 2-channel pixel format, signed normalized. RG16S = 59, /// 16-bit 4-channel pixel format, signed normalized. RGBA16S = 60, /// 16-bit 1-channel pixel format, unsigned normalized. R16 = 61, /// 16-bit 2-channel pixel format, unsigned normalized. RG16 = 62, /// 16-bit 3-channel pixel format, unsigned normalized. RGB16 = 63, /// 16-bit 4-channel pixel format, unsigned normalized. RGBA16 = 64 } /** @} */ }