Freigeben über


PFND3D10DDI_SETSCISSORRECTS Rückruffunktion (d3d10umddi.h)

Die SetScissorRects Funktion markiert Teile von Renderzielen, auf die das Rendern beschränkt ist.

Syntax

PFND3D10DDI_SETSCISSORRECTS Pfnd3d10ddiSetscissorrects;

void Pfnd3d10ddiSetscissorrects(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumRects,
  [in] UINT ClearRects,
       const D3D10_DDI_RECT *unnamedParam4
)
{...}

Parameter

unnamedParam1

hDevice [in]

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

[in] NumRects

Die Gesamtanzahl der Renderzielabschnitte, die vom pRects Parameter angegeben werden.

[in] ClearRects

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

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

unnamedParam4

pRects [in]

Ein Array RECT- Strukturen für die zu markierenden Renderzielabschnitte.

Rückgabewert

Nichts

Bemerkungen

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

Die D3D10_DDI_RECT Struktur wird als RECT--Struktur definiert.

typedef RECT D3D10_DDI_RECT;

Der Anzeigetreiber für den Benutzermodus muss alle Renderzielabschnitte atomisch als einen Vorgang festlegen.

Obwohl der NumScissorRects Parameter die Anzahl der Renderzielabschnitte im Array angibt, die der pRects Parameter angibt, können einige Werte im Array NULL-werden.

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

Wenn der vorherige Aufruf von SetScissorRects einen Wert von 2 im NumScissorRects Parameter übergeben hat und der aktuelle Aufruf von SetScissorRects eine wert von 4 in NumScissorRects, der aktuelle Aufruf von SetScissorRects übergibt auch den Wert 0 im ClearScissorRects Parameter. Wenn der nächste aufeinander folgende Aufruf von SetScissorRects einen Wert von 1 in NumScissorRectsübergibt, übergibt der nachfolgende Aufruf auch den Wert 3 (4 - 1) in ClearScissorRects.

Wenn der Wert von eindeutigen Renderzielteils bei Abfragevorgängen im Benutzermodus angefordert wird, ist der Wert der Unterschied zwischen der maximalen Anzahl von Renderzielabschnitten und dem Renderzielteilwert.

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 SetScissorRects beeinträchtigt (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

RECT-

pfnSetErrorCb