Condividi tramite


Metodo IDirect3DDevice9::P rocessVertices (d3d9helper.h)

Applica l'elaborazione dei vertici definita dal vertex shader al set di flussi di dati di input, generando un singolo flusso di dati dei vertici interleaved nel buffer dei vertici di destinazione.

Sintassi

HRESULT ProcessVertices(
  [in] UINT                        SrcStartIndex,
  [in] UINT                        DestIndex,
  [in] UINT                        VertexCount,
  [in] IDirect3DVertexBuffer9      *pDestBuffer,
  [in] IDirect3DVertexDeclaration9 *pVertexDecl,
  [in] DWORD                       Flags
);

Parametri

[in] SrcStartIndex

Tipo: UINT

Indice del primo vertice da caricare.

[in] DestIndex

Tipo: UINT

Indice del primo vertice nel buffer dei vertici di destinazione in cui vengono inseriti i risultati.

[in] VertexCount

Tipo: UINT

Numero di vertici da elaborare.

[in] pDestBuffer

Tipo: IDirect3DVertexBuffer9*

Puntatore a un'interfaccia IDirect3DVertexBuffer9 , il buffer dei vertici di destinazione che rappresenta il flusso di dati dei vertici interleaved.

[in] pVertexDecl

Tipo: IDirect3DVertexDeclaration9*

Puntatore a un'interfaccia IDirect3DVertexDeclaration9 che rappresenta la dichiarazione dei dati dei vertici di output. Quando vertex shader 3.0 o versione successiva viene impostato come vertex shader corrente, la dichiarazione del vertice di output deve essere presente.

[in] Flags

Tipo: DWORD

Opzioni di elaborazione. Impostare questo parametro su 0 per l'elaborazione predefinita. Impostare su D3DPV_DONOTCOPYDATA per impedire al sistema di copiare i dati dei vertici non interessati dall'operazione dei vertici nel buffer di destinazione. Il valore D3DPV_DONOTCOPYDATA può essere combinato con uno o più valori D3DLOCK appropriati per il buffer di destinazione.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.

Commenti

L'ordine delle operazioni per questo metodo è il seguente:

  • Trasformare i vertici nello spazio di proiezione usando la matrice mondo + visualizzazione + proiezione.
  • Coordinate dello schermo di calcolo usando le impostazioni del riquadro di visualizzazione.
  • Se il ritaglio è abilitato, calcolare i codici di ritaglio e archiviarli in un buffer interno, associato al buffer dei vertici di destinazione. Se un vertice si trova all'interno del frustum di visualizzazione, vengono calcolate le coordinate dello schermo. Se il vertice si trova all'esterno del frustum di visualizzazione, il vertice viene archiviato nel vertex buffer di destinazione nelle coordinate dello spazio di proiezione.
  • Altre note: l'utente non ha accesso al buffer del codice clip interno. Non viene eseguito alcun ritaglio su triangoli o su qualsiasi altra primitiva.
Il vertex buffer di destinazione, pDestBuffer, deve essere creato con un parametro FVF diverso da zero in IDirect3DDevice9::CreateVertexBuffer. Il codice FVF specificato durante la chiamata al metodo IDirect3DDevice9::CreateVertexBuffer specifica gli elementi vertice presenti nel vertex buffer di destinazione.

Quando Direct3D genera coordinate di trama o copia o trasforma le coordinate della trama di input e il formato delle coordinate della trama di output definisce più componenti di coordinate della trama rispetto a Direct3D generati, Direct3D non modifica questi componenti aggiuntivi.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d9helper.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

Tipi di dispositivi e requisiti di elaborazione dei vertici (Direct3D 9)

Elaborazione dei vertici della funzione fissa (Direct3D 9)

IDirect3DDevice9