다음을 통해 공유


DXGK_GDIARG_STRETCHBLT 구조체(d3dkmddi.h)

DXGK_GDIARG_STRETCHBLT 구조체는 GDI 하드웨어 가속 스트레치 비트 블록 전송(비트블릿) 작업의 특징을 설명합니다.

구문

typedef struct _DXGK_GDIARG_STRETCHBLT {
  [in] RECT  SrcRect;
  [in] RECT  DstRect;
  [in] UINT  DstAllocationIndex;
  [in] UINT  SrcAllocationIndex;
       UINT  NumSubRects;
  [in] RECT  *pSubRects;
  union {
    struct {
      UINT Mode : 16;
      UINT MirrorX : 1;
      UINT MirrorY : 1;
    };
    [in] UINT Flags;
  };
  [in] UINT  SrcPitch;
} DXGK_GDIARG_STRETCHBLT;

멤버

[in] SrcRect

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

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

이 사각형은 DstRect에서 정의한 대상 사각형에 매핑됩니다.

자세한 내용은 주의 섹션을 참조하세요.

[in] DstRect

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

DstRect에서 정의한 대상 사각형은 대상 표면의 범위를 초과할 수 있지만 하위 사각형은 초과할 수 없습니다. 또한 모든 하위 사각형은 대상 표면 내부에 적합하도록 보장됩니다. 하위 사각형은 대상 사각형보다 작은 경계 사각형으로 더 제한할 수 있습니다.

자세한 내용은 주의 섹션을 참조하세요.

[in] DstAllocationIndex

DstRect 대상 사각형에서 참조하는 할당을 지정하는 할당 목록의 요소 인덱스입니다.

[in] SrcAllocationIndex

SrcRect 원본 사각형에서 참조하는 할당을 지정하는 할당 목록의 요소 인덱스입니다.

NumSubRects

DstRect 대상 사각형으로 제한된 대상 표면 공간의 하위 사각형 수입니다.

[in] pSubRects

DstRect 대상 사각형으로 제한된 대상 표면 공간의 하위 사각형에 대한 포인터입니다.

[in] Mode

Wingdi.h에 정의된 다음 값이 설정되었는지 여부에 따라 원본 픽셀을 결합하여 출력 픽셀을 생성하는 방법을 지정합니다.

의미
BLACKONWHITE 축소 비트 블록 전송에서 픽셀은 부울 AND 연산과 결합되어야 합니다. 늘이는 비트 블록 전송에서 픽셀을 복제해야 합니다.
WHITEONBLACK 축소 비트 블록 전송에서 픽셀은 부울 OR 연산과 결합되어야 합니다. 늘이는 비트 블록 전송에서 픽셀을 복제해야 합니다.

이 유형의 작업은 드라이버가 DXGK_PRESENTATIONCAPS 구조에서 SupportMonoStretchBltModes 멤버를 설정한 경우에만 처리됩니다.

[in] MirrorX

xdirection의 미러 모드에서 스트레치 비트 블록 전송을 수행할지 여부를 지정합니다. 이 유형의 작업은 MirrorX 값이 0이 아니고 드라이버가 DXGK_PRESENTATIONCAPS 구조체에서 SupportMirrorStretchBlt 멤버를 설정한 경우에만 처리됩니다.

[in] MirrorY

스트레치 비트 블록 전송이 y 방향으로 미러 모드에서 수행될지 여부를 지정합니다. 이 유형의 작업은 MirrorY 값이 0이 아니고 드라이버가 DXGK_PRESENTATIONCAPS 구조체에서 SupportMirrorStretchBlt 멤버를 설정한 경우에만 처리됩니다.

[in] Flags

드라이버 코드를 디버그하는 데 사용할 수 있는 선택적 UINT 값입니다.

[in] SrcPitch

원본 표면의 피치(바이트)입니다.

설명

x 및 y 스트레치 비율은 각각 DstRectSrcRect 멤버의 x 및 y 크기의 비율로 계산됩니다.

Wingdi.h에 정의된 HALFTONE 모드 및 STRETCH_HALFTONE 모드는 Mode 멤버에서 설정되지 않습니다. COLORONCOLOR 모드는 DXGK_GDIARG_ALPHABLENDDXGK_GDIARG_TRANSPARENTBLT 구조체에서 설정할 수 있습니다.

하위 사각형이 원본 표면 공간으로 변환되면 결과가 원본 표면 내에 있음을 보장합니다. 대상 표면에서 하위 사각형의 좌표를 원본 표면의 좌표로 변환하는 것은 다음 수식에 의해 정의됩니다.

  • (Xd, Yd)는 하위 사각형 내의 점입니다.
  • (Xs, Ys)는 원본 사각형 내의 지점입니다.
float Ws = SrcRect.right - SrcRect.left;
float Wd = DstRect.right - DstRect.left;
int Xs = round((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left - 0.5)
OR
int Xs = truncate((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left)

float Hs = SrcRect.bottom - SrcRect.top;
float Hd = DstRect.bottom - DstRect.top;
int Ys = round((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top - 0.5)
OR
int Ys = truncate((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top)

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7
머리글 d3dkmddi.h(D3dkmddi.h 포함)

추가 정보

DXGK_GDIARG_ALPHABLEND

DXGK_GDIARG_TRANSPARENTBLT

DXGK_PRESENTATIONCAPS

RECT