VertexElementFormat Enumeration
XNA Game Studio Express
Defines vertex element formats.
Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework (in microsoft.xna.framework.dll)
| Member name | Description | |
|---|---|---|
| Single | Single-component, 32-bit floating-point, expanded to (float, 0, 0, 1). | |
| Vector2 | Two-component, 32-bit floating-point, expanded to (float, Float32 value, 0, 1). | |
| Vector3 | Three-component, 32-bit floating point, expanded to (float, float, float, 1). | |
| Vector4 | Four-component, 32-bit floating point, expanded to (float, float, float, float). | |
| HalfVector2 | Two-component, 16-bit floating point expanded to (value, value, value, value). This type is valid for vertex shader version 2.0 or higher. | |
| HalfVector4 | Four-component, 16-bit floating-point expanded to (value, value, value, value). This type is valid for vertex shader version 2.0 or higher. | |
| Rgba64 | Normalized, four-component, unsigned short, expanded to (first byte/65535.0, second byte/65535.0, third byte/65535.0, fourth byte/65535.0). This type is valid for vertex shader version 2.0 or higher. | |
| Color | Four-component, packed, unsigned byte, mapped to 0 to 1 range. Input is in Int32 format (ARGB) expanded to (R, G, B, A). | |
| Rgba32 | Four-component byte with each byte normalized by dividing the component with 255.0f. This type is valid for vertex shader version 2.0 or higher. | |
| Rg32 | Normalized, two-component, unsigned short, expanded to (first byte/65535.0, second byte/65535.0, 0, 1). This type is valid for vertex shader version 2.0 or higher. | |
| NormalizedShort2 | Normalized, two-component, signed short, expanded to (first short/32767.0, second short/32767.0, 0, 1). This type is valid for vertex shader version 2.0 or higher. | |
| NormalizedShort4 | Normalized, four-component, signed short, expanded to (first short/32767.0, second short/32767.0, third short/32767.0, fourth short/32767.0). This type is valid for vertex shader version 2.0 or higher. | |
| Normalized101010 | Three-component, signed, 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1). | |
| Short2 | Two-component, signed short expanded to (value, value, 0, 1). | |
| Short4 | Four-component, signed short expanded to (value, value, value, value). | |
| Byte4 | Four-component, unsigned byte. | |
| UInt101010 | Three-component, unsigned, 10 10 10 format expanded to (value, value, value, 1). | |
| Unused | Type field in the declaration is unused. This is designed for use with VertexElementMethod.UV and VertexElementMethod.LookUpPresampled. |
Vertex data is declared with an array of VertexElement structures. Each element in the array contains a vertex declaration method. These values can be passed into the constructor or to the VertexElementMethod property.
A mapping of each Direct3D 9 format name to the VertexElementFormat equivalent is listed in the following table.
| Direct3D 9 Vertex Format | VertexElementFormat equivalent | |
|---|---|---|
| Floating Point | ||
| Float32 | D3DDECLTYPE_FLOAT1 | Single |
| D3DDECLTYPE_FLOAT2 | Vector2 | |
| D3DDECLTYPE_FLOAT3 | Vector3 | |
| D3DDECLTYPE_FLOAT4 | Vector4 | |
| Float16 | D3DDECLTYPE_FLOAT16_2 | HalfVector2 |
| D3DDECLTYPE_FLOAT16_4 | HalfVector4 | |
| Unsigned Normalized | ||
| 64 bpp | D3DDECLTYPE_USHORT4N | Rgba64 |
| 32 bpp | D3DDECLTYPE_D3DCOLOR | Color |
| D3DDECLTYPE_UBYTE4N | Rgba32 | |
| D3DDECLTYPE_USHORT2N | Rg32 | |
| Signed Normalized | ||
| D3DDECLTYPE_SHORT2N | NormalizedShort2 | |
| D3DDECLTYPE_SHORT4N | NormalizedShort4 | |
| D3DDECLTYPE_DEC3N | Normalized101010 | |
| Signed Integer | ||
| D3DDECLTYPE_SHORT2 | Short2 | |
| D3DDECLTYPE_SHORT4 | Short4 | |
| Unsigned Integer | ||
| D3DDECLTYPE_UBYTE4 | Byte4 | |
| D3DDECLTYPE_UDEC3 | UInt101010 | |