Compartilhar via


Função EngBitBlt (winddi.h)

A função EngBitBlt fornece funcionalidades gerais de transferência de bloco de bits entre superfícies gerenciadas pelo dispositivo ou entre uma superfície gerenciada pelo dispositivo e um bitmap de formato padrão gerenciado por GDI.

Sintaxe

ENGAPI BOOL EngBitBlt(
       SURFOBJ  *psoTrg,
       SURFOBJ  *psoSrc,
       SURFOBJ  *psoMask,
       CLIPOBJ  *pco,
       XLATEOBJ *pxlo,
       RECTL    *prclTrg,
       POINTL   *pptlSrc,
       POINTL   *pptlMask,
       BRUSHOBJ *pbo,
       POINTL   *pptlBrush,
  [in] ROP4     rop4
);

Parâmetros

psoTrg

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

psoSrc

Se o rop4 exigir, ponteiro para uma estrutura SURFOBJ que define a origem da operação de transferência de bloco de bits.

psoMask

Ponteiro para uma estrutura SURFOBJ que define uma superfície a ser usada como uma máscara. A máscara é definida como um bitmap com 1 bit por pixel. Normalmente, uma máscara limita a área a ser modificada na superfície de destino. A máscara é selecionada por um rop4 com o valor 0xAACC. A superfície de destino não é afetada quando a máscara é zero.

A máscara é grande o suficiente para cobrir o retângulo de destino.

Se o valor desse parâmetro for NULL e uma máscara for exigida pelo rop4, a máscara implícita no pincel será usada. Se uma máscara for necessária, o psoMask substituirá a máscara implícita no pincel.

pco

Ponteiro para uma estrutura CLIPOBJ . As rotinas de serviço CLIPOBJ_Xxx são fornecidas para enumerar a região do clipe como um conjunto de retângulos. Essa enumeração limita a área do destino que será modificada. Sempre que possível, a GDI simplifica o recorte envolvido; por exemplo, essa função nunca é chamada com um único retângulo de recorte. O GDI corta o retângulo de destino antes de chamar essa função, tornando o recorte adicional desnecessário.

pxlo

Ponteiro para uma estrutura XLATEOBJ que informa como os índices de cor devem ser convertidos entre as superfícies de origem e de destino.

prclTrg

Ponteiro para uma estrutura RECTL no sistema de coordenadas da superfície de destino que define a área a ser modificada. O retângulo é definido por dois pontos; superior esquerdo e inferior direito. As bordas inferior e direita desse retângulo não fazem parte da transferência de bloco de bits, o que significa que o retângulo é exclusivo inferior direito.

O EngBitBlt nunca é chamado com um retângulo de destino vazio. Os dois pontos que definem o retângulo são sempre bem ordenados.

pptlSrc

Ponteiro para uma estrutura POINTL que define o canto superior esquerdo do retângulo de origem, se houver uma origem. Se não houver nenhuma origem, o driver deverá ignorar esse parâmetro.

pptlMask

Ponteiro para uma estrutura POINTL que define qual pixel na máscara corresponde ao canto superior esquerdo do retângulo de destino. Se nenhuma máscara for especificada em psoMask , o driver deverá ignorar esse parâmetro.

pbo

Ponteiro para a estrutura BRUSHOBJ a ser usada para definir o padrão para a transferência de bloco de bits. A rotina de serviço BRUSHOBJ_pvGetRbrush da GDI recupera a realização do pincel pelo dispositivo. O driver poderá ignorar esse parâmetro se o parâmetro rop4 não exigir um padrão.

pptlBrush

Ponteiro para uma estrutura POINTL que define a origem do pincel na superfície de destino. O pixel superior esquerdo do pincel é alinhado neste ponto e o pincel se repete de acordo com suas dimensões. Ignore esse parâmetro se o parâmetro rop4 não exigir um padrão.

[in] rop4

Representa uma operação de raster que define como os pixels de máscara, padrão, origem e destino são combinados para gravar um pixel de saída na superfície de destino.

Esta é uma operação de raster quaternário, que é uma extensão natural da operação rop3 ternária usual. Um Rop4 tem 16 bits relevantes, que são semelhantes aos 8 bits definidos de um Rop3. (Os outros bits redundantes do Rop3 são ignorados.) A maneira mais simples de implementar um Rop4 é considerar seus 2 bytes separadamente. O byte inferior especifica um Rop3 que deve ser calculado onde quer que a máscara seja 1. O byte alto especifica um Rop3 que pode ser calculado e aplicado onde quer que a máscara seja 0.

Valor retornado

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

Comentários

Se a superfície de um dispositivo for organizada como um bitmap de formato padrão, o driver poderá solicitar que a GDI execute a transferência de bloco de bits chamando EngBitBlt. Um driver pode fazer isso se tiver hardware especial para lidar com transferências simples rapidamente, mas não quiser lidar com chamadas com transferências complicadas.

Consulte a documentação SDK do Microsoft Windows para obter mais informações sobre operações de raster.

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

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ