Compartilhar via


Função EngPlgBlt (winddi.h)

A função EngPlgBlt faz com que o GDI execute uma transferência de bloco de bits rotativa.

Sintaxe

ENGAPI BOOL EngPlgBlt(
       SURFOBJ         *psoTrg,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMsk,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlBrushOrg,
       POINTFIX        *pptfx,
       RECTL           *prcl,
       POINTL          *pptl,
  [in] ULONG           iMode
);

Parâmetros

psoTrg

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

psoSrc

Ponteiro para uma estrutura SURFOBJ que descreve a superfície de origem para a operação de transferência de bloco de bits.

psoMsk

Ponteiro para uma estrutura SURFOBJ opcional que representa uma máscara para a origem. Ele é definido por um mapa lógico, que é um bitmap com um bit por pixel.

Essa máscara limita a área da origem copiada. Uma máscara tem um rop4 implícito de 0xCCAA, o que significa que a origem deve ser copiada onde quer que a máscara seja 1, mas o destino deve ser deixado sozinho onde quer que a máscara seja zero.

Se esse parâmetro for NULL, haverá um rop4 implícito de 0xCCCC, o que significa que a origem deve ser copiada em todos os lugares no retângulo de origem.

A máscara sempre será grande o suficiente para conter a fonte relevante; tiling é desnecessário.

pco

Ponteiro para uma estrutura CLIPOBJ que limita a área do destino a ser modificada. As funções GDI enumeram a região de clipe como um conjunto de retângulos.

Sempre que possível, a GDI simplifica o recorte envolvido. Ao contrário da função DrvBitBlt , EngPlgBlt pode ser chamado com um único retângulo de recorte. Isso impede erros de arredondamento ao recortar a saída.

pxlo

Ponteiro para uma estrutura XLATEOBJ que define como os índices de cor são convertidos entre as superfícies de origem e destino. Essa estrutura XLATEOBJ pode ser consultada para localizar a cor RGB de qualquer índice de origem.

Uma transferência de bloco de bits rotacionada de alta qualidade é necessária para interpolar cores.

pca

Ponteiro para uma estrutura COLORADJUSTMENT que define os valores de ajuste de cor a serem aplicados ao bitmap de origem antes de alongar os bits. Para obter mais informações, consulte a documentação do SDK do Microsoft Windows.

pptlBrushOrg

Ponteiro para uma estrutura POINTL que especifica a origem do pincel de meio tom. Os drivers que usam pincéis de meio tom devem alinhar o pixel superior esquerdo do padrão do pincel com esse ponto na superfície do dispositivo.

pptfx

Ponteiro para três estruturas POINTFIX que definem um paralelismo na superfície de destino. Um quarto vértice implícito é dado como: D = B + C − A. Para obter uma descrição desse tipo de dados, consulte Tipos de dados GDI.

EngPlgBlt nunca é chamado com collinear A, B e C.

prcl

Ponteiro para uma estrutura RECTL que define, no sistema de coordenadas da superfície de origem, a área a ser copiada. Os pontos do retângulo de origem são bem ordenados. EngPlgBlt nunca receberá um retângulo de origem vazio.

pptl

Ponteiro para uma estrutura POINTL que especifica qual pixel na máscara fornecida corresponde ao pixel superior esquerdo no retângulo de origem. Ignore esse parâmetro se psoMsk for NULL.

[in] iMode

Define como os pixels de origem são combinados para obter pixels de saída. Esse parâmetro pode usar um dos valores a seguir:

Valor Significado
BLACKONWHITE Em uma transferência de bloco de bits reduzida, os pixels devem ser combinados com uma operação AND. Em um bloco de bits de extensão, os pixels de transferência devem ser replicados.
COLORONCOLOR Em uma transferência de bloco de bits reduzida, pixels suficientes devem ser ignorados para que os pixels não precisem ser combinados. Em uma transferência de bloco de bits alongada, os pixels devem ser replicados.
HALFTONE O driver pode usar grupos de pixels na superfície de saída para aproximar melhor a cor ou o nível cinza da entrada.
WHITEONBLACK Em uma transferência de bloco de bits reduzida, os pixels devem ser combinados com uma operação OR. Em transferências de bloco de alongamento, os pixels devem ser replicados.
 

Os métodos WHITEONBLACK, BLACKONWHITE e COLORONCOLOR são simples e fornecem compatibilidade para aplicativos antigos, mas não produzem os resultados mais bonitos para superfícies de cores.

Retornar valor

O valor retornado será TRUE se a função for bem-sucedida. Caso contrário, será FALSE e um código de erro será relatado.

Comentários

O EngPlgBlt executa apenas determinados tipos de rotações.

Essa função executa transferências de bloco de bits de um retângulo definido por prcl para qualquer paralelismo. O parallelogram é definido por pptfx, que aponta para uma matriz de três pontos.

O retângulo de origem em prcl é considerado um retângulo geométrico cujos cantos são deslocados por (-0,5,-0,5) das coordenadas de inteiro fornecidas. Isso corresponde exatamente ao retângulo de origem para EngStretchBlt. O retângulo de origem é sempre bem ordenado.

O canto superior esquerdo do retângulo de origem é mapeado para o primeiro ponto, A. O canto superior direito do retângulo de origem é mapeado para o segundo ponto, B. O canto inferior esquerdo do retângulo de origem é mapeado para o terceiro ponto, C. O canto inferior direito do retângulo de origem é mapeado para o ponto implícito no paralelismo definido tratando os três pontos fornecidos como vetores e computação:

D = B + C - A

Observe que um estiramento blit pode ser expresso exatamente como um blit de paralelismo, mas as coordenadas fornecidas para o destino serão divisível por cinco.

Requisitos

Requisito Valor
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

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt