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


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

Задайте целевые буферы вывода для этапа потокового вывода конвейера.

Синтаксис

void SOSetTargets(
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppSOTargets,
  [in, optional] const UINT   *pOffsets
);

Параметры

[in] NumBuffers

Тип: UINT

Число буферов для привязки к устройству. Можно задать не более четырех буферов вывода. Если в вызове определено менее четырех слотов буфера, для оставшихся буферных слотов устанавливается значение NULL. См. заметки.

[in, optional] ppSOTargets

Тип: ID3D11Buffer*

Массив выходных буферов (см . ID3D11Buffer) для привязки к устройству. Буферы должны быть созданы с флагом D3D11_BIND_STREAM_OUTPUT .

[in, optional] pOffsets

Тип: const UINT*

Массив смещений к буферам вывода из ppSOTargets, по одному смещению для каждого буфера. Значения смещения должны быть в байтах.

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

None

Remarks

Смещение -1 приведет к добавлению выходного буфера потока, продолжающегося после последнего расположения, записанного в буфер в предыдущем проходе вывода потока.

Вызов этого метода с помощью буфера, который в настоящее время привязан к записи, фактически привязывает значение NULL , так как буфер не может быть привязан одновременно как входной, так и выходной.

Уровень отладки будет создавать предупреждение всякий раз, когда ресурс не может быть привязан одновременно в качестве входных и выходных данных, но это не предотвратит использование недопустимых данных средой выполнения.

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

Обратите внимание, что в отличие от некоторых других методов ресурсов в Direct3D, все текущие привязанные целевые объекты будут несвязаны путем вызова SOSetTargets(0, nullptr, nullptr);.

Windows Phone 8. Этот API поддерживается.

Требования

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

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

ID3D11DeviceContext