struttura D3DHAL_DP2VERTEXSHADER (d3dhal.h)

Solo DirectX 8.0 e versioni successive.

La struttura D3DHAL_DP2VERTEXSHADER imposta il vertex shader corrente o elimina un vertex shader, a seconda del codice operativo ricevuto (D3DDP2OP_SETVERTEXSHADER o D3DDP2OP_DELETEVERTEXSHADER) da D3dDrawPrimitives2.

Sintassi

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

Members

dwHandle

Handle per la visualizzazione.

Commenti

Tutti i driver di livello DirectX 8.0 devono supportare il token D3DDP2OP_SETVERTEXSHADER perché viene inviato anche se il driver non supporta l'elaborazione dei vertici programmabile. In tal caso, tuttavia, l'handle dello shader è sempre un codice FVF che indica l'elaborazione di funzioni fisse dei dati dei vertici. Il driver deve usare il codice FVF archiviato nel membro dwHandle come formato dei dati dei vertici nel flusso zero. Un driver che supporta l'elaborazione dei vertici programmabile deve esaminare l'handle per determinare se fa riferimento a uno shader creato in precedenza con D3DDP2OP_CREATEVERTEXSHADER o un codice FVF e intraprendere l'azione appropriata.

I pixel e i vertex shader sono ortogonali. Pertanto, se un codice FVF legacy è selezionato come vertex shader corrente, questo non implica l'elaborazione di pixel legacy. Per reimpostare l'elaborazione pixel in una modalità sottoprogrammabile, il pixel shader corrente deve essere impostato anche su zero. Prestare attenzione al driver solo per reimpostare lo stato di elaborazione dei vertici su una modalità di funzione fissa e non sullo stato di elaborazione pixel quando il vertex shader è impostato su un codice FVF.

Quando si passa dall'elaborazione dei vertici a funzione fissa all'elaborazione dei vertici programmabile, è necessario mantenere i valori di stato di rendering legacy e matrici. Se e quando si verifica un passaggio dall'elaborazione del vertice programmabile alla funzione fissa (il driver riceve un D3DDP2OP_SETVERTEXSHADER con un FVF come handle dello shader), tale stato mantenuto deve essere ripristinato.

Quando si passa da uno shader programmabile all'altro, qualsiasi registro costante con un valore specificato nella definizione di tale shader deve essere impostato su tale valore. I valori di tutti gli altri registri costanti devono rimanere invariati.

Per D3DDP2OP_SETVERTEXSHADERDECL operazioni, il runtime specifica un codice FVF legacy o un handle di dichiarazione DirectX 9.0 nel membro dwHandle . Il runtime indica un handle di dichiarazione DirectX 9.0 impostando il bit 0 dell'handle. Per D3DDP2OP_SETVERTEXSHADERFUNC operazioni, il runtime imposta dwHandle su zero per indicare una pipeline di funzioni fisse.

Requisiti

Requisito Valore
Intestazione d3dhal.h (include D3dhal.h)

Vedi anche

D3DDP2OP_CREATEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADERDECL

D3DDP2OP_DELETEVERTEXSHADERFUNC

D3DDP2OP_SETSTREAMSOURCE

D3DDP2OP_SETSTREAMSOURCEUM

D3DDP2OP_SETVERTEXSHADER

D3DDP2OP_SETVERTEXSHADERDECL

D3DDP2OP_SETVERTEXSHADERFUNC

D3DHAL_DP2CREATEVERTEXSHADER

D3DHAL_DP2SETVERTEXSHADERCONST

D3dDrawPrimitives2