다음을 통해 공유


EngStretchBlt 함수(winddi.h)

EngStretchBlt 함수는 GDI가 확장 비트 블록 전송을 수행하도록 합니다.

구문

ENGAPI BOOL EngStretchBlt(
       SURFOBJ         *psoDest,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMask,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
  [in] COLORADJUSTMENT *pca,
  [in] POINTL          *pptlHTOrg,
  [in] RECTL           *prclDest,
  [in] RECTL           *prclSrc,
       POINTL          *pptlMask,
  [in] ULONG           iMode
);

매개 변수

psoDest

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

psoSrc

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

psoMask

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

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

이 매개 변수가 NULL인 경우 rop4 는 암시적으로 0xCCCC 원본 사각형의 모든 곳에서 원본을 복사해야 합니다.

pco

대상에서 수정할 영역을 제한하는 CLIPOBJ 구조체에 대한 포인터입니다. GDI 서비스는 클립 영역을 사각형 집합으로 열거하기 위해 제공됩니다.

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

pxlo

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

이 XLATEOBJ 구조체를 쿼리하여 모든 원본 인덱스용 RGB 색을 찾을 수도 있습니다. 고품질 스트레칭 비트 블록 전송은 경우에 따라 색을 보간해야 합니다.

[in] pca

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

[in] pptlHTOrg

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

[in] prclDest

대상 표면의 좌표계에서 수정할 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. 이 사각형은 잘 정렬되지 않은 두 점으로 정의됩니다. 즉, 두 번째 점의 좌표가 반드시 첫 번째 점의 좌표보다 크지는 않습니다. 설명된 사각형에는 아래쪽 및 오른쪽 가장자리가 포함되지 않습니다. 이 함수는 빈 대상 사각형으로 호출되지 않습니다.

대상 사각형이 잘 정렬되지 않으면 EngStretchBlt 에서 순서를 잘 지정합니다.

[in] prclSrc

원본 표면의 좌표계에서 복사할 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. 사각형은 prclDest로 정의된 사각형에 매핑됩니다. 이 함수에는 빈 원본 사각형이 제공되지 않으며 원본 사각형의 지점은 항상 순서가 잘 정렬됩니다.

매핑은 prclSrcprclDest로 정의됩니다. prclDestprclSrc에 지정된 점은 픽셀 중앙에 해당하는 정수 좌표에 있습니다. 이러한 두 점으로 정의된 사각형은 좌표가 지정된 점이지만 각 좌표에서 0.5를 빼는 두 개의 꼭짓점이 있는 기하학적 사각형으로 간주됩니다. POINTL 구조는 이러한 소수 좌표 꼭짓점을 지정하기 위한 약식 표기법입니다.

사각형의 가장자리는 픽셀과 교차하지 않고 픽셀 집합을 돌아다닐 수 있습니다. 사각형 내에 있는 픽셀은 오른쪽 아래 전용 사각형에 필요한 픽셀입니다. EngStretchBlt 은 기하학적 원본 사각형을 기하학적 대상 사각형에 정확히 매핑합니다.

pptlMask

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

[in] iMode

원본 픽셀을 결합하여 출력 픽셀을 가져오는 방법을 지정합니다. HALFTONE 모드는 다른 모드보다 느리지만 더 높은 품질의 이미지를 생성합니다.

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

반환 값

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

설명

이 함수를 사용하면 GDI 비트맵 및 디바이스 화면에 동일한 하프톤 알고리즘을 적용할 수 있습니다.

드라이버가 DrvStretchBlt 를 후크하고 드라이버가 지원하지 않는 작업을 수행하도록 호출된 경우 EngStretchBlt 를 호출해야 합니다.

요구 사항

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

추가 정보

CLIPOBJ

DrvBitBlt

DrvStretchBlt

SURFOBJ

XLATEOBJ