Tipo de búfer

Use la siguiente sintaxis para declarar una variable de búfer.

Nombredel tipo> de búfer<;

Parámetros

Búfer

Palabra clave requerida.

Tipo

Uno de los tipos escalar, vectorialy de matriz HLSL. Puede declarar una variable de búfer con una matriz siempre que se ajuste a las cantidades de 4 32 bits. Por lo tanto, puede escribir Buffer<float2x2>. Pero Buffer<float4x4> es demasiado grande y el compilador generará un error.

Nombre

Cadena ASCII que identifica de forma única el nombre de la variable.

Ejemplo

Este es un ejemplo de una declaración de búfer.

Buffer<float4> g_Buffer;

Los datos se leen desde un búfer mediante una versión sobrecargada de la función intrínseca Load HLSL que toma un parámetro de entrada (un índice entero). Se tiene acceso a un búfer como una matriz de elementos; por lo tanto, en este ejemplo se lee el segundo elemento.

float4 bufferData = g_Buffer.Load( 1 );

Use la fase de salida de flujo para generar datos en un búfer.

Comentarios

Se requiere una vista de recursos del sombreador de búfer con tipo compatible (SRV) para cargar correctamente desde el búfer. Opcionalmente, la carga puede realizar una conversión de tipos, por ejemplo, un búfer de RGBA8_UNORM se puede cargar en una float4 variable. En el caso de las estructuras de contaning de búfer, use structuredBuffer en su lugar.

Consulte también

Tipos de datos (DirectX HLSL)