PFND3D10DDI_SETRENDERTARGETS Rückruffunktion (d3d10umddi.h)

Die SetRenderTargets-Rückruffunktion legt Renderzielflächen fest.

Syntax

PFND3D10DDI_SETRENDERTARGETS Pfnd3d10ddiSetrendertargets;

void Pfnd3d10ddiSetrendertargets(
  [in] D3D10DDI_HDEVICE unnamedParam1,
  [in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
  [in] UINT NumViews,
  [in] UINT ClearSlots,
  [in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5
)
{...}

Parameter

[in] unnamedParam1

hDevice: Ein Handle für das Anzeigegerät (Grafikkontext).

[in] unnamedParam2

phRenderTargetView: Ein Array von Handles für die festzulegenden Objekte der Renderzielansicht. Beachten Sie, dass einige Handle-Werte NULL sein können.

[in] NumViews

: Die Anzahl der Elemente im Array, die phRenderTargetView angibt.

[in] ClearSlots

Die Anzahl der Renderzielslots nach der Anzahl von Slots, die NumViews angibt, um auf NULL festgelegt zu werden. Diese Zahl stellt den Unterschied zwischen der vorherigen Anzahl von Renderzielansichtsobjekten (d. h. wenn die Microsoft Direct3D-Runtime zuvor SetRenderTargets genannt wurde) und der neuen Anzahl von Renderzielansichtsobjekten dar.

Beachten Sie, dass die zahl, die ClearTargets angibt, nur eine Optimierungshilfe ist, da der Benutzermodusanzeigetreiber diese Zahl berechnen könnte.

[in] unnamedParam5

hDepthStencilView: Handle to the Depth Stencil View.

Rückgabewert

Keine

Bemerkungen

Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.

Der Benutzermodusanzeigetreiber muss alle Renderzieloberflächen und den Tiefenschablonenpuffer atomar als einen Vorgang festlegen.

Obwohl der NumViews-Parameter die Anzahl der Handles in dem Array angibt, das der parameter phRenderTargetView angibt, können einige Handle-Werte im Array NULL sein.

Der Bereich der Renderzieloberflächen zwischen der zahl, die NumViews angibt, und der maximal zulässigen Anzahl von Renderzielflächen muss alle NULL - oder ungebundenen Werte enthalten. Die Zahl, die der ClearTargets-Parameter angibt, informiert den Treiber darüber, wie viele Bindungspunkte der Treiber für den aktuellen atomaren Vorgang löschen muss.

Wenn der vorherige Aufruf von SetRenderTargets den Wert 2 im NumViews-Parameter übergeben hat und der aktuelle Aufruf von SetRenderTargets den Wert 4 in NumViews übergibt, übergibt der aktuelle Aufruf von SetRenderTargets auch den Wert 0 im ClearTargets-Parameter . Wenn der nächste aufeinander folgende Aufruf von SetRenderTargets den Wert 1 in NumViews übergibt, übergibt der nachfolgende Aufruf auch den Wert 3 (4 - 1) in ClearTargets.

Wenn der Wert von eindeutigen Zielen während Abfragevorgängen im Benutzermodus angefordert wird, ist der Wert die Differenz zwischen der maximalen Anzahl von Renderzieloberflächen und dem Wert der Renderziele.

Für den Treiber sollte kein Fehler auftreten, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber bei einem Aufruf der PfnSetErrorCb-Funktion einen Fehler mit Ausnahme von D3DDDIERR_DEVICEREMOVED übergibt, ermittelt die Microsoft Direct3D-Runtime daher, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wurde, muss der Treiber nicht D3DDDIERR_DEVICEREMOVED zurückgeben. Wenn die Geräteentfernung jedoch den Betrieb von SetRenderTargets beeinträchtigt hat (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile d3d10umddi.h (einschließlich D3d10umddi.h)

Weitere Informationen

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb