D3DHAL_DP2VERTEXSHADER struttura (d3dhal.h)

Solo DirectX 8.0 e versioni successive.

La 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 programmabile dei vertici. 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 di vertici programmabili deve esaminare l'handle per determinare se fa riferimento a uno shader creato in precedenza con D3DDP2OP_CREATEVERTEXSHADER o un codice FVF ed eseguire l'azione appropriata.

I pixel shader e i vertex shader sono ortogonali. Pertanto, se viene selezionato un codice FVF legacy come vertex shader corrente, ciò non implica l'elaborazione dei pixel legacy. Per reimpostare l'elaborazione pixel su una modalità sottoprogrammabile, è necessario pixel shader anche l'elaborazione dei pixel su zero. È necessario fare attenzione nel driver per reimpostare lo stato di elaborazione dei vertici solo su una modalità a 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 programmabile dei vertici, i valori dello stato di rendering legacy e delle matrici devono essere mantenuti. Se e quando si verifica un passaggio dall'elaborazione programmabile al vertice a funzione fissa (il driver riceve un D3DDP2OP_SETVERTEXSHADER con FVF come handle dello shader), lo 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, 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, il runtime imposta dwHandle su zero per indicare una pipeline di funzioni fisse.

Requisiti

   
Intestazione d3dhal.h (includere 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