ID3D10Device::OMSetRenderTargets-Methode (d3d10.h)

Binden Sie mindestens ein Renderziel und den Tiefenschablonenpuffer an die Output-Merger-Phase.

Syntax

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

Parameter

[in] NumViews

Typ: UINT

Anzahl der zu bindenden Renderziele.

[in] ppRenderTargetViews

Typ: ID3D10RenderTargetView*

Zeiger auf ein Array von Renderzielen (siehe ID3D10RenderTargetView), das an das Gerät gebunden werden soll. Wenn dieser Parameter NULL ist, werden keine Renderziele gebunden. Siehe Hinweise.

[in] pDepthStencilView

Typ: ID3D10DepthStencilView*

Zeiger auf eine Tiefenschablonenansicht (siehe ID3D10DepthStencilView), die an das Gerät gebunden werden soll. Wenn dieser Parameter NULL ist, ist der Tiefenschablonenzustand nicht gebunden.

Rückgabewert

Keine

Bemerkungen

Ein Aufruf von OMSetRenderTargets überschreibt alle begrenzten Renderziele und das Tiefenschablonenziel unabhängig von der Anzahl der Renderziele in ppRenderTargetViews.

Die maximale Anzahl von Renderzielen, die ein Gerät zu einem bestimmten Zeitpunkt aktiv haben kann, wird durch eine #define in D3D10.h festgelegt, die D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT genannt wird. Es ist ungültig, die gleiche Unterressource auf mehrere Renderzielslots festzulegen.

Wenn derzeit auch Unterressourcen zum Lesen oder Schreiben gebunden sind (z. B. in einem anderen Teil der Pipeline), werden diese Bindungspunkte NULL'ediert, um zu verhindern, dass dieselbe Unterressource gleichzeitig in einem einzelnen Renderingvorgang gelesen und geschrieben wird.

Die -Methode enthält keine Verweise auf die übergebenen Schnittstellen. Aus diesem Grund sollten Anwendungen darauf achten, keine Schnittstellen freizugeben, die derzeit vom Gerät verwendet werden.

Weitere Informationen zum Binden von Ressourcen finden Sie unter Bindungsressourcen und Pipelinephasen .

Der Pixelshader muss in der Lage sein, gleichzeitig auf mindestens acht separaten Renderzielen zu rendern. Alle diese Renderziele müssen auf denselben Ressourcentyp zugreifen: Buffer, Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D oder TextureCube. Alle Renderziele müssen in allen Dimensionen (Breite und Höhe und Tiefe für 3D- oder Arraygröße für *Arraytypen) die gleiche Größe aufweisen. Wenn Renderziele Multisample-Antialiasing verwenden, müssen alle gebundenen Renderziele und der Tiefenpuffer dieselbe Form der Multisample-Ressource sein (d. a. die Stichprobenanzahl muss identisch sein). Jedes Renderziel kann ein anderes Datenformat aufweisen. Diese Renderzielformate müssen nicht die gleiche Anzahl von Bits pro Element aufweisen.

Jede Kombination der acht Slots für Renderziele kann ein Renderziel festlegen oder nicht festlegen.

Dieselbe Ressourcenansicht kann nicht gleichzeitig an mehrere Renderzielslots gebunden werden. Sie können jedoch mehrere nicht überlappende Ressourcenansichten einer einzelnen Ressource als gleichzeitige mehrere Renderziele festlegen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d10.h
Bibliothek D3D10.lib

Weitere Informationen

ID3D10Geräteschnittstelle