Compartilhar via


estrutura D3DDDIARG_STATESET (d3dumddi.h)

A estrutura D3DDDIARG_STATESET descreve como definir um bloco de estado.

Sintaxe

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

Membros

[in] Operation

A operação a ser executada, que pode ser um dos valores a seguir.

Valor Significado
D3DHAL_STATESETBEGIN Inicie o bloco de estado referenciado pelo identificador no membro hStateSet.
D3DHAL_STATESETCAPTURE Executar captura. Quando esse sinalizador é especificado, o driver deve capturar uma instantâneo do estado atual que corresponde ao bloco de estado referenciado pelo identificador em hStateSet. Ou seja, somente o estado especificado no bloco de estado é capturado.
D3DHAL_STATESETCREATE Crie um bloco de estado do tipo especificado no membro StateBlockType. As informações a serem registradas para cada tipo de bloco de estado são descritas em StateBlockType.
D3DHAL_STATESETDELETE Exclua o bloco de estado referenciado pelo identificador em hStateSet.
D3DHAL_STATESETEND Encerre o bloco de estado referenciado pelo identificador em hStateSet.
D3DHAL_STATESETEXECUTE Execute o bloco de estado referenciado pelo identificador em hStateSet.

[in] StateBlockType

Um valor de tipo D3DSTATEBLOCKTYPE que indica o tipo de estado que o driver deve registrar. Esse membro pode ser um dos valores a seguir.

Valor Significado
D3DSBT_ALL O driver deve capturar todo o estado.
Quando solicitado a capturar todo o estado no modo de dispositivo puro, o driver deve capturar todo o estado, com exceção do estado atual do fluxo de vértice, do estado atual do fluxo de índice e das texturas atualmente realizadas.
O driver deve capturar (ou seja, registrar) o visor, todas as transformações do mundo, a transformação de exibição, a transformação de projeção, a transformação de textura para todos os estágios de textura, todos os planos de recorte do usuário, o material atual, todas as luzes que foram usadas antes da criação do bloco de estado, a alça atual do sombreador de vértice, a alça atual do sombreador de pixels, as constantes atuais do sombreador de vértice, e as constantes de sombreador de pixel atuais. Além disso, o driver deve capturar os seguintes estados de renderização e estágio 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
O driver deve registrar os seguintes estados de estágio 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 O driver deve capturar apenas o estado de pixel.
Ao capturar o estado do pixel no modo de dispositivo puro, o driver deve capturar (ou seja, registrar) a alça do sombreador de pixel atual, as constantes atuais do sombreador de pixel e os seguintes estados de renderização relacionados ao processamento de pixels e estados de estágio 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 O driver deve capturar apenas o estado do vértice.
Ao capturar o estado do vértice no modo de dispositivo puro, o driver deve capturar (registrar) todas as luzes que foram usadas antes da criação do bloco de estado, a alça do sombreador de vértice atual, as constantes atuais do sombreador de vértice e os seguintes estados de renderização relacionados ao processamento de vértice e estados de estágio 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
NULO Nenhum grupo de estado predefinido é especificado.

[in/out] hStateSet

Um identificador para o bloco de estado manipulado pela operação especificada no membro Operation .

Um identificador de bloco de estado é passado em uma chamada para a função StateSet do driver de exibição no modo de usuário quando Operation é definido como D3DHAL_STATESETEXECUTE.

A função StateSet retorna o identificador de bloco de estado quando Operation é definido como D3DHAL_STATESETBEGIN e D3DHAL_STATESETCREATE.

Comentários

Se o driver de exibição do modo de usuário implementar estados de renderização estendidos (ou seja, renderizar estados além daqueles fornecidos pelo runtime do Microsoft Direct3D), o driver usará o membro StateBlockType para determinar o tipo de estado de renderização predefinido que está sendo usado. Com essas informações, o driver pode determinar como acrescentar o bloco de estado adequadamente para dar suporte a suas extensões.

O membro StateBlockType é válido apenas para operações de D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND e D3DHAL_STATECREATE. Para obter mais informações sobre o tipo de enumeração D3DSTATEBLOCKTYPE, consulte a documentação do SDK do Microsoft Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

StateSet