Compartir a través de


estructura D3DHAL_DP2STATESET (d3dhal.h)

La estructura D3DHAL_DP2STATESET se usa para informar al controlador sobre las operaciones del conjunto de estados que se van a realizar.

Sintaxis

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

Miembros

dwOperation

Especifica la operación que se va a realizar. El valor de este miembro puede ser uno de los siguientes:

Valor Significado
D3DHAL_STATESETBEGIN Especifica el principio del conjunto de estados al que hace referencia dwParam.
D3DHAL_STATESETCAPTURE Especifica que se va a realizar 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 identificador pasado en dwParam. Es decir, solo se captura el estado especificado en el bloque de estado. Consulte Accelerated State Management para obtener detalles importantes sobre la captura de estado.
D3DHAL_STATESETCREATE DirectX 8.0 y versiones posteriores solo.
Al recibir esta solicitud, el controlador debe crear un bloque de estado del tipo especificado en el campo sbType. La información que se va a registrar para cada tipo de bloque de estado se describe a continuación.
D3DHAL_STATESETDELETE Especifica que se debe eliminar el conjunto de estados al que hace referencia dwParam.
D3DHAL_STATESETEND Especifica el final del conjunto de estados al que hace referencia dwParam.
D3DHAL_STATESETEXECUTE Especifica que se debe ejecutar el conjunto de estados al que hace referencia dwParam.

dwParam

Especifica el identificador de conjunto de estados que hace referencia al bloque de estado que se está manipulando con dwOperation actual.

sbType

Especifica el tipo de bloque de estado. El controlador debe omitir este miembro a menos que implemente extensiones de estado de representación o implemente compatibilidad con dispositivos puros (solo DirectX 8.0 y versiones posteriores).

Si el controlador implementa estados de representación extendidos, es decir, estados de representación más allá de los suministros de tiempo de ejecución de Direct3D, puede usar sbType para determinar qué tipos de estados de representación predefinidos se usan. A partir de esta información, el controlador puede determinar cómo anexar el bloque de estado adecuadamente para admitir sus extensiones.

El miembro sbType , que solo es válido para D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND y D3DHAL_STATECREATE, especifica el tipo de bloque de estado con uno de los siguientes tipos enumerados D3DSTATEBLOCKTYPE. Para más información, consulte la documentación del SDK de DirectX.

D3DSBT_ALL

Indica al controlador que capture todo el estado.

Cuando se solicita que capture todo el estado en modo de dispositivo puro, el controlador debe capturar todo el estado con la excepción del estado de flujo de vértices actual, el estado de flujo de índice actual y las texturas realizadas actualmente.

El estado que se debe capturar es el siguiente; los estados de representación que se enumeran a continuación, los estados de fase de textura que se enumeran a continuación, 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 la creación del bloque de estado, el controlador de sombreador de vértices actual, el controlador de sombreador de píxeles actual, las constantes del sombreador de vértices actuales y las constantes del sombreador de píxeles actuales.

Los estados de representación que se van a registrar son los siguientes:

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

Los estados de fase de textura que se van a registrar son los siguientes:

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

Indica al controlador que capture solo el estado de píxel.

Al capturar el estado de píxel en modo de dispositivo puro, se debe capturar el siguiente estado; los estados de representación relacionados con el procesamiento de píxeles que se enumeran a continuación, los estados de fase de textura de procesamiento de píxeles enumerados a continuación, el controlador de sombreador de píxeles actual y las constantes del sombreador de píxeles actuales.

Los estados de representación que se van a registrar son los siguientes:

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

Los estados de fase de textura que se van a registrar son los siguientes:

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

Indica al controlador que capture solo el estado del vértice.

Al capturar el estado de vértice en modo de dispositivo puro, se debe capturar el siguiente estado; los estados de representación relacionados con el procesamiento de vértices que se enumeran a continuación, los estados de fase de textura de procesamiento de vértices enumerados a continuación, todas las luces que se han usado antes de la creación del bloque de estado, el controlador de sombreador de vértices actual y las constantes del sombreador de vértices actuales.

Los estados de representación que se van a registrar son los siguientes:

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

Los estados de fase de textura que se van a registrar son los siguientes:

D3DTSS_TEXCOORDINDEX
D3DTSS_TEXTURETRANSFORMFLAGS

NULL

No se especifica ningún grupo de estado predefinido.

Comentarios

Consulte Accelerated State Management en la Guía de diseño de gráficos para obtener más información sobre el uso de esta estructura en la administración de bloques de estado.

Requisitos

Requisito Valor
Header d3dhal.h (incluya D3dhal.h)