Condividi tramite


PFND3DDDI_CLEAR funzione di callback (d3dumddi.h)

La funzione Clear esegue la cancellazione assistita dall'hardware nella destinazione di rendering, nel buffer di profondità o nel buffer stencil.

Sintassi

PFND3DDDI_CLEAR Pfnd3dddiClear;

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

Parametri

[in] hDevice

Handle per il dispositivo di visualizzazione (contesto grafico).

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDIARG_CLEAR che descrive i parametri dell'operazione di cancellazione assistita dall'hardware.

unnamedParam3

NumRect [in]

Numero di rettangoli nella matrice in corrispondenza di pRect da cancellare. Se il numero di rettangoli è impostato su zero, Clear deve cancellare l'intera destinazione di rendering, il buffer di profondità e il buffer stencil. In questa situazione, il contenuto della matrice in pRect non è definito e il driver non deve tentare di leggerli.

unnamedParam4

pRect [in]

Matrice di strutture RECT che indicano le aree rettangolari del buffer che il driver deve cancellare.

Valore restituito

Cancella restituisce S_OK o un risultato di errore appropriato se l'operazione di cancellazione assistita dall'hardware non viene eseguita correttamente.

Commenti

Il funzionamento del driver dipende dal numero di aree rettangolari specificate nel parametro NumRect e dai valori impostati nel membro Flag di D3DDDIARG_CLEAR. I valori D3DCLEAR_TARGET, D3DCLEAR_STENCIL e D3DCLEAR_ZBUFFER (definiti in D3d8types.h) indicano il tipo di buffer da cancellare. Il valore D3DCLEAR_COMPUTERECTS (definito in D3dhal.h) indica come cancellare il buffer. Le impostazioni seguenti indicano come il driver deve cancellare il tipo di buffer specificato:

  • Se NumRect è impostato su 0 (NumRect== 0) e D3DCLEAR_COMPUTERECTS non è impostato in Flag, il driver cancella 0 pixel (ovvero un no-op).
  • Se NumRect è impostato su 0 e D3DCLEAR_COMPUTERECTS è impostato in Flag, il driver cancella l'intero riquadro di visualizzazione (non l'intera superficie).
  • Se NumRect è impostato su un valore maggiore di 0 (NumRect!= 0) e D3DCLEAR_COMPUTERECTS è impostato in Flag, il driver ritaglia le aree rettangolari che pRect specifica sul viewport corrente.
Il test scissor influisce anche sul modo in cui il driver esegue l'operazione chiara. Un'applicazione imposta lo stato di rendering D3DRS_SCISSORTESTENABLE in una chiamata al metodo IDirect3DDevice9::SetRenderState per abilitare i test scissor. Per altre informazioni sui test di scissor, vedere Scissor Test. Se lo stato di rendering D3DRS_SCISSORTESTENABLE è impostato e viene impostato il flag di D3DCLEAR_COMPUTERECTS, il driver deve ritagliare le aree rettangolari che pRect specifica l'area rettangolare della scissor.

Se NumRect è impostato su un valore maggiore di 0 (NumRect> 0) e D3DCLEAR_COMPUTERECTS è impostato in Flag, il driver ritaglia le aree rettangolari specificate sul riquadro di visualizzazione corrente e sul rettangolo scissor se un'applicazione è stata impostata in precedenza D3DRS_SCISSORTESTENABLE. Se NumRect> 0 e D3DCLEAR_COMPUTERECTS non è impostato, il driver determina che il runtime Direct3D ha già ritagliato le aree rettangolari specificate nel riquadro di visualizzazione corrente e nel rettangolo di scissor se un'applicazione è stata impostata in precedenza D3DRS_SCISSORTESTENABLE.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

D3DDDIARG_CLEAR

D3DDDI_DEVICEFUNCS

RECT