Add surface formats to be used for specifying vertex element layouts.

This commit is contained in:
Keith Whitwell 2007-08-14 15:41:26 +01:00
parent 70af238b49
commit 2691b18747

View file

@ -162,8 +162,15 @@
/**
* Texture/surface image formats (preliminary)
*/
/* KW: Added lots of surface formats to support vertex element layout
* definitions, and eventually render-to-vertex-buffer. Could
* consider making float/int/uint/scaled/normalized a separate
* parameter, but on the other hand there are special cases like
* z24s8, compressed textures, ycbcr, etc that won't fit that model.
*/
#define PIPE_FORMAT_NONE 0 /**< unstructured */
#define PIPE_FORMAT_U_R8_G8_B8_A8 1 /**< ubyte[4] RGBA */
#define PIPE_FORMAT_U_A8_R8_G8_B8 2 /**< ubyte[4] ARGB */
#define PIPE_FORMAT_U_A1_R5_G5_B5 3 /**< 16-bit packed RGBA */
#define PIPE_FORMAT_U_A4_R4_G4_B4 4 /**< 16-bit packed RGBA */
@ -180,8 +187,68 @@
#define PIPE_FORMAT_F_Z32 15 /**< float Z/depth */
#define PIPE_FORMAT_S8_Z24 16 /**< 8-bit stencil + 24-bit Z */
#define PIPE_FORMAT_U_S8 17 /**< 8-bit stencil */
#define PIPE_FORMAT_COUNT 18 /**< number of formats */
#define PIPE_FORMAT_R64_FLOAT 0x20
#define PIPE_FORMAT_R64G64_FLOAT 0x21
#define PIPE_FORMAT_R64G64B64_FLOAT 0x22
#define PIPE_FORMAT_R64G64B64A64_FLOAT 0x23
#define PIPE_FORMAT_R32_FLOAT 0x24
#define PIPE_FORMAT_R32G32_FLOAT 0x25
#define PIPE_FORMAT_R32G32B32_FLOAT 0x26
#define PIPE_FORMAT_R32G32B32A32_FLOAT 0x27
#define PIPE_FORMAT_R32_UNORM 0x28
#define PIPE_FORMAT_R32G32_UNORM 0x29
#define PIPE_FORMAT_R32G32B32_UNORM 0x2a
#define PIPE_FORMAT_R32G32B32A32_UNORM 0x2b
#define PIPE_FORMAT_R32_USCALED 0x2c
#define PIPE_FORMAT_R32G32_USCALED 0x2d
#define PIPE_FORMAT_R32G32B32_USCALED 0x2e
#define PIPE_FORMAT_R32G32B32A32_USCALED 0x2f
#define PIPE_FORMAT_R32_SNORM 0x30
#define PIPE_FORMAT_R32G32_SNORM 0x31
#define PIPE_FORMAT_R32G32B32_SNORM 0x32
#define PIPE_FORMAT_R32G32B32A32_SNORM 0x33
#define PIPE_FORMAT_R32_SSCALED 0x34
#define PIPE_FORMAT_R32G32_SSCALED 0x35
#define PIPE_FORMAT_R32G32B32_SSCALED 0x36
#define PIPE_FORMAT_R32G32B32A32_SSCALED 0x37
#define PIPE_FORMAT_R16_UNORM 0x38
#define PIPE_FORMAT_R16G16_UNORM 0x39
#define PIPE_FORMAT_R16G16B16_UNORM 0x3a
#define PIPE_FORMAT_R16G16B16A16_UNORM 0x3b
#define PIPE_FORMAT_R16_USCALED 0x3c
#define PIPE_FORMAT_R16G16_USCALED 0x3d
#define PIPE_FORMAT_R16G16B16_USCALED 0x3e
#define PIPE_FORMAT_R16G16B16A16_USCALED 0x3f
#define PIPE_FORMAT_R16_SNORM 0x40
#define PIPE_FORMAT_R16G16_SNORM 0x41
#define PIPE_FORMAT_R16G16B16_SNORM 0x42
#define PIPE_FORMAT_R16G16B16A16_SNORM 0x43
#define PIPE_FORMAT_R16_SSCALED 0x44
#define PIPE_FORMAT_R16G16_SSCALED 0x45
#define PIPE_FORMAT_R16G16B16_SSCALED 0x46
#define PIPE_FORMAT_R16G16B16A16_SSCALED 0x47
#define PIPE_FORMAT_R8_UNORM 0x48
#define PIPE_FORMAT_R8G8_UNORM 0x49
#define PIPE_FORMAT_R8G8B8_UNORM 0x4a
#define PIPE_FORMAT_R8G8B8A8_UNORM 0x4b
#define PIPE_FORMAT_R8_USCALED 0x4c
#define PIPE_FORMAT_R8G8_USCALED 0x4d
#define PIPE_FORMAT_R8G8B8_USCALED 0x4e
#define PIPE_FORMAT_R8G8B8A8_USCALED 0x4f
#define PIPE_FORMAT_R8_SNORM 0x50
#define PIPE_FORMAT_R8G8_SNORM 0x51
#define PIPE_FORMAT_R8G8B8_SNORM 0x52
#define PIPE_FORMAT_R8G8B8A8_SNORM 0x53
#define PIPE_FORMAT_R8_SSCALED 0x54
#define PIPE_FORMAT_R8G8_SSCALED 0x55
#define PIPE_FORMAT_R8G8B8_SSCALED 0x56
#define PIPE_FORMAT_R8G8B8A8_SSCALED 0x57
#define PIPE_FORMAT_COUNT 0x58 /**< number of formats */
/* Duplicated formats:
*/
#define PIPE_FORMAT_U_R8_G8_B8_A8 PIPE_FORMAT_R8G8B8A8_UNORM
/**
* Surface flags