Compartir a través de


estructura D3DDDIARG_STATESET (d3dumddi.h)

La estructura D3DDDIARG_STATESET describe cómo establecer un bloque de estado.

Sintaxis

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

Miembros

[in] Operation

La operación que se va a realizar, que puede ser uno de los siguientes valores.

Valor Significado
D3DHAL_STATESETBEGIN Comience el bloque de estado al que hace referencia el identificador en el miembro hStateSet.
D3DHAL_STATESETCAPTURE Realice la captura. Cuando se especifica esta marca, el controlador debe capturar una instantánea del estado actual que coincida con el bloque de estado al que hace referencia el controlador en hStateSet. Es decir, solo se captura el estado especificado en el bloque de estado.
D3DHAL_STATESETCREATE Cree un bloque de estado del tipo especificado en el miembro StateBlockType. La información que se va a registrar para cada tipo de bloque de estado se describe en StateBlockType.
D3DHAL_STATESETDELETE Elimine el bloque de estado al que hace referencia el identificador en hStateSet.
D3DHAL_STATESETEND Finalice el bloque de estado al que hace referencia el identificador en hStateSet.
D3DHAL_STATESETEXECUTE Ejecute el bloque de estado al que hace referencia el identificador en hStateSet.

[in] StateBlockType

Valor D3DSTATEBLOCKTYPE tipo que indica el tipo de estado que debe registrar el controlador. Este miembro puede ser uno de los siguientes valores.

Valor Significado
D3DSBT_ALL El controlador debe capturar todo el estado.
Cuando se solicita capturar todo el estado en modo de dispositivo puro, el controlador debe capturar todo el estado con la excepción del estado actual de la secuencia de vértices, el estado de flujo del índice actual y las texturas realizadas actualmente.
El controlador debe capturar (es decir, grabar) la ventanilla, todas las transformaciones del mundo, la transformación de vista, la transformación de proyección, la transformación de textura para todas las fases de textura, todos los planos de clip de usuario, el material actual, todas las luces que se han usado antes de crear el bloque de estado, el controlador de sombreador de vértices actual, el controlador de sombreador de píxeles actual, las constantes actuales del sombreador de vértices, y las constantes actuales del sombreador de píxeles. Además, el controlador debe capturar los siguientes estados de representación y fase de textura: 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
El controlador debe registrar los siguientes estados de fase de textura:
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 El controlador solo debe capturar el estado de píxel.
Al capturar el estado de píxel en modo de dispositivo puro, el controlador debe capturar (es decir, grabar) el controlador de sombreador de píxeles actual, las constantes del sombreador de píxeles actuales y los siguientes estados de representación relacionados con el procesamiento de píxeles y los estados de fase de textura:
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 El controlador solo debe capturar el estado del vértice.
Al capturar el estado de vértice en modo de dispositivo puro, el controlador debe capturar (registrar) todas las luces que se han usado antes de crear el bloque de estado, el controlador de sombreador de vértices actual, las constantes del sombreador de vértices actuales y los siguientes estados de representación relacionados con el procesamiento de vértices y estados de fase de textura:
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 No se especifica ningún grupo de estado predefinido.

[in/out] hStateSet

Identificador del bloque de estado manipulado por la operación especificada en el miembro Operation .

Un identificador de bloque de estado se pasa en una llamada a la función StateSet del controlador de pantalla en modo de usuario cuando Operation se establece en D3DHAL_STATESETEXECUTE.

La función StateSet devuelve el identificador de bloque de estado cuando Operation se establece en D3DHAL_STATESETBEGIN y D3DHAL_STATESETCREATE.

Comentarios

Si el controlador de visualización en modo de usuario implementa estados de representación extendidos (es decir, estados de representación más allá de los que proporciona el entorno de ejecución de Microsoft Direct3D), el controlador usa el miembro StateBlockType para determinar el tipo de estado de representación predefinido que se está usando. A partir de esta información, el controlador puede determinar cómo anexar el bloque de estado adecuadamente para admitir sus extensiones.

El miembro StateBlockType solo es válido para operaciones de D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND y D3DHAL_STATECREATE. Para obtener más información sobre el tipo de enumeración D3DSTATEBLOCKTYPE, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

StateSet