Compartilhar via


D3DRENDERSTATETYPE enumeração (d3d9types.h)

O tipo D3DRENDERSTATETYPE enumerado lista uma variedade de atributos ou estados de renderização. Os enumeradores de D3DRENDERSTATETYPE que são usados exclusivamente por drivers podem especificar informações de renderização ou um atributo de textura. Os seguintes estados de renderização são usados por drivers de exibição:

Sintaxe

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  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_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

Constantes

 
D3DRS_ZENABLE
Um tipo de enumeração D3DZBUFFERTYPE que representa o estado de buffer de profundidade.
D3DRS_FILLMODE
Um tipo de enumeração D3DFILLMODE.
D3DRS_SHADEMODE
Um tipo de enumeração D3DSHADEMODE.
D3DRS_ZWRITEENABLE
TRUE para habilitar o aplicativo a gravar no buffer de profundidade. O valor padrão é TRUE. Esse membro permite que um aplicativo impeça que o sistema atualize o buffer de profundidade com novos valores de profundidade. Se FALSE, as comparações de profundidade ainda serão feitas de acordo com o estado de renderização D3DRS_ZFUNC, supondo que o buffer de profundidade esteja ocorrendo, mas os valores de profundidade não serão gravados no buffer.
D3DRS_ALPHATESTENABLE
TRUE para habilitar o teste alfa por pixel. Se o teste for aprovado, o pixel será processado pelo buffer de quadros. Caso contrário, todo o processamento de buffer de quadros será ignorado para o pixel.
D3DRS_LASTPIXEL
O valor padrão é TRUE, que permite o desenho do último pixel em uma linha. Para impedir o desenho do último pixel, defina esse valor como FALSE.
D3DRS_SRCBLEND
Um tipo de enumeração D3DBLEND.
D3DRS_DESTBLEND
Um tipo de enumeração D3DBLEND.
D3DRS_CULLMODE
Um tipo de enumeração D3DCULL que especifica como os triângulos voltados para trás são eliminados, se em tudo.
D3DRS_ZFUNC
Um tipo de enumeração D3DCMPFUNC que permite que um aplicativo aceite ou rejeite um pixel, com base em sua distância da câmera.

O valor de profundidade do pixel é comparado com o valor de buffer de profundidade. Se o valor de profundidade do pixel passar pela função de comparação, o pixel será gravado.

O valor de profundidade será gravado no buffer de profundidade somente se o estado de renderização for TRUE.
D3DRS_ALPHAREF
Valor que especifica um valor alfa de referência em relação aos quais pixels são testados quando o teste alfa está habilitado. Esse é um valor de 8 bits colocado nos 8 bits baixos do valor de estado de renderização DWORD. Os valores podem variar de 0x00000000 a 0x000000FF. O valor padrão é 0.
D3DRS_ALPHAFUNC
Um tipo de enumeração D3DCMPFUNC que permite que um aplicativo aceite ou rejeite um pixel, com base em seu valor alfa.
D3DRS_DITHERENABLE
TRUE para habilitar o dithering. O valor padrão é FALSE.
D3DRS_ALPHABLENDENABLE
TRUE para habilitar a transparência misturada alfa. O valor padrão é FALSE.

O tipo de mistura alfa é determinado pelos estados de renderização D3DRS_SRCBLEND e D3DRS_DESTBLEND.
D3DRS_FOGENABLE
TRUE para habilitar a mistura de neblina. O valor padrão é FALSE.
D3DRS_SPECULARENABLE
TRUE para habilitar realces especular. O valor padrão é FALSE.
Os realces especular são calculados como se cada vértice no objeto que está sendo aceso estivesse na origem do objeto. Isso fornece os resultados esperados desde que o objeto seja modelado em torno da origem e a distância da luz até o objeto seja relativamente grande. Em outros casos, os resultados são indefinidos.

Quando esse membro é definido como TRUE, a cor especular é adicionada à cor base após a cascata de textura, mas antes da mistura alfa.
D3DRS_FOGCOLOR
Uma estrutura D3DCOLORVALUE.
D3DRS_FOGTABLEMODE
Um tipo D3DFOGMODE enumerado que representa uma fórmula de neblina a ser usada para neblina de pixel.
D3DRS_FOGSTART
Profundidade na qual os efeitos de neblina de pixel ou vértice começam para o modo de neblina linear. O valor padrão é 0,0f. A profundidade é especificada no espaço mundial para neblina de vértice e espaço do dispositivo [0.0, 1.0] ou espaço mundial para neblina de pixel. Para neblina de pixel, esses valores estão no espaço do dispositivo quando o sistema usa z para cálculos de neblina e espaço mundial quando o sistema está usando neblina relativa aos olhos (w-fog).
D3DRS_FOGEND
Profundidade na qual os efeitos de neblina de pixel ou vértice terminam para o modo de neblina linear. O valor padrão é 1,0f. A profundidade é especificada no espaço mundial para neblina de vértice e espaço do dispositivo [0.0, 1.0] ou espaço mundial para neblina de pixel. Para neblina de pixel, esses valores estão no espaço do dispositivo quando o sistema usa z para cálculos de neblina e no espaço mundial quando o sistema está usando neblina relativa aos olhos (w-fog).
D3DRS_FOGDENSITY
Densidade de neblina para neblina de pixel ou vértice usada nos modos de neblina exponencial (D3DFOG_EXP e D3DFOG_EXP2). Os valores de densidade válidos variam de 0,0 a 1,0.
D3DRS_RANGEFOGENABLE
TRUE para habilitar a neblina de vértice baseada em intervalo. O valor padrão é FALSE, caso em que o sistema usa neblina baseada em profundidade. Na neblina baseada em intervalo, a distância de um objeto do visualizador é usada para calcular efeitos de neblina, não a profundidade do objeto (ou seja, a coordenada z) na cena. Na neblina baseada em intervalo, todos os métodos de neblina funcionam normalmente, exceto que eles usam intervalo em vez de profundidade nos cálculos.

O intervalo é o fator correto a ser usado para cálculos de neblina, mas a profundidade geralmente é usada porque o intervalo é demorado para computação e profundidade geralmente já está disponível. Usar a profundidade para calcular a neblina tem o efeito indesejável de ter a neblina de objetos periféricos mudando à medida que o olho do visualizador se move - nesse caso, a profundidade muda e o intervalo permanece constante.

Como nenhum hardware atualmente dá suporte à neblina baseada em intervalo por pixel, a correção de intervalo é oferecida apenas para neblina de vértice.
D3DRS_STENCILENABLE
TRUE para habilitar o estêncil ou FALSE para desabilitar o estêncil. O valor padrão é FALSE.
D3DRS_STENCILFAIL
Um tipo de enumeração D3DSTENCILOP que especifica a operação de estêncil a ser executada se o teste de estêncil falhar. O valor padrão é D3DSTENCILOP_KEEP.
D3DRS_STENCILZFAIL
Um tipo de enumeração D3DSTENCILOP que especifica a operação de estêncil a ser executada se o teste de estêncil for aprovado e o teste de profundidade (z-test) falhar.
D3DRS_STENCILPASS
Um tipo de enumeração D3DSTENCILOP que especifica a operação de estêncil a ser executada se os testes de estêncil e profundidade (z) forem aprovados.
D3DRS_STENCILFUNC
A função de comparação é usada para comparar o valor de referência com uma entrada de buffer de estêncil. Essa comparação se aplica somente aos bits no valor de referência e à entrada de buffer de estêncil que são definidos na máscara de estêncil (definida pelo estado de renderização D3DRS_STENCILMASK). Se TRUE, o teste de estêncil será aprovado.
D3DRS_STENCILREF
Um valor de referência int para o teste de estêncil. O valor padrão é 0.
D3DRS_STENCILMASK
Máscara aplicada ao valor de referência e a cada entrada de buffer de estêncil para determinar os bits significativos para o teste de estêncil. A máscara padrão é 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Máscara de gravação aplicada a valores gravados no buffer de estêncil. A máscara padrão é 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Cor usada para mesclagem de várias texturas com o argumento de combinação de textura D3DTA_TFACTOR ou a operação de combinação de textura D3DTOP_BLENDFACTORALPHA.
D3DRS_WRAP0
Comportamento de encapsulamento de textura para vários conjuntos de coordenadas de textura. Os valores válidos para esse estado de renderização podem ser qualquer combinação dos sinalizadores D3DWRAPCOORD_0 (ou D3DWRAP_U), D3DWRAPCOORD_1 (ou D3DWRAP_V), D3DWRAPCOORD_2 (ou D3DWRAP_W) e D3DWRAPCOORD_3. Isso faz com que o sistema se enrole na direção da primeira, segunda, terceira e quarta dimensões, às vezes conhecidas como as direções s, t, r e q, para uma determinada textura. O valor padrão para esse estado de renderização é 0 (encapsulamento desabilitado em todas as direções).
D3DRS_WRAP1
Veja D3DRS_WRAP0.
D3DRS_WRAP2
Veja D3DRS_WRAP0.
D3DRS_WRAP3
Veja D3DRS_WRAP0.
D3DRS_WRAP4
Veja D3DRS_WRAP0.
D3DRS_WRAP5
Veja D3DRS_WRAP0.
D3DRS_WRAP6
Veja D3DRS_WRAP0.
D3DRS_WRAP7
Veja D3DRS_WRAP0.
D3DRS_CLIPPING
TRUE para habilitar o recorte primitivo pelo Direct3D ou FALSE para desabilitá-lo. O valor padrão é TRUE.
D3DRS_LIGHTING
TRUE para habilitar a iluminação Direct3D ou FALSE para desabilitá-la. O valor padrão é TRUE. Somente os vértices que incluem um vértice normal são devidamente acesos; vértices que não contêm um produto de ponto normal de 0 em todos os cálculos de iluminação.
D3DRS_AMBIENT
Cor de luz ambiente.
D3DRS_FOGVERTEXMODE
Fórmula de neblina a ser usada para neblina de vértice.
D3DRS_COLORVERTEX
TRUE para habilitar a cor por vértice ou FALSE para desabilitá-la. O valor padrão é TRUE. Habilitar a cor por vértice permite que o sistema inclua a cor definida para vértices individuais em seus cálculos de iluminação.
D3DRS_LOCALVIEWER
TRUE para habilitar realces especuladores relativos à câmera ou FALSE para usar realces especular ortogonais. O valor padrão é TRUE. Os aplicativos que usam projeção ortogonal devem especificar FALSE.
D3DRS_NORMALIZENORMALS
TRUE para habilitar a normalização automática de normais de vértice ou FALSE para desabilitá-la. O valor padrão é FALSE. Habilitar esse recurso faz com que o sistema normalize os normais de vértice para vértices depois de transformá-los no espaço da câmera, o que pode ser computacionalmente demorado.
D3DRS_DIFFUSEMATERIALSOURCE
Fonte de cores difusa para cálculos de iluminação.
D3DRS_SPECULARMATERIALSOURCE
Fonte de cor especular para cálculos de iluminação.
D3DRS_AMBIENTMATERIALSOURCE
Fonte de cor ambiente para cálculos de iluminação.
D3DRS_EMISSIVEMATERIALSOURCE
Fonte de cor emissiva para cálculos de iluminação.
D3DRS_VERTEXBLEND
Número de matrizes a serem usadas para executar a mesclagem de geometria, se houver.
D3DRS_CLIPPLANEENABLE
Habilita ou desabilita planos de recorte definidos pelo usuário. Valores válidos são qualquer DWORD no qual o status de cada bit (definido ou não definido) alterna o estado de ativação de um plano de recorte definido pelo usuário correspondente. O bit menos significativo (bit 0) controla o primeiro plano de recorte no índice 0 e os bits subsequentes controlam a ativação de planos de recorte em índices mais altos. Se um bit for definido, o sistema aplicará o plano de recorte apropriado durante a renderização da cena. O valor padrão é 0.
D3DRS_POINTSIZE
Um valor flutuante que especifica o tamanho a ser usado para computação de tamanho de ponto em casos em que o tamanho do ponto não é especificado para cada vértice. Esse valor não é usado quando o vértice contém o tamanho do ponto. Esse valor estará em unidades de espaço de tela se D3DRS_POINTSCALEENABLE for FALSE; caso contrário, esse valor está em unidades espaciais mundiais. O valor padrão é o valor que um driver retorna. Se um driver retornar 0 ou 1, o valor padrão será 64, o que permite a emulação do tamanho do ponto de software.
D3DRS_POINTSIZE_MIN
Um valor flutuante que especifica o tamanho mínimo dos primitivos de ponto. Os primitivos de ponto são fixados a esse tamanho durante a renderização. Definir isso como valores menores que 1,0 resulta em pontos de desativação quando o ponto não abrange um centro de pixels e a suavização é desabilitada ou renderizada com intensidade reduzida quando a suavização está habilitada. O valor padrão é 1,0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_POINTSPRITEENABLE
Quando TRUE, as coordenadas de textura dos primitivos de ponto são definidas para que texturas completas sejam mapeadas em cada ponto. Quando FALSE, as coordenadas de textura de vértice são usadas para todo o ponto. O valor padrão é FALSE. Você pode alcançar pontos de pixel único no estilo DirectX 7 definindo D3DRS_POINTSCALEENABLE como FALSE e D3DRS_POINTSIZE como 1,0, que são os valores padrão.
D3DRS_POINTSCALEENABLE
Um valor bool que controla a computação de tamanho para primitivos de ponto. Quando TRUE, o tamanho do ponto é interpretado como um valor de espaço da câmera e é dimensionado pela função de distância e pelo frusto para exibir o dimensionamento do eixo y para calcular o tamanho final do ponto de espaço na tela. Quando FALSE, o tamanho do ponto é interpretado como espaço na tela e usado diretamente. O valor padrão é FALSE.
D3DRS_POINTSCALE_A
Um valor flutuante que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE for TRUE. O valor padrão é 1,0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_POINTSCALE_B
Um valor flutuante que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE for TRUE. O valor padrão é 0,0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_POINTSCALE_C
Um valor flutuante que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE for TRUE. O valor padrão é 0,0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_MULTISAMPLEANTIALIAS
Um valor bool que determina como exemplos individuais são computados ao usar um buffer de destino de renderização de várias amostras. Quando definido como TRUE, os vários exemplos são computados para que a suavização de cena completa seja executada por amostragem em diferentes posições de exemplo para cada amostra múltipla. Quando definido como FALSE, os vários exemplos são gravados com o mesmo valor de exemplo, amostrado no centro de pixels, o que permite a renderização não anárquica em um buffer de várias várias amostras. Esse estado de renderização não tem efeito ao renderizar em um único buffer de exemplo. O valor padrão é TRUE.
D3DRS_MULTISAMPLEMASK
Cada bit nessa máscara, começando pelo menos um bit significativo (LSB), controla a modificação de um dos exemplos em um destino de renderização de várias amostras. Assim, para um destino de renderização de 8 exemplos, o byte baixo contém as oito habilitações de gravação para cada uma das oito amostras. Esse estado de renderização não tem efeito ao renderizar em um único buffer de exemplo. O valor padrão é 0xFFFFFFFF.

Esse estado de renderização permite o uso de um buffer multisampla como um buffer de acúmulo, fazendo a renderização multipassa da geometria em que cada passagem atualiza um subconjunto de exemplos.
Se houver n multisamplas e k amostras habilitadas, a intensidade resultante da imagem renderizada deverá ser k/n. Cada componente RGB de cada pixel é contabilizado por k/n.
D3DRS_PATCHEDGESTYLE
Define se as bordas de patch usarão mosaico de estilo float.
D3DRS_DEBUGMONITORTOKEN
Defina apenas para depurar o monitor.
D3DRS_POINTSIZE_MAX
Um valor flutuante que especifica o tamanho máximo para o qual os sprites de ponto serão fixados. O valor deve ser menor ou igual ao membro MaxPointSize de D3DCAPS9 e maior ou igual a D3DRS_POINTSIZE_MIN. O valor padrão é 64.0.
D3DRS_INDEXEDVERTEXBLENDENABLE
Um valor bool que habilita ou desabilita a mesclagem de vértice indexada. O valor padrão é FALSE. Quando definido como TRUE, a mesclagem de vértice indexada é habilitada. Quando definido como FALSE, a mesclagem de vértice indexada é desabilitada. Se esse estado de renderização estiver habilitado, o usuário deverá passar índices de matriz como um DWORD empacotado com cada vértice. Quando o estado de renderização está desabilitado e a mesclagem de vértice é habilitada por meio do estado D3DRS_VERTEXBLEND, é equivalente a ter índices de matriz 0, 1, 2, 3 em cada vértice.
D3DRS_COLORWRITEENABLE
Valor UINT que habilita uma gravação por canal para o buffer de cores de destino de renderização. Um bit definido resulta na atualização do canal de cores durante a renderização 3D. Um bit claro faz com que o canal de cores não seja afetado.
D3DRS_TWEENFACTOR
Um valor flutuante que controla o fator de interpolação.
D3DRS_BLENDOP
Valor usado para selecionar a operação aritmética aplicada quando o estado de renderização de mistura alfa, D3DRS_ALPHABLENDENABLE, é definido como TRUE.

Se não houver suporte para a funcionalidade do dispositivo D3DPMISCCAPS_BLENDOP, D3DBLENDOP_ADD será executada.
D3DRS_POSITIONDEGREE
N-patch posição interpolação grau. Os valores podem ser D3DDEGREE_CUBIC (padrão) ou D3DDEGREE_LINEAR.
D3DRS_NORMALDEGREE
N-patch grau de interpolação normal. Os valores podem ser D3DDEGREE_LINEAR (padrão) ou D3DDEGREE_QUADRATIC.
D3DRS_SCISSORTESTENABLE
TRUE para habilitar o teste de tesoura e FALSE para desabilitá-lo. O valor padrão é FALSE.
D3DRS_SLOPESCALEDEPTHBIAS
Usado para determinar quanto viés pode ser aplicado a primitivos co-planares para reduzir a luta z. O valor padrão é 0.
D3DRS_ANTIALIASEDLINEENABLE
TRUE para habilitar a suavização de linha, FALSE para desabilitar a suavização de linha. O valor padrão é FALSE.
D3DRS_MINTESSELLATIONLEVEL
Nível mínimo de mosaico. O valor padrão é 1,0f.
D3DRS_MAXTESSELLATIONLEVEL
Nível máximo de mosaico. O valor padrão é 1,0f.
D3DRS_ADAPTIVETESS_X
Valor para mosaico adaptável, na direção x. O valor padrão é 0,0f.
D3DRS_ADAPTIVETESS_Y
Quantidade para mosaico adaptável, na direção y. O valor padrão é 0,0f.
D3DRS_ADAPTIVETESS_Z
Valor para mosaico adaptável, na direção z. O valor padrão é 1,0f.
D3DRS_ADAPTIVETESS_W
Valor para mosaico adaptável, na direção w. O valor padrão é 0,0f.
D3DRS_ENABLEADAPTIVETESSELLATION
TRUE para habilitar o mosaico adaptável, FALSE para desabilitá-lo.
D3DRS_TWOSIDEDSTENCILMODE
TRUE habilita o estêncil de dois lados, FALSE o desabilita. O valor padrão é FALSE. O aplicativo deve definir D3DRS_CULLMODE para D3DCULL_NONE para habilitar o modo de estêncil de dois lados. Se a ordem de enrolamento do triângulo for no sentido horário, as operações D3DRS_STENCIL* serão usadas. Se a ordem de enrolamento for no sentido anti-horário, as operações D3DRS_CCW_STENCIL* serão usadas.
D3DRS_CCW_STENCILFAIL
Operação de estêncil a ser executada se o teste de estêncil CCW falhar.
D3DRS_CCW_STENCILZFAIL
Operação de estêncil a ser executada se o teste de estêncil CCW for aprovado e o teste z falhar.
D3DRS_CCW_STENCILPASS
Operação de estêncil a ser executada se os testes ccw e z forem aprovados.
D3DRS_CCW_STENCILFUNC
A função de comparação. O teste de estêncil CCW será aprovado se a função de estêncil (ref & máscara) (máscara de estêncil &)) for TRUE.
D3DRS_COLORWRITEENABLE1
Valores colorwriteenable adicionais para os dispositivos.
D3DRS_COLORWRITEENABLE2
Valores colorwriteenable adicionais para os dispositivos.
D3DRS_COLORWRITEENABLE3
Valores colorwriteenable adicionais para os dispositivos.
D3DRS_BLENDFACTOR
Um fator de mistura constante durante a mistura alfa.
D3DRS_SRGBWRITEENABLE
Habilite as gravações de destino de renderização a serem corrigidas por gama para sRGB. O formato deve expor D3DUSAGE_SRGBWRITE. O valor padrão é 0.
D3DRS_DEPTHBIAS
Um valor de ponto flutuante usado para comparação de valores de profundidade.
D3DRS_WRAP8
Veja D3DRS_WRAP0.
D3DRS_WRAP9
Veja D3DRS_WRAP0.
D3DRS_WRAP10
Veja D3DRS_WRAP0.
D3DRS_WRAP11
Veja D3DRS_WRAP0.
D3DRS_WRAP12
Veja D3DRS_WRAP0.
D3DRS_WRAP13
Veja D3DRS_WRAP0.
D3DRS_WRAP14
Veja D3DRS_WRAP0.
D3DRS_WRAP15
Veja D3DRS_WRAP0.
D3DRS_SEPARATEALPHABLENDENABLE
TRUE habilita o modo de mesclagem separado para o canal alfa. O valor padrão é FALSE.

Quando definido como FALSE, os fatores de mesclagem de destino de renderização e as operações aplicadas ao alfa são forçados a serem iguais aos definidos para cor. Esse modo é efetivamente conectado a FALSE em implementações que não definem o limite D3DPMISCCAPS_SEPARATEALPHABLEND.
D3DRS_SRCBLENDALPHA
Esse valor é ignorado, a menos que D3DRS_SEPARATEALPHABLENDENABLE seja TRUE.
D3DRS_DESTBLENDALPHA
Esse valor é ignorado, a menos que D3DRS_SEPARATEALPHABLENDENABLE seja TRUE.
D3DRS_BLENDOPALPHA
Valor usado para selecionar a operação aritmética aplicada à combinação alfa separada quando o estado de renderização, D3DRS_SEPARATEALPHABLENDENABLE, é definido como TRUE.
D3DRS_FORCE_DWORD
Força essa enumeração a compilar para 32 bits de tamanho. Sem esse valor, alguns compiladores permitiriam que essa enumeração fosse compilada em um tamanho diferente de 32 bits. Esse valor não é usado.

Observações

Esses estados de renderização são apenas para uso interno:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

Determina se as texturas são removidas da memória. O driver usa um tipo de dados BOOL sem um valor padrão para detectar se deve ser removido.

Esse estado de renderização determina se o driver remove texturas que gerencia (em vez de texturas gerenciadas pelo runtime do Direct3D) da memória de vídeo. Se o valor de estado de renderização for TRUE, o driver removerá as texturas. Caso contrário, o driver não removerá essas texturas.

D3DRENDERSTATE_SCENECAPTURE

Especifica informações de cena de início ou informações de cena de fim para dados geométricos capturados em um quadro. O driver usa um tipo de dados BOOL com um valor padrão de verdadeiro para detectar informações de captura de cena.

O driver responde a D3DRENDERSTATE_SCENECAPTURE primeiro com TRUE para obter informações de cena de início e, em seguida, com FALSE para obter informações da cena final para capturar dados geométricos dentro de um quadro. Consulte o driver de exemplo permedia2 fornecido com o DDK (Windows Driver Development Kit) para obter um exemplo de implementação. Usar o estado de renderização D3DRENDERSTATE_SCENECAPTURE em uma chamada D3dDrawPrimitives2 substitui a D3DHALCallbacksherdada ->D3dSceneCapture rotina de retorno de chamada.

É necessário ter cuidado ao atualizar um driver que implementa o D3DHALCallbacks herdado –>D3dSceneCapture rotina de retorno de chamada para um usando o estado de renderização D3DRENDERSTATE_SCENECAPTURE. A rotina de retorno de chamada D3dSceneCapture usa as constantes D3DHAL_SCENE_CAPTURE_START e D3DHAL_SCENE_CAPTURE_END para indicar, respectivamente, o início e o fim de uma cena. Os valores dessas constantes são, respectivamente, 0 e 1. Se você usar essas constantes no lugar de verdadeiro e FALSE nesse estado de renderização, o significado será exatamente o oposto do que você pretende.

D3DRS_DELETERTPATCH

somente o DirectX 8.0 e versões posteriores.

Exclui um patch retangular ou triangular da memória. O driver usa um tipo de dados DWORD sem um valor padrão para detectar o patch a ser excluído.

Esse estado de renderização notifica o driver de que um patch deve ser excluído. O valor desse estado de renderização é o identificador do patch afetado. Todas as informações armazenadas em cache devem ser liberadas e o identificador deve ser removido da tabela de identificadores de patch do driver. Esse estado de renderização não é visível para aplicativos, mas é gerado internamente quando um aplicativo chama a função DeletePatch. Esse estado de renderização é enviado ao driver somente quando os patches são excluídos por DeletePatch explicitamente. Todos os outros patches devem ser limpos quando o dispositivo é destruído.

D3DRS_MAXPIXELSHADERINST

somente o DirectX 9.0 e versões posteriores.

Determina o número máximo de instruções que o assembler de sombreador de pixel pode executar.

O driver usa um tipo de dados DWORD com um valor padrão de D3DINFINITEINSTRUCTIONS (0xffffffff) para relatar o número máximo de instruções de sombreador de pixel. Esse número máximo depende da versão do sombreador de pixel que o dispositivo de exibição dá suporte, conforme mostrado na tabela a seguir.

Versão Número máximo
anterior a 2_0 0
2_0 De 96 a D3DINFINITEINSTRUCTIONS
3_0 e posterior De 2¹⁶ (0x0000ffff) a D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS representa uma quantidade praticamente ilimitada.

Valores válidos para esse estado de renderização são números que são potências de 2; se o driver definir qualquer outro inteiro, o runtime usará a próxima potência mais próxima de 2 números.

O runtime define o maxVShaderInstructionsExecuted membro da estrutura D3DCAPS9 para esse número máximo.

D3DRS_MAXVERTEXSHADERINST

somente o DirectX 9.0 e versões posteriores.

Determina o número máximo de instruções que o montador de sombreador de vértice pode executar.

O driver usa um tipo de dados DWORD com um valor padrão de D3DINFINITEINSTRUCTIONS (0xffffffff) para relatar o número máximo de instruções de sombreador de vértice. Esse número máximo depende da versão do sombreador de vértice à qual o dispositivo de exibição dá suporte, conforme mostrado na tabela a seguir.

Versão Número máximo
anterior a 2_0 0
2_0 e posterior De 2¹⁶ (0x0000ffff) a D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS representa uma quantidade praticamente ilimitada.

Valores válidos para esse estado de renderização são números que são potências de 2; se o driver definir qualquer outro inteiro, o runtime usará a próxima potência mais próxima de 2 números.

O runtime define o maxVShaderInstructionsExecuted membro da estrutura D3DCAPS9 para esse número máximo.

O driver usa esses estados de renderização quando executa a renderização de gráficos. Somente os estados de renderização específicos aos drivers são incluídos na documentação do WDK (Windows Driver Kit). Os estados de renderização acessíveis aos aplicativos DirectX estão incluídos na documentação do SDK do DirectX. Esses estados de renderização no nível do aplicativo incluem características como se a mistura alfa está habilitada, se o dithering está habilitado, se a iluminação Direct3D é usada e o tipo de sombreamento a ser usado.

Para atualizar um estado de renderização específico, o Direct3D armazena informações sobre o estado de renderização e, em seguida, chama o D3dDrawPrimitives2 do driver2 rotina de retorno de chamada. As informações fornecidas ao driver permitem que ele:

  • Determine que ele deve atualizar um ou mais estados de renderização.

  • Identifique quais estados de renderização devem ser atualizados e quais devem ser os novos valores de estado de renderização.

Observe que, para que determinados estados de renderização sejam respeitados, o driver deve ter definido previamente sinalizadores de funcionalidade no membro relevante da estrutura D3DPRIMCAPS.

Para indicar uma atualização de estado de renderização específica, o Direct3D insere uma estrutura D3DHAL_DP2COMMAND no buffer de comando, definindo o bCommand membro dessa estrutura como D3DDP2OP_RENDERSTATE (consulte a descrição de D3DDP2OP_RENDERSTATE no D3DHAL_DP2OPERATION) e definindo o wStateCount membro da mesma estrutura para o número de estados de renderização a serem atualizados.

Imediatamente após a estrutura de D3DHAL_DP2COMMAND, o Direct3D insere uma estrutura D3DHAL_DP2RENDERSTATE no buffer de comando para cada estado de renderização a ser atualizado. O membro RenderState dessa estrutura identifica o estado de renderização a ser alterado; o novo valor desse estado de renderização é especificado no membro dwState (para valores DWORD) ou no membro fState (para valores D3DVALUE).

A figura a seguir mostra uma parte do buffer de comando que contém um comando D3DDP2OP_RENDERSTATE e duas estruturas de D3DHAL_DP2RENDERSTATE. A primeira das três estruturas indica que dois estados de renderização devem ser atualizados. A segunda estrutura indica que o estado de renderização D3DRENDERSTATE_FILLMODE deve ser alterado para D3DFILL_SOLID. A terceira estrutura indica que o estado de renderização D3DRENDERSTATE_SHADEMODE deve ser atualizado para D3DSHADE_GOURAUD.

Figura mostrando um buffer de comando com um comando D3DDP2OP_RENDERSTATE e duas estruturas D3DHAL_DP2RENDERSTATE

de notas adicionais

Consulte os tipos D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP e D3DTEXTUREFILTER enumerados na documentação do SDK do DirectX para obter listagens completas de todos os tipos de estado de renderização habilitados.

Algumas alterações foram feitas no tipo D3DRENDERSTATETYPE enumerado para DirectX 5.0 e posterior. D3DRENDERSTATE_BLENDENABLE foi completamente removido, embora seja definido como D3DRENDERSTATE_ALPHABLENDENABLE no arquivo de cabeçalho d3dtypes.h. Consulte D3DRENDERSTATE_COLORKEYENABLE para obter uma explicação. Os 128 valores inteiros no intervalo [128, 255] são reservados para sinalizadores de encapsulamento de coordenadas de textura. Elas são construídas com as macros D3DWRAP_U e D3DWRAP_V. O uso de uma palavra sinalizadores preserva a compatibilidade com coordenadas de textura de dimensão maior que 2D.

Operações de macro multitextura e D3DRENDERSTATE_TEXTUREFACTOR substituem todos os controles de mesclagem por estágio de textura (COLOR{OP, ARG1, ARG2} & ALPHA{OP, ARG1,ARG2}).

Requisitos

Requisito Valor
cabeçalho d3d9types.h (inclua D3dhal.h)