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,則深度樣板狀態不會繫結。

傳回值

備註

呼叫 OMSetRenderTargets 會覆寫所有限定的轉譯目標和深度樣板目標,而不論 ppRenderTargetViews 中的轉譯目標數目為何。

裝置在任何指定時間可以擁有的轉譯目標數目上限,是由名為 D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT 的 D3D10.h #define 所設定。 嘗試將相同的 子資源 設定為多個轉譯目標位置無效。

如果目前也系結任何子資源來讀取或寫入 (可能位於 管線 的不同部分) ,這些系結點將會是 NULL,以防止在單一轉譯作業中同時讀取和寫入相同的子資源。

方法不會保存傳入之介面的參考。 基於這個理由,應用程式應該小心不要釋放裝置目前使用的介面。

如需系結資源的詳細資訊,請參閱 系結資源和管線階段

圖元著色器必須能夠同時轉譯為至少八個不同的轉譯目標。 所有這些轉譯目標都必須存取相同類型的資源:BufferTexture1D、Texture1DArrayTexture2DTexture2D、Texture2D、Texture3DTextureCube。 所有轉譯目標在寬度和高度 (的所有維度中都必須具有相同的大小,以及 *數位類型) 的 3D 或數位大小的深度。 如果轉譯目標使用多重取樣反別名,則所有系結的轉譯目標和深度緩衝區都必須是相同形式的多重取樣資源 (亦即,樣本計數必須是相同的) 。 每個轉譯目標都可以有不同的數據格式。 這些轉譯目標格式不需要有相同的每個元素位計數。

轉譯目標八個位置的任何組合都可以設定轉譯目標集或未設定。

相同的資源檢視無法同時系結至多個轉譯目標位置。 不過,您可以將單一資源的多個非重疊資源檢視設定為同時有多個轉譯目標。

規格需求

需求
目標平台 Windows
標頭 d3d10.h
程式庫 D3D10.lib

另請參閱

ID3D10Device 介面