Share via


struttura D3DDDIARG_STATESET (d3dumddi.h)

La struttura D3DDDIARG_STATESET descrive come impostare un blocco di stato.

Sintassi

typedef struct _D3DDDIARG_STATESET {
  [in]     UINT              Operation;
  [in]     D3DSTATEBLOCKTYPE StateBlockType;
  [in/out] HANDLE            hStateSet;
} D3DDDIARG_STATESET;

Members

[in] Operation

Operazione da eseguire, che può essere uno dei valori seguenti.

Valore Significato
D3DHAL_STATESETBEGIN Iniziare il blocco di stato a cui fa riferimento l'handle nel membro hStateSet.
D3DHAL_STATESETCAPTURE Eseguire l'acquisizione. Quando questo flag viene specificato, il driver deve acquisire uno snapshot dello stato corrente corrispondente al blocco di stato a cui fa riferimento l'handle in hStateSet. Vale a dire, viene acquisito solo lo stato specificato nel blocco di stato.
D3DHAL_STATESETCREATE Creare un blocco di stato del tipo specificato nel membro StateBlockType. Le informazioni da registrare per ogni tipo di blocco di stato sono descritte in StateBlockType.
D3DHAL_STATESETDELETE Eliminare il blocco di stato a cui fa riferimento l'handle in hStateSet.
D3DHAL_STATESETEND Terminare il blocco di stato a cui fa riferimento l'handle in hStateSet.
D3DHAL_STATESETEXECUTE Eseguire il blocco di stato a cui fa riferimento l'handle in hStateSet.

[in] StateBlockType

Valore tipizzato D3DSTATEBLOCKTYPE che indica il tipo di stato che il driver deve registrare. Questo membro può essere uno dei valori seguenti.

Valore Significato
D3DSBT_ALL Il driver deve acquisire tutto lo stato.
Quando viene richiesto di acquisire tutto lo stato in modalità dispositivo puro, il driver deve acquisire tutto lo stato ad eccezione dello stato corrente del flusso dei vertici, dello stato corrente del flusso di indice e delle trame attualmente realizzate.
Il driver deve acquisire (ovvero registrare) il riquadro di visualizzazione, tutte le trasformazioni del mondo, la trasformazione di 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 vertex-shader corrente, l'handle pixel shader corrente, le costanti vertex shader correnti, le costanti vertex shader correnti, e le costanti pixel shader correnti. Inoltre, il driver deve acquisire i seguenti stati di rendering e fase trama: 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
Il driver deve registrare i seguenti stati di fase trama:
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 Il driver deve acquisire solo lo stato pixel.
Quando si acquisisce lo stato dei pixel in modalità dispositivo puro, il driver deve acquisire (ovvero registrare) l'handle dello shader pixel shader corrente, le costanti pixel shader correnti e gli stati di rendering correlati all'elaborazione pixel e agli stati di fase della trama 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 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 Il driver deve acquisire solo lo stato dei vertici.
Quando si acquisisce lo stato dei vertici in modalità dispositivo puro, il driver deve acquisire (registrare) tutte le luci usate prima della creazione del blocco di stato, l'handle del vertex shader corrente, le costanti del vertex shader corrente e gli stati di rendering correlati all'elaborazione dei vertici e agli stati della fase trama 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 D3DTSS_TEXCOORDINDEX D3DTSS_TEXTURETRANSFORMFLAGS
NULL Non viene specificato alcun gruppo di stati predefinito.

[in/out] hStateSet

Handle per il blocco di stato modificato dall'operazione specificata nel membro Operation .

Un handle di blocco di stato viene passato in una chiamata alla funzione StateSet del driver di visualizzazione in modalità utente quando Operation è impostato su D3DHAL_STATESETEXECUTE.

La funzione StateSet restituisce l'handle del blocco di stato quando Operation è impostato su D3DHAL_STATESETBEGIN e D3DHAL_STATESETCREATE.

Commenti

Se il driver di visualizzazione in modalità utente implementa stati di rendering estesi, ovvero gli stati di rendering oltre quelli forniti dal runtime di Microsoft Direct3D, il driver usa il membro StateBlockType per determinare il tipo di stato di rendering predefinito utilizzato. Da queste informazioni, il driver può determinare come aggiungere il blocco di stato in modo appropriato per supportare le estensioni.

Il membro StateBlockType è valido solo per le operazioni di D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND e D3DHAL_STATECREATE. Per altre informazioni sul tipo di enumerazione D3DSTATEBLOCKTYPE, vedere la documentazione Microsoft Windows SDK.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

StateSet