D3D11_BIND_FLAG 枚举 (d3d11.h)

标识如何将资源绑定到管道。

语法

typedef enum D3D11_BIND_FLAG {
  D3D11_BIND_VERTEX_BUFFER = 0x1L,
  D3D11_BIND_INDEX_BUFFER = 0x2L,
  D3D11_BIND_CONSTANT_BUFFER = 0x4L,
  D3D11_BIND_SHADER_RESOURCE = 0x8L,
  D3D11_BIND_STREAM_OUTPUT = 0x10L,
  D3D11_BIND_RENDER_TARGET = 0x20L,
  D3D11_BIND_DEPTH_STENCIL = 0x40L,
  D3D11_BIND_UNORDERED_ACCESS = 0x80L,
  D3D11_BIND_DECODER = 0x200L,
  D3D11_BIND_VIDEO_ENCODER = 0x400L
} ;

常量

 
D3D11_BIND_VERTEX_BUFFER
值: 0x1L
将缓冲区作为顶点缓冲区绑定到输入装配器阶段。
D3D11_BIND_INDEX_BUFFER
值: 0x2L
将缓冲区作为索引缓冲区绑定到输入汇编程序阶段。
D3D11_BIND_CONSTANT_BUFFER
值: 0x4L
将缓冲区作为常量缓冲区绑定到着色器阶段;此标志不能与任何其他绑定标志组合使用。
D3D11_BIND_SHADER_RESOURCE
值: 0x8L
将缓冲区或纹理绑定到着色器阶段;此标志不能与 D3D11_MAP_WRITE_NO_OVERWRITE 标志一起使用。

注意 Direct3D 11.1 运行时(从 Windows 8 开始提供)支持使用 D3D11_MAP_WRITE_NO_OVERWRITE 映射动态常量缓冲区和着色器资源视图 (SRV ) 动态缓冲区。 Direct3D 11 及更早版本的运行时限制到顶点或索引缓冲区的映射。 若要确定 Direct3D 设备是否支持这些功能,请使用 D3D11_FEATURE_D3D11_OPTIONS 调用 ID3D11Device::CheckFeatureSupportCheckFeatureSupport 使用设备的功能填充 D3D11_FEATURE_DATA_D3D11_OPTIONS 结构的成员。 此处的相关成员是 MapNoOverwriteOnDynamicConstantBufferMapNoOverwriteOnDynamicBufferSRV

 
D3D11_BIND_STREAM_OUTPUT
值: 0x10L
绑定流输出阶段的输出缓冲区。
D3D11_BIND_RENDER_TARGET
值: 0x20L
将纹理绑定为输出合并阶段的呈现目标。
D3D11_BIND_DEPTH_STENCIL
值: 0x40L
将纹理绑定为输出合并阶段的深度模具目标。
D3D11_BIND_UNORDERED_ACCESS
值: 0x80L
绑定 无序访问 资源。
D3D11_BIND_DECODER
值: 0x200L
设置此标志以指示使用 2D 纹理 从解码器 API 接收输出。 为解码器输出创建资源的常用方法是调用 ID3D11Device::CreateTexture2D 方法来创建 2D 纹理数组。 但是,不能在调用 ID3D11Device::CreateShaderResourceView 时使用此标志创建的纹理数组。

Direct3D 11: 在 Direct3D 11.1 之前不支持此值。
D3D11_BIND_VIDEO_ENCODER
值: 0x400L
设置此标志以指示使用 2D 纹理 接收来自视频编码器 API 的输入。 为视频编码器创建资源的常用方法是调用 ID3D11Device::CreateTexture2D 方法来创建 2D 纹理数组。 但是,不能在调用 ID3D11Device::CreateShaderResourceView 时使用此标志创建的纹理数组。

Direct3D 11: 在 Direct3D 11.1 之前不支持此值。

备注

通常,绑定标志可以使用按位 OR (组合,但常量缓冲区标志) 除外;但是,应使用单个标志来允许设备优化资源使用情况。

此枚举由以下项使用:

着色器资源缓冲区不是常量缓冲区;相反,它是绑定到着色器的纹理或缓冲区资源,其中包含纹理或缓冲区数据, (它不限于缓冲区) 中的单个元素类型。 着色器资源缓冲区是使用 D3D11_BIND_SHADER_RESOURCE 标志创建的,并使用以下 API 之一绑定到管道: ID3D11DeviceContext::GSSetShaderResourcesID3D11DeviceContext::P SSetShaderResourcesID3D11DeviceContext::VSSetShaderResources。 此外,着色器资源缓冲区不能使用 D3D11_MAP_WRITE_NO_OVERWRITE 标志。
注意 Direct3D 11.1 运行时(从 Windows 8 开始提供)支持使用 D3D11_MAP_WRITE_NO_OVERWRITE 映射动态常量缓冲区和着色器资源视图 (SRV ) 动态缓冲区。 Direct3D 11 及更早版本的运行时限制到顶点或索引缓冲区的映射。 若要确定 Direct3D 设备是否支持这些功能,请使用 D3D11_FEATURE_D3D11_OPTIONS 调用 ID3D11Device::CheckFeatureSupportCheckFeatureSupport 使用设备的功能填充 D3D11_FEATURE_DATA_D3D11_OPTIONS 结构的成员。 此处的相关成员是 MapNoOverwriteOnDynamicConstantBufferMapNoOverwriteOnDynamicBufferSRV
 

要求

   
标头 d3d11.h

另请参阅

资源枚举