Condividi tramite


Tipo di buffer

Usare la sintassi seguente per dichiarare una variabile buffer.

Nometipo buffer><;

Parametri

Buffer

Parola chiave obbligatoria.

Digitare

Uno dei tipi scalari, vector e alcuni tipi HLSL di matrice . È possibile dichiarare una variabile buffer con una matrice purché si adatti a 4 quantità a 32 bit. È quindi possibile scrivere Buffer<float2x2>. Ma Buffer<float4x4> è troppo grande e il compilatore genererà un errore.

Nome

Stringa ASCII che identifica in modo univoco il nome della variabile.

Esempio

Di seguito è riportato un esempio di dichiarazione di buffer.

Buffer<float4> g_Buffer;

I dati vengono letti da un buffer usando una versione di overload della funzione intrinseca Load HLSL che accetta un parametro di input (un indice integer). Un buffer è accessibile come una matrice di elementi; di conseguenza, in questo esempio viene letto il secondo elemento.

float4 bufferData = g_Buffer.Load( 1 );

Usare la fase di output del flusso per restituire i dati in un buffer.

Commenti

Per il caricamento corretto dal buffer è necessaria una visualizzazione delle risorse SRV (Buffer shader tipizzata) compatibile. Il carico può facoltativamente eseguire una conversione del tipo, ad esempio un buffer RGBA8_UNORM può essere caricato in una float4 variabile. Per gli struct di contazione del buffer, usare invece structuredBuffer .

Vedi anche

Tipi di dati (DirectX HLSL)