Compartilhar via


D3DRENDERSTATETYPE enumeração (d3d9types.h)

O D3DRENDERSTATETYPE tipo 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:

Syntax

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 D3DZBUFFERTYPE tipo de enumeração 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 sejam 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 do buffer de quadros será ignorado para o pixel.
D3DRS_LASTPIXEL
O valor padrão é TRUE, que habilita 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 D3DCULL tipo de enumeração que especifica como os triângulos voltados para trás são eliminados, se em tudo.
D3DRS_ZFUNC
Um D3DCMPFUNC tipo de enumeração 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 do buffer de profundidade. Se o valor de profundidade do pixel passar a 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 pixels 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 D3DCMPFUNC tipo de enumeração 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 combinada alfa. O valor padrão é FALSE.

O tipo de mesclagem alfa é determinado pelos estados de renderização D3DRS_SRCBLEND e D3DRS_DESTBLEND.
D3DRS_FOGENABLE
TRUE para habilitar a mesclagem de neblina. O valor padrão é FALSE.
D3DRS_SPECULARENABLE
TRUE para habilitar realces especular. O valor padrão é FALSE.
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 ao redor 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 mesclagem alfa.
D3DRS_FOGCOLOR
Uma estrutura D3DCOLORVALUE .
D3DRS_FOGTABLEMODE
Um D3DFOGMODE tipo 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 do mundo para neblina de vértice e espaço de 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 do mundo para neblina de vértice e espaço de 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 do mundo 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 profundidade para calcular a neblina tem o efeito indesejável de ter o nevoeiro dos objetos periféricos alterado à 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 D3DSTENCILOP tipo de enumeração 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 D3DSTENCILOP tipo de enumeração 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 D3DSTENCILOP tipo de enumeração 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 na 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 mesclagem de textura D3DTA_TFACTOR ou o D3DTOP_BLENDFACTORALPHA operação de mesclagem de textura.
D3DRS_WRAP0
Comportamento de disposição 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 encapsule 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
Consulte D3DRS_WRAP0.
D3DRS_WRAP2
Consulte D3DRS_WRAP0.
D3DRS_WRAP3
Consulte D3DRS_WRAP0.
D3DRS_WRAP4
Consulte D3DRS_WRAP0.
D3DRS_WRAP5
Consulte D3DRS_WRAP0.
D3DRS_WRAP6
Consulte D3DRS_WRAP0.
D3DRS_WRAP7
Consulte D3DRS_WRAP0.
D3DRS_CLIPPING
TRUE para habilitar o recorte primitivo por 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 normal empregam um produto de ponto de 0 em todos os cálculos de iluminação.
D3DRS_AMBIENT
Cor clara ambiente.
D3DRS_FOGVERTEXMODE
Fórmula de neblina a ser usada para nevoeiro 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 especular 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á-lo. 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 cores especular para cálculos de iluminação.
D3DRS_AMBIENTMATERIALSOURCE
Fonte de cores 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. Os 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 float 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 na tela se D3DRS_POINTSCALEENABLE for FALSE; caso contrário, esse valor está em unidades espaciais do mundo. 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 float que especifica o tamanho mínimo dos primitivos de ponto. Primitivos de ponto são fixados a esse tamanho durante a renderização. Definir isso como valores menores que 1,0 resulta na desativação de pontos 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 obter 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 o dimensionamento do eixo y do visor 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 float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é TRUE. O valor padrão é 1.0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_POINTSCALE_B
Um valor float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é TRUE. O valor padrão é 0,0f. O intervalo para esse valor é maior ou igual a 0,0f.
D3DRS_POINTSCALE_C
Um valor float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é 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 calculados 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 todos gravados com o mesmo valor de exemplo, amostrado no centro de pixels, o que permite a renderização não suavizada em um buffer de 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, iniciando 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 amostras, 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 de várias amostras como um buffer de acúmulo, fazendo a renderização multipassa da geometria em que cada passagem atualiza um subconjunto de amostras.
Se houver n várias amostras e k amostras habilitadas, a intensidade resultante da imagem renderizada deverá ser k/n. Cada RGB de componente de cada pixel é fatorado por k/n.
D3DRS_PATCHEDGESTYLE
Define se as bordas de patch usarão o mosaico de estilo float.
D3DRS_DEBUGMONITORTOKEN
Defina apenas para depurar o monitor.
D3DRS_POINTSIZE_MAX
Um valor float que especifica o tamanho máximo ao 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 é 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 float que controla o fator interpolação.
D3DRS_BLENDOP
Valor usado para selecionar a operação aritmética aplicada quando o estado de renderização de mesclagem alfa, D3DRS_ALPHABLENDENABLE, é definido como TRUE.

Se não houver suporte para a funcionalidade do dispositivo D3DPMISCCAPS_BLENDOP, D3DBLENDOP_ADD será executado.
D3DRS_POSITIONDEGREE
N-patch position interpolation degree. 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 desvio pode ser aplicado a primitivos co-planares para reduzir o z-fighting. 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
Valor 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 a mosaico adaptável, FALSE para desabilitá-la.
D3DRS_TWOSIDEDSTENCILMODE
TRUE habilita o estêncil de dois lados, FALSE o desabilita. O valor padrão é FALSE. O aplicativo deve definir D3DRS_CULLMODE como 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 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 o estêncil CCW e os testes z forem aprovados.
D3DRS_CCW_STENCILFUNC
A função de comparação. O teste do estêncil CCW será aprovado se a função de estêncil (ref & mask) (estêncil & máscara)) 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
Consulte D3DRS_WRAP0.
D3DRS_WRAP9
Consulte D3DRS_WRAP0.
D3DRS_WRAP10
Consulte D3DRS_WRAP0.
D3DRS_WRAP11
Consulte D3DRS_WRAP0.
D3DRS_WRAP12
Consulte D3DRS_WRAP0.
D3DRS_WRAP13
Consulte D3DRS_WRAP0.
D3DRS_WRAP14
Consulte D3DRS_WRAP0.
D3DRS_WRAP15
Consulte D3DRS_WRAP0.
D3DRS_SEPARATEALPHABLENDENABLE
TRUE habilita o modo de combinação 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 ser 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 para um tamanho diferente de 32 bits. Este valor não é usado.

Comentários

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 deseja remover.

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 de cena final para dados geométricos capturados em um quadro. O driver usa um tipo de dados BOOL com um valor padrão true para detectar informações de captura de cena.

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

É necessário ter cuidado ao atualizar um driver que implementa a rotina de retorno de chamada D3DHALCallbacks-D3dSceneCapture> herdada 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 TRUE 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 identificador 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 pixels. 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.

Os 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 membro MaxVShaderInstructionsExecuted 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 assembler 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 compatível com o dispositivo de exibição, 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.

Os 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 membro MaxVShaderInstructionsExecuted 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 dos drivers são incluídos na documentação do WDK (Kit de Driver do Windows). 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 mesclagem 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 chama a rotina de retorno de chamada D3dDrawPrimitives2 do driver. 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 serão 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 anteriormente os sinalizadores de capacidade 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 membro bCommand dessa estrutura como D3DDP2OP_RENDERSTATE (consulte a descrição de D3DDP2OP_RENDERSTATE em D3DHAL_DP2OPERATION) e definindo o membro wStateCount da mesma estrutura para o número de estados de renderização a serem atualizados.

Imediatamente após a estrutura 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 de D3DVALUE).

A figura a seguir mostra uma parte do buffer de comando que contém um comando D3DDP2OP_RENDERSTATE e duas estruturas D3DHAL_DP2RENDERSTATE. A primeira das três estruturas indica que dois estados de renderização devem ser atualizados. A segunda estrutura indica que o D3DRENDERSTATE_FILLMODE estado de renderização 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 de D3DHAL_DP2RENDERSTATE

Anotações adicionais

Consulte os tipos enumerados D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP e D3DTEXTUREFILTER 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 enumerado D3DRENDERSTATETYPE 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 flags preserva a compatibilidade com as coordenadas de textura de dimensão superior à 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)