Freigeben über


PFND3D10DDI_SETVIEWPORTS Rückruffunktion (d3d10umddi.h)

Die SetViewports-Funktion legt Viewports fest.

Syntax

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Parameter

unnamedParam1

hDevice [in]

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

[in] NumViewports

Die Gesamtanzahl von Viewports, die der pViewports-Parameter angibt.

[in] ClearViewports

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

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

unnamedParam4

pViewports [in]

Ein Array von D3D10_DDI_VIEWPORT Strukturen für die festzulegenden Viewports.

Rückgabewert

Keine

Bemerkungen

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

Viewports geben den Transformationsclip nach dem Ausgaberenderziel und den Tiefenschablonenressourcen an. Alle Viewports, die nicht in einem Aufruf von SetViewports definiert sind, werden auf NULL festgelegt. Ein NULL-Viewport wird wie folgt definiert.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Diese Definition impliziert, dass der Viewport deaktiviert ist.

Der Benutzermodusanzeigetreiber muss alle Viewports atomar als einen Vorgang festlegen.

Obwohl der NumViewports-Parameter die Anzahl der Viewports in dem Array angibt, das der pViewports-Parameter angibt, können einige Werte im Array NULL sein.

Der Bereich der Viewports zwischen der Zahl, die NumViewports angibt, und der maximalen Anzahl zulässiger Viewports muss alle NULL - oder ungebundenen Werte enthalten. Die Zahl, die der ClearViewports-Parameter angibt, informiert den Treiber darüber, wie viele Viewports der Treiber für den aktuellen atomaren Vorgang löschen muss.

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

Wenn der Wert von Clear Viewports während Abfragevorgängen im Benutzermodus angefordert wird, ist der Wert die Differenz zwischen der maximalen Anzahl von Viewports und dem Viewports-Wert.

SetViewports stellt sicher, dass die Viewports gültig sind. Das heißt, SetViewports stellt sicher, dass sich die Dimensionen der Viewports innerhalb des Bereichs befinden (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH und D3D10_MAX_DEPTH). SetViewports stellt außerdem sicher, dass keine Koordinaten NaN sind, und löscht denormalisierte Floatwerte auf Null.

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 SetViewports 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

D3D10_DDI_VIEWPORT

pfnSetErrorCb