Freigeben über


PFND3DDDI_CLEAR Rückruffunktion (d3dumddi.h)

Die Löschen-Funktion führt das hardwaregestützte Löschen des Renderingziels, des Tiefenpuffers oder des Schablonenpuffers durch.

Syntax

PFND3DDDI_CLEAR Pfnd3dddiClear;

HRESULT Pfnd3dddiClear(
  [in] HANDLE hDevice,
       const D3DDDIARG_CLEAR *unnamedParam2,
       UINT unnamedParam3,
       const RECT *unnamedParam4
)
{...}

Parameter

[in] hDevice

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

unnamedParam2

pData- [in]

Ein Zeiger auf eine D3DDDIARG_CLEAR-Struktur, die die Parameter des hardwaregestützten Clearingvorgangs beschreibt.

unnamedParam3

NumRect- [in]

Die Anzahl der Rechtecke im Array bei pRect- gelöscht werden soll. Wenn die Anzahl der Rechtecke auf Null festgelegt ist, sollte Löschen das gesamte Renderziel, den Tiefenpuffer und den Schablonenpuffer löschen. In diesem Fall sind die Inhalte des Arrays bei pRect- nicht definiert, und der Treiber sollte nicht versuchen, sie zu lesen.

unnamedParam4

pRect- [in]

Ein Array von RECT- Strukturen, die die rechteckigen Bereiche des Puffers angeben, die der Treiber löschen soll.

Rückgabewert

Löschen gibt S_OK oder ein entsprechendes Fehlerergebnis zurück, wenn der hardwaregestützte Clearingvorgang nicht erfolgreich ausgeführt wird.

Bemerkungen

Wie der Treiber den eindeutigen Vorgang ausführt, hängt von der Anzahl der rechteckigen Bereiche ab, die im NumRect Parameter angegeben sind, sowie von den Werten, die im Flags Member von D3DDDIARG_CLEARfestgelegt werden. Die werte D3DCLEAR_TARGET, D3DCLEAR_STENCIL und D3DCLEAR_ZBUFFER (definiert in D3d8types.h) geben den zu löschenden Puffertyp an. Der D3DCLEAR_COMPUTERECTS -Wert (definiert in D3dhal.h) gibt an, wie der Puffer gelöscht wird. Die folgenden Einstellungen geben an, wie der Treiber den angegebenen Puffertyp löschen soll:

  • Wenn NumRect- auf 0 (NumRect== 0) festgelegt ist und D3DCLEAR_COMPUTERECTS in Flagsnicht festgelegt ist, löscht der Treiber 0 Pixel (d. a. ein no-op).
  • Wenn NumRect- auf 0 festgelegt ist und D3DCLEAR_COMPUTERECTS in Flagsfestgelegt wird, löscht der Treiber den gesamten Viewport (nicht die gesamte Oberfläche).
  • Wenn NumRect- auf einen Wert festgelegt ist, der größer als 0 (NumRect!= 0) ist und D3DCLEAR_COMPUTERECTS in Flagsfestgelegt ist, schneidet der Treiber die rechteckigen Bereiche ab, die pRect für den aktuellen Viewport angibt.
Scherentests wirken sich auch auf die Ausführung des klaren Vorgangs durch den Treiber aus. Eine Anwendung legt den D3DRS_SCISSORTESTENABLE Renderzustand in einem Aufruf des IDirect3DDevice9::SetRenderState-Methode fest, um Scissor-Tests zu ermöglichen. Weitere Informationen zu Scherentests finden Sie unter Scissor Test. Wenn der D3DRS_SCISSORTESTENABLE Renderzustand festgelegt ist und das D3DCLEAR_COMPUTERECTS Flag festgelegt ist, muss der Treiber die rechteckigen Bereiche ausschneiden, die pRect für den rechteckigen Scherenbereich angibt.

Wenn NumRect- auf einen Wert festgelegt ist, der größer als 0 (NumRect> 0) ist und D3DCLEAR_COMPUTERECTS in Flagsfestgelegt ist, schneidet der Treiber die angegebenen rechteckigen Bereiche an den aktuellen Viewport und an das Scherenrechteck, wenn eine Anwendung zuvor D3DRS_SCISSORTESTENABLE festgelegt hat. Wenn NumRect> 0 und D3DCLEAR_COMPUTERECTS nicht festgelegt ist, bestimmt der Treiber, dass die Direct3D-Laufzeit die angegebenen rechteckigen Bereiche bereits auf den aktuellen Viewport zugeschnitten hat, und zum Scherenrechteck, wenn eine Anwendung zuvor D3DRS_SCISSORTESTENABLE festgelegt hat.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- d3dumddi.h (include D3dumddi.h)

Siehe auch

D3DDDIARG_CLEAR

D3DDDI_DEVICEFUNCS

RECT-