다음을 통해 공유


DXGK_GDIARG_BITBLT 구조체(d3dkmddi.h)

DXGK_GDIARG_BITBLT 구조는 스트레칭 없이 GDI 하드웨어 가속 비트 블록 전송(비트블릿) 특성을 설명합니다.

통사론

typedef struct _DXGK_GDIARG_BITBLT {
  [in] RECT SrcRect;
  [in] RECT DstRect;
       UINT SrcAllocationIndex;
       UINT DstAllocationIndex;
       UINT NumSubRects;
       RECT *pSubRects;
       WORD Rop;
       WORD Rop3;
       UINT SrcPitch;
       UINT DstPitch;
} DXGK_GDIARG_BITBLT;

회원

[in] SrcRect

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

원본 사각형은 원본 표면의 범위를 초과할 수 있습니다.

이 사각형은 DstRect정의된 대상 사각형에 매핑됩니다. SrcRect 원본 공간에서 대상 공간으로 하위 사각형을 변환하는 데 사용됩니다.

자세한 내용은 설명 섹션을 참조하세요.

[in] DstRect

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

DstRect 정의된 대상 사각형은 대상 표면의 범위를 초과할 수 있지만 하위 사각형은 사용할 수 없습니다. 또한 모든 하위 사각형은 대상 표면 내부에 맞도록 보장됩니다. 하위 사각형은 대상 사각형보다 작은 경계 사각형에 의해 추가로 제한될 수 있습니다.

자세한 내용은 설명 섹션을 참조하세요.

SrcAllocationIndex

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

DstAllocationIndex

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

NumSubRects

[in] DstRect 대상 사각형으로 경계가 지정된 대상 표면 공간의 하위 사각형 수입니다.

pSubRects

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

Rop

[in] DXGK_GDIROP_BITBLT 열거형의 상수 값으로 정의된 GDI 래스터 연산(ROP)을 지정하는 8비트 값입니다.

Rop3

[in] 256개의 가능한 조합 중 하나로 브러시, 소스 비트맵 및 대상 비트맵을 결합하는 ROP3(3차원 GDI 래스터 연산)을 지정하는 8비트 값입니다. 이 유형의 래스터 작업은 드라이버가 DXGK_PRESENTATIONCAPS 구조에서 SupportAllBltRops 멤버를 설정한 경우에만 처리됩니다.

SrcPitch

[in] 소스 표면의 피치(바이트)입니다. 피치 사용에 대한 자세한 내용은 설명 섹션을 참조하세요.

DstPitch

[in] 대상 표면의 피치(바이트)입니다. 피치 사용에 대한 자세한 내용은 설명 섹션을 참조하세요.

발언

SrcPitchDstPitch 피치 값은 SrcRectDstRect 직사각형의 바이트 위치를 결정하는 데 각각 다음과 같은 형식 D3DKMDT_GDISURFACETYPE할당하는 데 사용해야 합니다.

D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE

D3DKMDT_GDISURFACE_EXISTINGSYSMEM

다른 할당 유형에 대해서는 피치를 무시해야 합니다.

피치는 DXGK_PRESENTATIONCAPS 구조체(즉, DXGK_DRIVERCAPS)의 AlignmentShift 멤버에 따라 비트 블록 전송에 맞춰지도록 보장됩니다. PresentationCaps.AlignmentShift).

사각형이 좌표(왼쪽, 위쪽) 및 (오른쪽, 아래쪽)에서 두 픽셀로 정의되는 경우 첫 번째 픽셀의 주소는 다음과 같습니다.

Allocation.BaseAddress + (top * Pitch) + (left * 4)

사각형의 마지막 픽셀 주소는 다음과 같습니다.

Allocation.BaseAddress + ((bottom - 1) * Pitch) + ((right - 1) * 4)

하위 사각형을 원본 표면 공간으로 변환하면 결과가 원본 표면 내에 있도록 보장됩니다. 이 변환은 다음 수식으로 정의됩니다.

<SrcSubRect.left = SubRect.left - DstRect.left + SrcRect.left;
SrcSubRect.right = SubRect.right - DstRect.left + SrcRect.left;
SrcSubRect.top = SubRect.top - DstRect.top + SrcRect.top;
SrcSubRect.bottom = SubRect.bottom - DstRect.top + SrcRect.top;

요구 사항

요구
지원되는 최소 클라이언트 Windows 7
헤더 d3dkmddi.h(D3dkmddi.h 포함)

참고 항목

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DXGK_GDIROP_BITBLT

DXGK_PRESENTATIONCAPS

RECT