使用以下语法声明缓冲区变量。
| 缓冲区<类型>名称; | 
|---|
parameters
- 
缓冲区 
- 
必需的关键字 (keyword) 。 
- 
类型 
- 
标量、矢量和某些矩阵 HLSL 类型之一。 可以使用矩阵声明缓冲区变量,只要它适合 4 个 32 位数量。 因此,可以编写 Buffer<float2x2>。 但Buffer<float4x4>太大,编译器将生成错误。
- 
名字 
- 
唯一标识变量名称的 ASCII 字符串。 
示例
下面是缓冲区声明的示例。
Buffer<float4> g_Buffer;
使用 加载 HLSL 内部函数的重载版本从缓冲区读取数据,该函数采用一个输入参数 (整数索引) 。 缓冲区是像元素数组一样访问的;因此,此示例读取第二个元素。
float4 bufferData = g_Buffer.Load( 1 );
使用 流输出阶段 将数据输出到缓冲区。
备注
需要一个兼容的类型化缓冲区着色器资源视图 (SRV) 才能从缓冲区正确加载。 负载可以选择执行类型转换,例如 ,可以将RGBA8_UNORM 缓冲区加载到变量中 float4 。 对于缓冲区连接结构,请改用 StructuredBuffer 。