Метод 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 |