Compartilhar via


Função EngGradientFill (winddi.h)

A função EngGradientFill sombreia os primitivos especificados.

Sintaxe

ENGAPI BOOL EngGradientFill(
       SURFOBJ   *psoDest,
       CLIPOBJ   *pco,
       XLATEOBJ  *pxlo,
       TRIVERTEX *pVertex,
       ULONG     nVertex,
       PVOID     pMesh,
       ULONG     nMesh,
       RECTL     *prclExtents,
       POINTL    *pptlDitherOrg,
  [in] ULONG     ulMode
);

Parâmetros

psoDest

Ponteiro para a estrutura SURFOBJ que identifica a superfície na qual desenhar.

pco

Ponteiro para uma estrutura CLIPOBJ . As rotinas de serviço CLIPOBJ_Xxx são fornecidas para enumerar a região de clipe como um conjunto de retângulos. Essa enumeração limita a área do destino que é modificado. Sempre que possível, a GDI simplifica o recorte envolvido.

pxlo

Ponteiro para uma estrutura XLATEOBJ . Essa estrutura indica como os índices de cores devem ser convertidos entre o formato RGB de 32 bpp e o destino. O driver é responsável por converter os valores de cor de COLOR16 de entrada em RGB.

pVertex

Ponteiro para uma matriz de estruturas TRIVERTEX, com cada entrada contendo informações de posição e cor. A estrutura TRIVERTEX é descrita na documentação do SDK do Microsoft Windows.

nVertex

Especifica o número de estruturas TRIVERTEX na matriz para a qual pVertex aponta.

pMesh

Ponteiro para uma matriz de estruturas que definem a conectividade dos elementos TRIVERTEX aos quais pVertex aponta.

Quando retângulos estão sendo desenhados, pMesh aponta para uma matriz de estruturas GRADIENT_RECT, cada uma especificando dois elementos TRIVERTEX que definem um retângulo. Os elementos TRIVERTEX podem representar qualquer par diagonalmente oposto de vértices de retângulo. O desenho do retângulo é exclusivo no canto inferior direito. TRIVERTEX e GRADIENT_RECT são definidos na documentação do SDK do Windows.

Quando triângulos estão sendo desenhados, pMesh aponta para uma matriz de estruturas GRADIENT_TRIANGLE, cada uma especificando os três elementos TRIVERTEX que definem um triângulo. O desenho do triângulo é exclusivo no canto inferior direito. A estrutura GRADIENT_TRIANGLE é definida na documentação do SDK do Windows.

nMesh

Especifica o número de elementos na matriz para a qual pMesh aponta.

prclExtents

Ponteiro para uma estrutura RECTL que define a área na qual o desenho de gradiente deve ocorrer. Os pontos são especificados no sistema de coordenadas da superfície de destino. Esse parâmetro é útil para estimar o tamanho das operações de desenho.

pptlDitherOrg

Ponteiro para uma estrutura POINTL que define a origem na superfície para dithering. O pixel superior esquerdo do padrão dither está alinhado com esse ponto.

[in] ulMode

Especifica o modo de desenho atual e como interpretar a matriz à qual pMesh aponta. Esse parâmetro pode usar um dos valores a seguir:

GRADIENT_FILL_RECT_H

O parâmetro pMesh aponta para uma matriz de estruturas GRADIENT_RECT. Cada retângulo deve ser sombreado da esquerda para a direita.

GRADIENT_FILL_RECT_V

O parâmetro pMesh aponta para uma matriz de estruturas GRADIENT_RECT. Cada retângulo deve ser sombreado de cima para baixo.

GRADIENT_FILL_TRIANGLE

O parâmetro pMesh aponta para uma matriz de estruturas GRADIENT_TRIANGLE.

Valor retornado

EngGradientFill retorna TRUE após o sucesso. Caso contrário, ele relatará um erro e retornará FALSE.

Comentários

O driver deve chamar EngGradientFill se ele tiver fisgado DrvGradientFill e for chamado para fazer algo que ele não dá suporte.

As fórmulas usadas para calcular o valor de cor em cada pixel dependem do valor de ulMode da seguinte maneira:

A GDI ignora o valor alfa dos vértices, deixando o canal alfa inalterado para superfícies que dão suporte a alfa.

Requisitos

   
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho winddi.h (inclua Winddi.h)
Biblioteca Win32k.lib
DLL Win32k.sys

Confira também

DrvGradientFill