Condividi tramite


D3DHAL_DP2STATESET struttura (d3dhal.h)

La struttura D3DHAL_DP2STATESET viene usata per informare il driver sulle operazioni del set di stati da eseguire.

Sintassi

typedef struct _D3DHAL_DP2STATESET {
  DWORD             dwOperation;
  DWORD             dwParam;
  D3DSTATEBLOCKTYPE sbType;
} D3DHAL_DP2STATESET;

Members

dwOperation

Specifica l'operazione da eseguire. Il valore di questo membro può essere uno dei seguenti:

Valore Significato
D3DHAL_STATESETBEGIN Specifica l'inizio del set di stati a cui fa riferimento dwParam.
D3DHAL_STATESETCAPTURE Specifica che l'acquisizione deve essere eseguita. Quando viene specificato questo flag, il driver deve acquisire uno snapshot dello stato corrente corrispondente al blocco di stato a cui fa riferimento l'handle passato in dwParam. Ovvero, viene acquisito solo lo stato specificato nel blocco di stato. Per informazioni importanti sull'acquisizione dello stato, vedere Gestione stato accelerata .
D3DHAL_STATESETCREATE DirectX 8.0 e versioni successive solo.
Quando si riceve questa richiesta, il driver deve creare un blocco di stato del tipo specificato nel campo sbType. Le informazioni da registrare per ogni tipo di blocco di stato sono descritte di seguito.
D3DHAL_STATESETDELETE Specifica che il set di stati a cui fa riferimento dwParam deve essere eliminato.
D3DHAL_STATESETEND Specifica la fine del set di stati a cui fa riferimento dwParam.
D3DHAL_STATESETEXECUTE Specifica che il set di stati a cui fa riferimento dwParam deve essere eseguito.

dwParam

Specifica l'handle del set di stati che fa riferimento al blocco di stato modificato con la dwOperation corrente.

sbType

Specifica il tipo di blocco di stato. Il driver deve ignorare questo membro a meno che non implementi estensioni di stato di rendering o implementi il supporto per i dispositivi pure (solo versioni directX 8.0 e versioni successive).

Se il driver implementa gli stati di rendering estesi, ovvero gli stati di rendering oltre a quelli forniti dal runtime Direct3D, può usare sbType per determinare quali tipi di stati di rendering predefiniti vengono usati. Da queste informazioni il driver può determinare come aggiungere il blocco di stato in modo appropriato, per supportare le estensioni.

Il membro sbType , valido solo per D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND e D3DHAL_STATECREATE, specifica il tipo di blocco di stato con uno dei tipi enumerati D3DSTATEBLOCKTYPE seguenti. Per altre informazioni, vedere la documentazione di DirectX SDK.

D3DSBT_ALL

Segnala al driver di acquisire tutto lo stato.

Quando richiesto di acquisire tutto lo stato in modalità dispositivo puro, il driver deve acquisire tutto lo stato con l'eccezione dello stato corrente del flusso del vertice, lo stato del flusso di indice corrente e le trame attualmente realizzate.

Lo stato che deve essere acquisito è il seguente; gli stati di rendering elencati di seguito, gli stati della fase trama elencati di seguito, il riquadro di visualizzazione, tutte le trasformazioni del mondo, la trasformazione della visualizzazione, la trasformazione della proiezione, la trasformazione della trama per tutte le fasi della trama, tutti i piani di clip utente, il materiale corrente, tutte le luci usate prima della creazione del blocco di stato, l'handle del vertex shader corrente, l'handle di pixel shader corrente, costanti del vertex shader correnti e costanti del pixel shader corrente.

Gli stati di rendering da registrare sono i seguenti:

D3DRENDERSTATE_SPECULARENABLE
D3DRENDERSTATE_ZENABLE
D3DRENDERSTATE_FILLMODE
D3DRENDERSTATE_SHADEMODE
D3DRENDERSTATE_LINEPATTERN
D3DRENDERSTATE_ZWRITEENABLE
D3DRENDERSTATE_ALPHATESTENABLE
D3DRENDERSTATE_LASTPIXEL
D3DRENDERSTATE_SRCBLEND
D3DRENDERSTATE_DESTBLEND
D3DRENDERSTATE_CULLMODE
D3DRENDERSTATE_ZFUNC
D3DRENDERSTATE_ALPHAREF
D3DRENDERSTATE_ALPHAFUNC
D3DRENDERSTATE_DITHERENABLE
D3DRENDERSTATE_FOGENABLE
D3DRENDERSTATE_STIPPLEDALPHA
D3DRENDERSTATE_FOGCOLOR
D3DRENDERSTATE_FOGTABLEMODE
D3DRENDERSTATE_FOGSTART
D3DRENDERSTATE_FOGEND
D3DRENDERSTATE_FOGDENSITY
D3DRENDERSTATE_EDGEANTIALIAS
D3DRENDERSTATE_ALPHABLENDENABLE
D3DRENDERSTATE_ZBIAS
D3DRENDERSTATE_RANGEFOGENABLE
D3DRENDERSTATE_STENCILENABLE
D3DRENDERSTATE_STENCILFAIL
D3DRENDERSTATE_STENCILZFAIL
D3DRENDERSTATE_STENCILPASS
D3DRENDERSTATE_STENCILFUNC
D3DRENDERSTATE_STENCILREF
D3DRENDERSTATE_STENCILMASK
D3DRENDERSTATE_STENCILWRITEMASK
D3DRENDERSTATE_TEXTUREFACTOR
D3DRENDERSTATE_WRAP0
D3DRENDERSTATE_WRAP1
D3DRENDERSTATE_WRAP2
D3DRENDERSTATE_WRAP3
D3DRENDERSTATE_WRAP4
D3DRENDERSTATE_WRAP5
D3DRENDERSTATE_WRAP6
D3DRENDERSTATE_WRAP7
D3DRENDERSTATE_AMBIENT
D3DRENDERSTATE_COLORVERTEX
D3DRENDERSTATE_FOGVERTEXMODE
D3DRENDERSTATE_CLIPPING
D3DRENDERSTATE_LIGHTING
D3DRENDERSTATE_NORMALIZENORMALS
D3DRENDERSTATE_LOCALVIEWER
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
D3DRENDERSTATE_SPECULARMATERIALSOURCE
D3DRENDERSTATE_VERTEXBLEND
D3DRENDERSTATE_CLIPPLANEENABLE
D3DRS_SOFTWAREVERTEXPROCESSING
D3DRS_POINTSIZE
D3DRS_POINTSIZE_MIN
D3DRS_POINTSPRITEENABLE
D3DRS_POINTSCALEENABLE
D3DRS_POINTSCALE_A
D3DRS_POINTSCALE_B
D3DRS_POINTSCALE_C
D3DRS_MULTISAMPLEANTIALIAS
D3DRS_MULTISAMPLEMASK
D3DRS_PATCHEDGESTYLE
D3DRS_PATCHSEGMENTS
D3DRS_POINTSIZE_MAX
D3DRS_INDEXEDVERTEXBLENDENABLE
D3DRS_COLORWRITEENABLE
D3DRS_TWEENFACTOR
D3DRS_BLENDOP

Gli stati della fase trama da registrare sono i seguenti:

D3DTSS_COLOROP
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DTSS_ALPHAOP
D3DTSS_ALPHAARG1
D3DTSS_ALPHAARG2
D3DTSS_BUMPENVMAT00
D3DTSS_BUMPENVMAT01
D3DTSS_BUMPENVMAT10
D3DTSS_BUMPENVMAT11
D3DTSS_TEXCOORDINDEX
D3DTSS_ADDRESSU
D3DTSS_ADDRESSV
D3DTSS_BORDERCOLOR
D3DTSS_MAGFILTER
D3DTSS_MINFILTER
D3DTSS_MIPFILTER
D3DTSS_MIPMAPLODBIAS
D3DTSS_MAXMIPLEVEL
D3DTSS_MAXANISOTROPY
D3DTSS_BUMPENVLSCALE
D3DTSS_BUMPENVLOFFSET
D3DTSS_TEXTURETRANSFORMFLAGS
D3DTSS_ADDRESSW
D3DTSS_COLORARG0
D3DTSS_ALPHAARG0
D3DTSS_RESULTARG

D3DSBT_PIXELSTATE

Segnala al driver di acquisire solo lo stato dei pixel.

Quando si acquisisce lo stato dei pixel in modalità dispositivo puro, lo stato seguente deve essere acquisito; gli stati di rendering correlati all'elaborazione dei pixel elencati di seguito, gli stati della trama di elaborazione pixel elencati di seguito, l'handle di pixel shader corrente e le costanti del pixel shader correnti.

Gli stati di rendering da registrare sono i seguenti:

D3DRENDERSTATE_ZENABLE
D3DRENDERSTATE_FILLMODE
D3DRENDERSTATE_SHADEMODE
D3DRENDERSTATE_LINEPATTERN
D3DRENDERSTATE_ZWRITEENABLE
D3DRENDERSTATE_ALPHATESTENABLE
D3DRENDERSTATE_LASTPIXEL
D3DRENDERSTATE_SRCBLEND
D3DRENDERSTATE_DESTBLEND
D3DRENDERSTATE_ZFUNC
D3DRENDERSTATE_ALPHAREF
D3DRENDERSTATE_ALPHAFUNC
D3DRENDERSTATE_DITHERENABLE
D3DRENDERSTATE_STIPPLEDALPHA
D3DRENDERSTATE_FOGSTART
D3DRENDERSTATE_FOGEND
D3DRENDERSTATE_FOGDENSITY
D3DRENDERSTATE_EDGEANTIALIAS
D3DRENDERSTATE_ALPHABLENDENABLE
D3DRENDERSTATE_ZBIAS
D3DRENDERSTATE_STENCILENABLE
D3DRENDERSTATE_STENCILFAIL
D3DRENDERSTATE_STENCILZFAIL
D3DRENDERSTATE_STENCILPASS
D3DRENDERSTATE_STENCILFUNC
D3DRENDERSTATE_STENCILREF
D3DRENDERSTATE_STENCILMASK
D3DRENDERSTATE_STENCILWRITEMASK
D3DRENDERSTATE_TEXTUREFACTOR
D3DRENDERSTATE_WRAP0
D3DRENDERSTATE_WRAP1
D3DRENDERSTATE_WRAP2
D3DRENDERSTATE_WRAP3
D3DRENDERSTATE_WRAP4
D3DRENDERSTATE_WRAP5
D3DRENDERSTATE_WRAP6
D3DRENDERSTATE_WRAP7
D3DRS_COLORWRITEENABLE
D3DRS_BLENDOP

Gli stati della fase trama da registrare sono i seguenti:

D3DTSS_COLOROP
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DTSS_ALPHAOP
D3DTSS_ALPHAARG1
D3DTSS_ALPHAARG2
D3DTSS_BUMPENVMAT00
D3DTSS_BUMPENVMAT01
D3DTSS_BUMPENVMAT10
D3DTSS_BUMPENVMAT11
D3DTSS_TEXCOORDINDEX
D3DTSS_ADDRESSU
D3DTSS_ADDRESSV
D3DTSS_BORDERCOLOR
D3DTSS_MAGFILTER
D3DTSS_MINFILTER
D3DTSS_MIPFILTER
D3DTSS_MIPMAPLODBIAS
D3DTSS_MAXMIPLEVEL
D3DTSS_MAXANISOTROPY
D3DTSS_BUMPENVLSCALE
D3DTSS_BUMPENVLOFFSET
D3DTSS_TEXTURETRANSFORMFLAGS
D3DTSS_ADDRESSW
D3DTSS_COLORARG0
D3DTSS_ALPHAARG0
D3DTSS_RESULTARG

D3DSBT_VERTEXSTATE

Segnala al driver di acquisire solo lo stato del vertice.

Quando si acquisisce lo stato del vertice in modalità dispositivo puro, lo stato seguente deve essere acquisito; gli stati di rendering correlati all'elaborazione dei vertici elencati di seguito, lo stato della trama di elaborazione dei vertici è elencato di seguito, tutte le luci usate prima della creazione del blocco di stato, l'handle del vertex shader corrente e le costanti del vertex shader corrente.

Gli stati di rendering da registrare sono i seguenti:

D3DRENDERSTATE_SHADEMODE
D3DRENDERSTATE_SPECULARENABLE
D3DRENDERSTATE_CULLMODE
D3DRENDERSTATE_FOGENABLE
D3DRENDERSTATE_FOGCOLOR
D3DRENDERSTATE_FOGTABLEMODE
D3DRENDERSTATE_FOGSTART
D3DRENDERSTATE_FOGEND
D3DRENDERSTATE_FOGDENSITY
D3DRENDERSTATE_RANGEFOGENABLE
D3DRENDERSTATE_AMBIENT
D3DRENDERSTATE_COLORVERTEX
D3DRENDERSTATE_FOGVERTEXMODE
D3DRENDERSTATE_CLIPPING
D3DRENDERSTATE_LIGHTING
D3DRENDERSTATE_NORMALIZENORMALS
D3DRENDERSTATE_LOCALVIEWER
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
D3DRENDERSTATE_SPECULARMATERIALSOURCE
D3DRENDERSTATE_VERTEXBLEND
D3DRENDERSTATE_CLIPPLANEENABLE
D3DRS_SOFTWAREVERTEXPROCESSING
D3DRS_POINTSIZE
D3DRS_POINTSIZE_MIN
D3DRS_POINTSPRITEENABLE
D3DRS_POINTSCALEENABLE
D3DRS_POINTSCALE_A
D3DRS_POINTSCALE_B
D3DRS_POINTSCALE_C
D3DRS_MULTISAMPLEANTIALIAS
D3DRS_MULTISAMPLEMASK
D3DRS_PATCHEDGESTYLE
D3DRS_PATCHSEGMENTS
D3DRS_POINTSIZE_MAX
D3DRS_INDEXEDVERTEXBLENDENABLE
D3DRS_TWEENFACTOR

Gli stati della fase trama da registrare sono i seguenti:

D3DTSS_TEXCOORDINDEX
D3DTSS_TEXTURETRANSFORMFLAGS

NULL

Non è specificato alcun gruppo di stato predefinito.

Commenti

Per altre informazioni sull'uso di questa struttura nella gestione dei blocchi di stato, vedere Gestione stato accelerata nella Guida alla progettazione grafica.

Requisiti

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