Поделиться через


Перечисление 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, позволяет сопоставлять динамические буферы констант и представления ресурсов шейдера (SRV) динамических буферов с D3D11_MAP_WRITE_NO_OVERWRITE. Среда выполнения Direct3D 11 и более ранних версий ограничена сопоставлением с буферами вершин или индексов. Чтобы определить, поддерживает ли устройство Direct3D эти функции, вызовите ID3D11Device::CheckFeatureSupport с D3D11_FEATURE_D3D11_OPTIONS. Функция CheckFeatureSupport заполняет элементы структуры D3D11_FEATURE_DATA_D3D11_OPTIONS функциями устройства. Соответствующими элементами здесь являются MapNoOverwriteOnDynamicConstantBuffer и MapNoOverwriteOnDynamicBufferSRV.

 
D3D11_BIND_STREAM_OUTPUT
Значение: 0x10L
Привяжите выходной буфер для этапа потокового вывода.
D3D11_BIND_RENDER_TARGET
Значение: 0x20L
Привяжите текстуру в качестве целевого объекта отрисовки для этапа слияния выходных данных.
D3D11_BIND_DEPTH_STENCIL
Значение: 0x40L
Привяжите текстуру в качестве целевого набора элементов глубины для этапа слияния и вывода.
D3D11_BIND_UNORDERED_ACCESS
Значение: 0x80L
Привязка ресурса неупорядоченного доступа .
D3D11_BIND_DECODER
Значение: 0x200L
Установите этот флаг, чтобы указать, что двухмерная текстура используется для получения выходных данных из API декодера. Распространенный способ создания ресурсов для выходных данных декодера — вызов метода ID3D11Device::CreateTexture2D для создания массива двухмерных текстур. Однако нельзя использовать массивы текстур, созданные с этим флагом, в вызовах ID3D11Device::CreateShaderResourceView.

Direct3D 11: Это значение не поддерживается до версии Direct3D 11.1.
D3D11_BIND_VIDEO_ENCODER
Значение: 0x400L
Установите этот флаг, чтобы указать, что двухмерная текстура используется для получения входных данных из API кодировщика видео. Распространенный способ создания ресурсов для кодировщика видео — вызов метода ID3D11Device::CreateTexture2D для создания массива двухмерных текстур. Однако нельзя использовать массивы текстур, созданные с этим флагом, в вызовах ID3D11Device::CreateShaderResourceView.

Direct3D 11: Это значение не поддерживается до версии Direct3D 11.1.

Комментарии

Как правило, флаги привязки можно объединять с помощью побитового ИЛИ (за исключением флага буфера констант); Однако следует использовать один флаг, чтобы позволить устройству оптимизировать использование ресурсов.

Это перечисление используется:

Буфер ресурсов шейдера НЕ является буфером констант; вместо этого это ресурс текстуры или буфера, привязанный к шейдеру, который содержит данные текстуры или буфера (он не ограничивается типом одного элемента в буфере). Буфер ресурса шейдера создается с флагом D3D11_BIND_SHADER_RESOURCE и привязывается к конвейеру с помощью одного из следующих API: ID3D11DeviceContext::GSSetShaderResources, ID3D11DeviceContext::P SSetShaderResources или ID3D11DeviceContext::VSSetShaderResources. Кроме того, буфер ресурсов шейдера не может использовать флаг D3D11_MAP_WRITE_NO_OVERWRITE .
Примечание Среда выполнения Direct3D 11.1, доступная начиная с Windows 8, позволяет сопоставлять динамические буферы констант и представления ресурсов шейдера (SRV) динамических буферов с D3D11_MAP_WRITE_NO_OVERWRITE. Среда выполнения Direct3D 11 и более ранних версий ограничена сопоставлением с буферами вершин или индексов. Чтобы определить, поддерживает ли устройство Direct3D эти функции, вызовите ID3D11Device::CheckFeatureSupport с D3D11_FEATURE_D3D11_OPTIONS. Функция CheckFeatureSupport заполняет элементы структуры D3D11_FEATURE_DATA_D3D11_OPTIONS функциями устройства. Соответствующими элементами здесь являются MapNoOverwriteOnDynamicConstantBuffer и MapNoOverwriteOnDynamicBufferSRV.
 

Требования

   
Верхняя часть d3d11.h

См. также раздел

Перечисления ресурсов