SDL_GPUVERTEXELEMENTFORMAT(3type)
π NAME π
SDL_GPUVertexElementFormat β bestie, it literally tells you what format a vertex attribute is in. That's the whole job. Iconic, honestly.
This page lives in the SDL3 DATATYPES section of the manual, and the page itself is named SDL_GPUVert...ementFormat (yes the title gets truncated like that, that's just how man pages do, don't worry about it π«Ά).
πΈ SYNOPSIS πΈ
#include <SDL3/SDL_gpu.h>
typedef enum SDL_GPUVertexElementFormat
{
SDL_GPU_VERTEXELEMENTFORMAT_INVALID,
/* 32-bit Signed Integers */
SDL_GPU_VERTEXELEMENTFORMAT_INT,
SDL_GPU_VERTEXELEMENTFORMAT_INT2,
SDL_GPU_VERTEXELEMENTFORMAT_INT3,
SDL_GPU_VERTEXELEMENTFORMAT_INT4,
/* 32-bit Unsigned Integers */
SDL_GPU_VERTEXELEMENTFORMAT_UINT,
SDL_GPU_VERTEXELEMENTFORMAT_UINT2,
SDL_GPU_VERTEXELEMENTFORMAT_UINT3,
SDL_GPU_VERTEXELEMENTFORMAT_UINT4,
/* 32-bit Floats */
SDL_GPU_VERTEXELEMENTFORMAT_FLOAT,
SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2,
SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3,
SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4,
/* 8-bit Signed Integers */
SDL_GPU_VERTEXELEMENTFORMAT_BYTE2,
SDL_GPU_VERTEXELEMENTFORMAT_BYTE4,
/* 8-bit Unsigned Integers */
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2,
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4,
/* 8-bit Signed Normalized */
SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM,
SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM,
/* 8-bit Unsigned Normalized */
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM,
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM,
/* 16-bit Signed Integers */
SDL_GPU_VERTEXELEMENTFORMAT_SHORT2,
SDL_GPU_VERTEXELEMENTFORMAT_SHORT4,
/* 16-bit Unsigned Integers */
SDL_GPU_VERTEXELEMENTFORMAT_USHORT2,
SDL_GPU_VERTEXELEMENTFORMAT_USHORT4,
/* 16-bit Signed Normalized */
SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM,
SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM,
/* 16-bit Unsigned Normalized */
SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM,
SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM,
/* 16-bit Floats */
SDL_GPU_VERTEXELEMENTFORMAT_HALF2,
SDL_GPU_VERTEXELEMENTFORMAT_HALF4
} SDL_GPUVertexElementFormat;
π DESCRIPTION π
Okay so. Picture this: you're building a GPU graphics pipeline and you gotta tell it how the bytes in your vertex buffer are actually laid out. That's literally this enum. It's the menu of every format a vertex attribute can be in. π
The number at the end of each name (2, 3, 4) is how many components are in it β the ones with no number are just a single component, periodt. So like FLOAT2 is two floats, FLOAT3 is three, etc. The prefix tells you the type (INT, UINT, FLOAT, BYTE, UBYTE, SHORT, USHORT, HALF), and _NORM means it's the normalized version of that type. And yes, SDL_GPU_VERTEXELEMENTFORMAT_INVALID is sitting up there at the top being the "nope, not a real format" one π.
The categories, in the order they appear:
- 32-bit Signed Integers β
SDL_GPU_VERTEXELEMENTFORMAT_INT,SDL_GPU_VERTEXELEMENTFORMAT_INT2,SDL_GPU_VERTEXELEMENTFORMAT_INT3,SDL_GPU_VERTEXELEMENTFORMAT_INT4 - 32-bit Unsigned Integers β
SDL_GPU_VERTEXELEMENTFORMAT_UINT,SDL_GPU_VERTEXELEMENTFORMAT_UINT2,SDL_GPU_VERTEXELEMENTFORMAT_UINT3,SDL_GPU_VERTEXELEMENTFORMAT_UINT4 - 32-bit Floats β
SDL_GPU_VERTEXELEMENTFORMAT_FLOAT,SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2,SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3,SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4 - 8-bit Signed Integers β
SDL_GPU_VERTEXELEMENTFORMAT_BYTE2,SDL_GPU_VERTEXELEMENTFORMAT_BYTE4 - 8-bit Unsigned Integers β
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2,SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4 - 8-bit Signed Normalized β
SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM,SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM - 8-bit Unsigned Normalized β
SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM,SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM - 16-bit Signed Integers β
SDL_GPU_VERTEXELEMENTFORMAT_SHORT2,SDL_GPU_VERTEXELEMENTFORMAT_SHORT4 - 16-bit Unsigned Integers β
SDL_GPU_VERTEXELEMENTFORMAT_USHORT2,SDL_GPU_VERTEXELEMENTFORMAT_USHORT4 - 16-bit Signed Normalized β
SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM,SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM - 16-bit Unsigned Normalized β
SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM,SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM - 16-bit Floats β
SDL_GPU_VERTEXELEMENTFORMAT_HALF2,SDL_GPU_VERTEXELEMENTFORMAT_HALF4
ngl bestie, notice that the 8-bit and 16-bit groups only come in2and4component flavors β there's noBYTE3orSHORT3in here. The 32-bit ones get the full1,2,3,4treatment. That's just how it is. π
π¦ AVAILABILITY π¦
This enum has been around since SDL 3.2.0. So if your SDL is older than that, this whole page is giving nothing and you gotta upgrade, fr fr.
π SEE ALSO π
okay that's the whole page, you ate that πβ¨
This one's from Simple Directmedia Layer, version SDL 3.4.18 β go forth and format your vertices, bestie, you're the main character of this pipeline now ππ
π¦ where this page comes from
- fedora 43: SDL3-devel 3.4.18-1.fc43 Β· Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 OR MIT)
- fedora 43: SDL3-devel 3.4.18-1.fc43 Β· Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 OR MIT)
- fedora 44: SDL3-devel 3.4.18-1.fc44 Β· Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 OR MIT)
- fedora 44: SDL3-devel 3.4.18-1.fc44 Β· Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 OR MIT)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms