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


Метод ID3D11DeviceContext::P SSetConstantBuffers (d3d11.h)

Задает буферы констант, используемые этапом конвейера пиксельного шейдера.

Синтаксис

void PSSetConstantBuffers(
  [in]           UINT         StartSlot,
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppConstantBuffers
);

Параметры

[in] StartSlot

Тип: UINT

Выполните индекс в массиве устройства с отсчитываемой от нуля, чтобы начать установку буферов констант в значение (в диапазоне от 0 до D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT – 1).

[in] NumBuffers

Тип: UINT

Количество устанавливаемых буферов (в диапазоне от 0 до D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).

[in, optional] ppConstantBuffers

Тип: ID3D11Buffer*

Массив буферов констант (см . ID3D11Buffer), которые предоставляются устройству.

Возвращаемое значение

None

Remarks

Метод будет содержать ссылку на переданные интерфейсы. Это отличается от поведения состояния устройства в Direct3D 10.

Среда выполнения Direct3D 11.1, доступная в Windows 8 и более поздних операционных системах, может привязать к шейдеру больше ресурсов ID3D11Buffer, чем максимальный размер буфера констант, поддерживаемый шейдерами (4096 констант — 432-разрядных компонента). При привязке такого большого буфера шейдер может получить доступ только к первым 4096 432-разрядным константам компонента в буфере, как если бы константы 4096 — это полный размер буфера.

Чтобы разрешить шейдеру доступ к другим частям буфера, вызовите PSSetConstantBuffers1 вместо PSSetConstantBuffers. PSSetConstantBuffers1 имеет дополнительные параметры pFirstConstant и pNumConstants.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

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

ID3D11DeviceContext