Share via


EngBitBlt 함수(winddi.h)

EngBitBlt 함수는 디바이스 관리 표면 간 또는 디바이스 관리형 표면과 GDI 관리 표준 형식 비트맵 간에 일반적인 비트 블록 전송 기능을 제공합니다.

구문

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
);

매개 변수

psoTrg

그릴 표면을 식별하는 SURFOBJ 구조체에 대한 포인터입니다.

psoSrc

rop4에 필요한 경우 비트 블록 전송 작업의 원본을 정의하는 SURFOBJ 구조체에 대한 포인터입니다.

psoMask

마스크로 사용할 표면을 정의하는 SURFOBJ 구조체에 대한 포인터입니다. 마스크는 픽셀당 1비트인 비트맵으로 정의됩니다. 일반적으로 마스크는 대상 표면에서 수정할 영역을 제한합니다. 값이 0xAACC rop4 에서 마스킹을 선택합니다. 마스크가 0이면 대상 표면의 영향을 받지 않습니다.

마스크는 대상 사각형을 덮을 수 있을 만큼 큽다.

이 매개 변수의 값이 NULL 이고 rop4에서 마스크가 필요한 경우 브러시의 암시적 마스크가 사용됩니다. 마스크가 필요한 경우 psoMask 는 브러시의 암시적 마스크를 재정의합니다.

pco

CLIPOBJ 구조체에 대한 포인터입니다. CLIPOBJ_Xxx 서비스 루틴은 클립 영역을 사각형 집합으로 열거하기 위해 제공됩니다. 이 열거형은 수정할 대상의 영역을 제한합니다. 가능하면 GDI는 관련된 클리핑을 간소화합니다. 예를 들어 이 함수는 단일 클리핑 사각형으로 호출되지 않습니다. GDI는 이 함수를 호출하기 전에 대상 사각형을 잘라내어 추가 클리핑을 불필요하게 만듭니다.

pxlo

원본 표면과 대상 표면 간에 색 인덱스를 변환하는 방법을 알려주는 XLATEOBJ 구조체에 대한 포인터입니다.

prclTrg

수정할 영역을 정의하는 대상 표면의 좌표계에 있는 RECTL 구조체에 대한 포인터입니다. 사각형은 두 점으로 정의됩니다. 왼쪽 위와 오른쪽 아래. 이 사각형의 아래쪽 및 오른쪽 가장자리는 비트 블록 전송의 일부가 아니므로 직사각형은 오른쪽 아래에 배타적입니다.

EngBitBlt 는 빈 대상 사각형으로 호출되지 않습니다. 사각형을 정의하는 두 지점은 항상 순서가 잘 정렬됩니다.

pptlSrc

원본이 있는 경우 원본 사각형의 왼쪽 위 모서리를 정의하는 POINTL 구조체에 대한 포인터입니다. 원본이 없는 경우 드라이버는 이 매개 변수를 무시해야 합니다.

pptlMask

대상 사각형의 왼쪽 위 모서리에 해당하는 마스크의 픽셀을 정의하는 POINTL 구조체에 대한 포인터입니다. psoMask에 마스크가 지정되지 않은 경우 드라이버는 이 매개 변수를 무시해야 합니다.

pbo

비트 블록 전송 패턴을 정의하는 데 사용할 BRUSHOBJ 구조체에 대한 포인터입니다. GDI의 BRUSHOBJ_pvGetRbrush 서비스 루틴은 디바이스의 브러시 실현을 검색합니다. rop4 매개 변수에 패턴이 필요하지 않은 경우 드라이버는 이 매개 변수를 무시할 수 있습니다.

pptlBrush

대상 표면에서 브러시의 원점을 정의하는 POINTL 구조체에 대한 포인터입니다. 브러시의 왼쪽 위 픽셀은 이 시점에서 정렬되고 브러시는 해당 크기에 따라 반복됩니다. rop4 매개 변수에 패턴이 필요하지 않은 경우 이 매개 변수를 무시합니다.

[in] rop4

마스크, 패턴, 원본 및 대상 픽셀을 결합하여 대상 화면에 출력 픽셀을 쓰는 방법을 정의하는 래스터 작업을 나타냅니다.

이것은 일반적인 삼중 Rop3 연산의 자연스러운 확장인 쿼터너리 래스터 작업입니다. Rop4에는 Rop3의 8개 정의 비트와 유사한 16개의 관련 비트가 있습니다. (Rop3의 다른 중복 비트는 무시됩니다.) Rop4를 구현하는 가장 간단한 방법은 2바이트를 별도로 고려하는 것입니다. 하한 바이트는 마스크가 1일 때마다 계산해야 하는 Rop3을 지정합니다. 높은 바이트는 마스크가 0일 때마다 계산 및 적용할 수 있는 Rop3을 지정합니다.

반환 값

함수가 성공하면 반환 값은 TRUE 입니다. 그렇지 않으면 FALSE이고 오류 코드가 기록됩니다.

설명

디바이스 표면이 표준 형식 비트맵으로 구성된 경우 드라이버는 EngBitBlt를 호출하여 GDI에 비트 블록 전송을 수행하라고 요청할 수 있습니다. 드라이버는 간단한 전송을 신속하게 처리하는 특수 하드웨어가 있지만 복잡한 전송으로 호출을 처리하지 않으려는 경우 이 작업을 수행할 수 있습니다.

래스터 작업에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 winddi.h(Winddi.h 포함)
라이브러리 Win32k.lib
DLL Win32k.sys

추가 정보

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ