Compartilhar via


estrutura D3DHAL_DP2STATESET (d3dhal.h)

A estrutura D3DHAL_DP2STATESET é usada para informar o driver sobre as operações de conjunto de estados a serem executadas.

Sintaxe

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

Membros

dwOperation

Especifica a operação a ser executada. O valor desse membro pode ser um dos seguintes:

Valor Significado
D3DHAL_STATESETBEGIN Especifica o início do conjunto de estados referenciado por dwParam.
D3DHAL_STATESETCAPTURE Especifica que a captura deve ser feita. Quando esse sinalizador é especificado, o driver deve capturar uma instantâneo do estado atual que corresponde ao bloco de estado referenciado pelo identificador passado em dwParam. Ou seja, somente o estado especificado no bloco de estado é capturado. Consulte Gerenciamento de Estado Acelerado para obter detalhes importantes sobre a captura de estado.
D3DHAL_STATESETCREATE Somente o DirectX 8.0 e versões posteriores.
Ao receber essa solicitação, o driver deve criar um bloco de estado do tipo fornecido no campo sbType. As informações a serem registradas para cada tipo de bloco de estado são descritas abaixo.
D3DHAL_STATESETDELETE Especifica que o conjunto de estados referenciado por dwParam deve ser excluído.
D3DHAL_STATESETEND Especifica o final do conjunto de estados referenciado por dwParam.
D3DHAL_STATESETEXECUTE Especifica que o conjunto de estados referenciado por dwParam deve ser executado.

dwParam

Especifica o identificador de conjunto de estados que faz referência ao bloco de estado que está sendo manipulado com a dwOperation atual.

sbType

Especifica o tipo de bloco de estado. O driver deve ignorar esse membro, a menos que implemente extensões de estado de renderização ou implemente suporte para dispositivos puros (somente DirectX 8.0 e versões posteriores).

Se o driver implementar estados de renderização estendidos, ou seja, renderizar estados além daqueles fornecidos pelo runtime do Direct3D, ele poderá usar sbType para determinar quais tipos de estados de renderização predefinidos estão sendo usados. Com essas informações, o driver pode determinar como acrescentar o bloco de estado adequadamente para dar suporte a suas extensões.

O membro sbType , que é válido apenas para D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND e D3DHAL_STATECREATE, especifica o tipo de bloco de estado com um dos seguintes tipos enumerados D3DSTATEBLOCKTYPE. Para obter mais detalhes, consulte a documentação do SDK do DirectX.

D3DSBT_ALL

Sinaliza o driver para 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 estado que deve ser capturado é o seguinte; os estados de renderização listados abaixo, os estados do estágio de textura listados abaixo, 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 clipe do usuário, o material atual, todas as luzes que foram usadas antes da criação do bloco de estado, o identificador de sombreador de vértice atual, a alça do sombreador de pixel atual, as constantes atuais do sombreador de vértice e as constantes atuais do sombreador de pixel.

Os estados de renderização a serem registrados são os seguintes:

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

Os estados do estágio de textura a serem registrados são os seguintes:

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

Sinaliza o driver apenas para capturar o estado do pixel.

Ao capturar o estado do pixel no modo de dispositivo puro, o estado a seguir deve ser capturado; os estados de renderização relacionados ao processamento de pixels listados abaixo, os estados do estágio de textura de processamento de pixel listados abaixo, a alça do sombreador de pixel atual e as constantes atuais do sombreador de pixel.

Os estados de renderização a serem registrados são os seguintes:

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

Os estados do estágio de textura a serem registrados são os seguintes:

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

Sinaliza o driver somente para capturar o estado do vértice.

Ao capturar o estado do vértice no modo de dispositivo puro, o estado a seguir deve ser capturado; os estados de renderização relacionados ao processamento de vértice listados abaixo, os estados do estágio de textura de processamento de vértice listados abaixo, todas as luzes que foram usadas antes da criação do bloco de estado, a alça do sombreador de vértice atual e as constantes atuais do sombreador de vértice.

Os estados de renderização a serem registrados são os seguintes:

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

Os estados do estágio de textura a serem registrados são os seguintes:

D3DTSS_TEXCOORDINDEX
D3DTSS_TEXTURETRANSFORMFLAGS

NULL

Nenhum grupo de estado predefinido é especificado.

Comentários

Consulte Gerenciamento de Estado Acelerado no Guia de Design de Gráficos para obter mais informações sobre o uso dessa estrutura no gerenciamento de blocos de estado.

Requisitos

Requisito Valor
Cabeçalho d3dhal.h (inclua D3dhal.h)