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>
. PeroBuffer<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.