Share via


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 jedoch Buffer<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 .

Weitere Informationen

Datentypen (DirectX HLSL)