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 der Viewports, die der pViewports Parameter angibt.

[in] ClearViewports

Die Anzahl der Viewports nach der Anzahl der Viewports, die NumViewports angibt, dass sie auf NULL-festgelegt werden soll. Diese Zahl stellt die Differenz zwischen der vorherigen Anzahl von Viewports dar (d. h., wenn die Microsoft Direct3D-Laufzeit zuvor SetViewports) und die neue Anzahl von Viewports aufgerufen wurde.

Beachten Sie, dass die Zahl, die ClearViewports angibt, nur eine Optimierungshilfe ist, da der Anzeigetreiber für den Benutzermodus diese Zahl berechnen kann.

unnamedParam4

pViewports [in]

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

Rückgabewert

Nichts

Bemerkungen

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

Viewports geben den Transformationsbeitrag clip für das Ausgaberenderziel und die Tiefenschablonenressourcen an. Alle Viewports, die in einem Aufruf von SetViewports nicht 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 Anzeigetreiber für den Benutzermodus muss alle Viewports atomisch als einen Vorgang festlegen.

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

Der Bereich der Viewports zwischen der Zahl, die NumViewports angibt, und die maximale Anzahl der zulässigen Viewports ist erforderlich, um alle NULL- oder ungebundenen Werte zu enthalten. Die Zahl, die der ClearViewports Parameter angibt, informiert den Treiber darüber, wie viele Viewports der Treiber für den aktuellen Atomvorgang löschen muss.

Wenn der vorherige Aufruf von SetViewports einen Wert von 2 im NumViewports Parameter übergeben hat und der aktuelle Aufruf von SetViewports einen Wert übergibt. von 4 in NumViewports, der aktuelle Aufruf von SetViewports übergibt auch den Wert 0 im ClearViewports Parameter. Wenn der nächste aufeinander folgende Aufruf von SetViewports einen Wert von 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 der Unterschied 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 Abmessungen 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 denormalisierte Float-Werte auf Null leeren.

Der Treiber sollte keinen Fehler haben, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber daher einen Fehler außer D3DDDIERR_DEVICEREMOVED übergibt, bestimmt die Microsoft Direct3D-Laufzeit in einem Aufruf der pfnSetErrorCb-Funktion, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wurde, ist der Treiber nicht erforderlich, um D3DDDIERR_DEVICEREMOVED zurückzugeben; 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
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform- Desktop
Header- d3d10umddi.h (include D3d10umddi.h)

Siehe auch

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb