다음을 통해 공유


EngPlgBlt 함수(winddi.h)

EngPlgBlt 함수는 GDI가 회전 비트 블록 전송을 수행하도록 합니다.

구문

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

매개 변수

psoTrg

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

psoSrc

비트 블록 전송 작업의 원본 표면을 설명하는 SURFOBJ 구조체에 대한 포인터입니다.

psoMsk

원본의 마스크를 나타내는 선택적 SURFOBJ 구조체에 대한 포인터입니다. 픽셀당 1비트인 비트맵인 논리 맵에 의해 정의됩니다.

이 마스크는 복사되는 원본의 영역을 제한합니다. 마스크에는 0xCCAA 암시적 rop4 가 있습니다. 즉, 마스크가 1인 곳마다 원본을 복사해야 하지만 마스크가 0인 경우 대상은 혼자 두어야 합니다.

이 매개 변수가 NULL이면 0xCCCC 암시적 rop4 가 있습니다. 즉, 원본 사각형의 모든 위치에서 원본을 복사해야 합니다.

마스크는 항상 관련 원본을 포함할 수 있을 만큼 커야 합니다. 타일링은 필요하지 않습니다.

pco

수정할 대상의 영역을 제한하는 CLIPOBJ 구조체에 대한 포인터입니다. GDI 함수는 클립 영역을 사각형 집합으로 열거합니다.

가능하면 GDI는 관련된 클리핑을 간소화합니다. DrvBitBlt 함수와 달리 EngPlgBlt는 단일 클리핑 사각형으로 호출될 수 있습니다. 이렇게 하면 출력을 클리핑할 때 반올림 오류가 발생하지 않습니다.

pxlo

원본 표면과 대상 표면 간에 색 인덱스를 변환하는 방법을 정의하는 XLATEOBJ 구조체에 대한 포인터입니다. 이 XLATEOBJ 구조체를 쿼리하여 모든 원본 인덱스에서 RGB 색을 찾을 수 있습니다.

색을 보간하려면 고품질 회전 비트 블록 전송이 필요합니다.

pca

비트를 확장하기 전에 원본 비트맵에 적용할 색 조정 값을 정의하는 COLORADJUSTMENT 구조체에 대한 포인터입니다. 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

pptlBrushOrg

하프톤 브러시의 원점을 지정하는 POINTL 구조체에 대한 포인터입니다. 하프톤 브러시를 사용하는 드라이버는 브러시 패턴의 왼쪽 위 픽셀을 디바이스 표면의 이 지점에 맞춰야 합니다.

pptfx

대상 화면에서 병렬 변환을 정의하는 세 개의 POINTFIX 구조체에 대한 포인터입니다. 네 번째 암시적 꼭짓점은 D = B + C - A로 제공됩니다. 이 데이터 형식에 대한 설명은 GDI 데이터 형식을 참조하세요.

EngPlgBlt 은 A, B 및 C collinear로 호출되지 않습니다.

prcl

원본 표면의 좌표계에서 복사할 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. 원본 사각형의 점이 잘 정렬됩니다. EngPlgBlt 에는 빈 원본 사각형이 제공되지 않습니다.

pptl

지정된 마스크의 픽셀이 원본 사각형의 왼쪽 위 픽셀에 해당하는 픽셀을 지정하는 POINTL 구조체에 대한 포인터입니다. psoMsk가NULL인 경우 이 매개 변수를 무시합니다.

[in] iMode

원본 픽셀을 결합하여 출력 픽셀을 가져오는 방법을 정의합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
BLACKONWHITE 축소된 비트 블록 전송에서 픽셀은 AND 연산과 결합되어야 합니다. 확장 비트 블록 전송 픽셀에서 복제해야 합니다.
COLORONCOLOR 축소된 비트 블록 전송에서는 픽셀을 결합할 필요가 없도록 충분한 픽셀을 무시해야 합니다. 확장 비트 블록 전송에서 픽셀을 복제해야 합니다.
하프톤 드라이버는 출력 화면에서 픽셀 그룹을 사용하여 입력의 색 또는 회색 수준을 가장 잘 근사화할 수 있습니다.
WHITEONBLACK 축소 비트 블록 전송에서 픽셀은 OR 연산과 결합되어야 합니다. 확장 블록 전송에서 픽셀을 복제해야 합니다.
 

WHITEONBLACK, BLACKONWHITE 및 COLORONCOLOR 메서드는 간단하고 이전 애플리케이션에 대한 호환성을 제공하지만 색 표면에 가장 적합한 결과를 생성하지는 않습니다.

반환 값

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

설명

EngPlgBlt 은 특정 유형의 회전만 수행합니다.

이 함수는 prcl 로 정의된 사각형에서 모든 병렬로 비트 블록 전송을 수행합니다. parallelogram은 3개의 점 배열을 가리키는 pptfx로 정의됩니다.

prcl의 원본 사각형은 지정된 정수 좌표에서 모서리가 (-0.5,-0.5)로 변위되는 기하학적 사각형으로 간주됩니다. 이는 EngStretchBlt의 원본 사각형과 정확히 일치합니다. 원본 사각형은 항상 잘 정렬됩니다.

원본 사각형의 왼쪽 위 모서리가 첫 번째 점인 A에 매핑됩니다. 원본 사각형의 오른쪽 위 모서리는 두 번째 점 B에 매핑됩니다. 원본 사각형의 왼쪽 아래 모서리는 세 번째 점인 C에 매핑됩니다. 원본 사각형의 오른쪽 아래 모서리는 지정된 세 점을 벡터 및 컴퓨팅으로 처리하여 정의된 병렬 프로그래밍의 암시적 지점에 매핑됩니다.

D = B + C - A

스트레치 블릿은 정확히 병렬 이동 블릿으로 표현할 수 있지만 대상에 지정된 좌표는 5로 나눌 수 있습니다.

요구 사항

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

추가 정보

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt