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


Метод ID3D10Device::OMSetRenderTargets (d3d10.h)

Привяжите один или несколько целевых объектов отрисовки и буфер трафарета глубины к этапу слияния вывода.

Синтаксис

void OMSetRenderTargets(
  [in] UINT                   NumViews,
  [in] ID3D10RenderTargetView * const *ppRenderTargetViews,
  [in] ID3D10DepthStencilView *pDepthStencilView
);

Параметры

[in] NumViews

Тип: UINT

Количество целевых объектов отрисовки для привязки.

[in] ppRenderTargetViews

Тип: ID3D10RenderTargetView*

Указатель на массив целевых объектов отрисовки (см. ID3D10RenderTargetView) для привязки к устройству. Если этот параметр имеет значение NULL, целевые объекты отрисовки не привязываются. См. заметки.

[in] pDepthStencilView

Тип: ID3D10DepthStencilView*

Указатель на представление трафаретов глубины (см. ID3D10DepthStencilView) для привязки к устройству. Если этот параметр имеет значение NULL, состояние трафарета глубины не привязано.

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

None

Remarks

Вызов OMSetRenderTargets переопределяет все ограниченные целевые объекты отрисовки и целевой объект трафарета глубины независимо от количества целевых объектов отрисовки в ppRenderTargetViews.

Максимальное количество целевых объектов отрисовки, которые устройство может быть активным в любой момент времени, задается #define в D3D10.h с именем D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT. Недопустимо пытаться задать для одного подресурса несколько целевых слотов отрисовки.

Если какие-либо подресурсы в настоящее время также привязаны к чтению или записи (возможно, в другой части конвейера), эти точки привязки будут удалены из значения NULL, чтобы предотвратить одновременное чтение и запись одного подресурса в рамках одной операции отрисовки.

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

Дополнительные сведения о ресурсах привязки см. в разделе Привязка ресурсов и этапов конвейера .

Пиксельный шейдер должен иметь возможность одновременно отображать по крайней мере восемь отдельных целевых объектов отрисовки. Все эти целевые объекты отрисовки должны обращаться к одному типу ресурсов: Buffer, Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D или TextureCube. Все целевые объекты отрисовки должны иметь одинаковый размер во всех измерениях (ширина и высота и глубина для трехмерных объектов или размер массива для *Типов массивов). Если в целевых объектах отрисовки используется сглаживание с несколькими выборками, все привязанные целевые объекты отрисовки и буфер глубины должны иметь одинаковую форму ресурса multisample (то есть количество выборок должно быть одинаковым). Каждый целевой объект отрисовки может иметь другой формат данных. В этих целевых форматах отрисовки не требуется одинаковое число битов на элемент.

Любое сочетание из восьми слотов для целевых объектов отрисовки может иметь заданный или не заданный целевой объект отрисовки.

Одно и то же представление ресурсов не может быть привязано к нескольким целевым слотам отрисовки одновременно. Однако можно задать несколько неперекрывающихся представлений ресурсов для одного ресурса в качестве одновременного нескольких целевых объектов отрисовки.

Требования

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

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

ИНТЕРФЕЙС ID3D10Device