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 구조체에 대한 포인터입니다. pxlo가 NULL인 경우 변환이 필요하지 않습니다.
[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 포함) |