다음을 통해 공유


DrvTransparentBlt 함수(winddi.h)

DrvTransparentBlt 함수는 투명도를 갖춘 비트 블록 전송 기능을 제공합니다.

구문

BOOL DrvTransparentBlt(
  [in, out]      SURFOBJ  *psoDst,
  [in]           SURFOBJ  *psoSrc,
  [in]           CLIPOBJ  *pco,
  [in, optional] XLATEOBJ *pxlo,
  [in]           RECTL    *prclDst,
  [in]           RECTL    *prclSrc,
  [in]           ULONG    iTransColor,
  [in]           ULONG    ulReserved
);

매개 변수

[in, out] psoDst

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

[in] psoSrc

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

[in] pco

CLIPOBJ 구조체에 대한 포인터입니다. 클립 영역을 사각형 집합으로 열거하기 위해 CLIPOBJ_Xxx 서비스 루틴이 제공됩니다. 이 열거형은 수정된 대상의 영역을 제한합니다. 가능하면 GDI는 관련된 클리핑을 간소화합니다.

[in, optional] pxlo

대상 표면에 쓰기 위해 원본 색 인덱스를 변환하는 방법을 알려주는 XLATEOBJ 구조체에 대한 포인터입니다. pxloNULL인 경우 변환이 필요하지 않습니다.

[in] prclDst

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

DrvTransparentBlt 는 빈 대상 사각형으로 호출되지 않습니다.

[in] prclSrc

복사할 사각형 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. 이 사각형은 원본 표면의 좌표계에 지정되며 왼쪽 위와 오른쪽 아래의 두 점으로 정의됩니다. 사각형을 정의하는 두 점은 항상 순서가 잘 정렬됩니다.

원본 사각형은 원본 표면의 범위를 초과하지 않으므로 원본 표면을 오버행하지 않습니다.

이 사각형은 prclDst로 정의된 대상 사각형에 매핑됩니다. DrvTransparentBlt 는 빈 원본 사각형으로 호출되지 않습니다.

[in] iTransColor

원본 표면 형식의 실제 투명 색을 지정합니다. 색상표가 있는 디바이스의 경우 이 값은 색상표 인덱스입니다. 색상표가 없는 디바이스의 경우 이 값은 원본 화면에서 사용되는 형식의 RGB 색입니다. 예를 들어 원본 표면 형식이 5:6:5 RGB 형식인 경우 이 매개 변수의 값도 동일한 형식입니다.

[in] ulReserved

예약; 이 매개 변수는 0으로 설정해야 합니다.

반환 값

DrvTransparentBlt는 성공하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

설명

필요에 따라 그래픽 드라이버에서 DrvTransparentBlt 함수를 구현할 수 있습니다.

투명도가 있는 비트 블록 전송은 두 디바이스 관리 표면 간 또는 디바이스 관리 표면과 GDI 관리 표준 형식 비트맵 간에 지원됩니다. 드라이버 작성기는 비디오 메모리의 화면 외 디바이스 비트맵에서 비디오 메모리의 다른 표면으로 Blting하는 경우를 지원하는 것이 좋습니다. 다른 모든 경우는 성능 저하가 거의 없는 EngTransparentBlt 에 적용할 수 있습니다. 드라이버는 디바이스 관리 표면과 관련된 호출을 EngTransparentBlt로 펀트할 수 있습니다.

iTransColor로 지정된 투명한 색과 일치하는 원본 표면의 픽셀은 복사되지 않습니다. 투명한 Blt에 대한 자세한 설명은 비트맵 복사를 참조하세요.

드라이버는 동일한 표면에서 겹치는 원본 및 대상 사각형으로 호출되지 않습니다.

드라이버는 비트맵 형식이 5:5:5(각각 빨강, 녹색 및 파랑 5비트)일 때 가장 중요한 비트와 같이 색 키 비교에서 사용되지 않는 비트를 무시해야 합니다.

드라이버는 EngAssociateSurface를 호출할 때 HOOK_TRANSPARENTBLT 플래그를 설정하여 DrvTransparentBlt를 후크합니다. 드라이버가 DrvTransparentBlt 를 후크하고 지원하지 않는 작업을 수행하기 위해 호출된 경우 드라이버는 EngTransparentBlt 호출에서 데이터를 전달하여 GDI가 작업을 처리하도록 해야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 winddi.h(Winddi.h 포함)

추가 정보

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

EngAssociateSurface

EngBitBlt

EngPlgBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt