Puffertyp
Verwenden Sie die folgende Syntax, um eine Puffervariable zu deklarieren.
Namedes Puffertyps><; |
---|
Parameter
-
Puffer
-
Erforderliche Schlüsselwort (keyword).
-
Typ
-
Einer der HLSL-Typen Skalar, Vektor und einige Matrix-HLSL-Typen. Sie können eine Puffervariable mit einer Matrix deklarieren, solange sie in 4 32-Bit-Mengen passt. Sie können also schreiben
Buffer<float2x2>
. Ist jedochBuffer<float4x4>
zu groß, und der Compiler generiert einen Fehler. -
Namen
-
Eine ASCII-Zeichenfolge, die den Variablennamen eindeutig identifiziert.
Beispiel
Hier sehen Sie ein Beispiel für eine Pufferdeklaration.
Buffer<float4> g_Buffer;
Daten werden aus einem Puffer gelesen, indem eine überladene Version der systeminternen Funktion Load HLSL verwendet wird, die einen Eingabeparameter (einen ganzzahligen Index) akzeptiert. Auf einen Puffer wird wie ein Array von Elementen zugegriffen. Daher wird in diesem Beispiel das zweite Element gelesen.
float4 bufferData = g_Buffer.Load( 1 );
Verwenden Sie die Streamausgabephase , um Daten in einen Puffer auszugeben.
Bemerkungen
Eine kompatible typisierte Puffershaderressourcensicht (SRV) ist erforderlich, um ordnungsgemäß aus dem Puffer zu laden. Die Last kann optional eine Typkonvertierung durchführen, z. B. kann ein RGBA8_UNORM Puffer in eine float4
Variable geladen werden. Verwenden Sie für Pufferkonverknungsstrukturen stattdessen einen StructuredBuffer .