D3DDDI_BLTFLAGS 구조체(d3dumddi.h)

D3DDDI_BLTFLAGS 구조체는 수행할 비트 블록 전송(비트블렛) 형식을 식별합니다.

구문

typedef struct _D3DDDI_BLTFLAGS {
  union {
    struct {
      UINT Point : 1;
      UINT Linear : 1;
      UINT SrcColorKey : 1;
      UINT DstColorKey : 1;
      UINT MirrorLeftRight : 1;
      UINT MirrorUpDown : 1;
      UINT LinearToSrgb : 1;
      UINT Rotate : 1;
      UINT BeginPresentToDwm : 1;
      UINT ContinuePresentToDwm : 1;
      UINT EndPresentToDwm : 1;
#if ...
      UINT Reserved : 21;
      UINT Discard : 1;
      UINT NoOverwrite : 1;
      UINT Tileable : 1;
#else
      UINT Reserved : 18;
#endif
    };
    UINT Value;
  };
} D3DDDI_BLTFLAGS;

멤버

Point

비트 블록 전송에서 지점 필터링을 사용할지 여부를 지정하는 UINT 값입니다. 이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

Linear

비트 블록 전송에서 선형 필터링을 사용할지 여부를 지정하는 UINT 값입니다. 이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

SrcColorKey

ColorKey 멤버의 값을 사용하여 소스 색 키 지정을 수행할지 여부를 지정하는 UINT 값입니다. 즉, 색 키와 일치하는 원본 표면의 모든 픽셀을 대상 화면에 복사하면 안 되며 색 키와 일치하지 않는 모든 원본 픽셀을 복사해야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000004)의 세 번째 비트를 설정하는 것과 같습니다.

DstColorKey

ColorKey 멤버의 값을 사용하여 대상 색 키 지정을 수행할지 여부를 지정하는 UINT 값입니다. 즉, 색 키와 일치하는 대상 표면의 모든 픽셀을 원본 표면의 해당 픽셀로 바꿔야 하며 색 키와 일치하지 않는 모든 대상 픽셀을 대체해서는 안 됩니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000008)의 네 번째 비트를 설정하는 것과 같습니다.

MirrorLeftRight

원본 표면의 내용이 비트블렛의 중심 축을 따라 대상 표면으로 가로로 대칭 이동되는지 여부를 지정하는 UINT 값입니다. 즉, 원본 표면의 왼쪽에 있는 내용이 대상 표면의 오른쪽에 복사되고 그 반대의 경우도 마찬가지입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000010)의 다섯 번째 비트를 설정하는 것과 같습니다.

MirrorUpDown

원본 표면의 내용이 비트블렛의 가운데 축을 따라 대상 표면으로 세로로 대칭 이동되는지 여부를 지정하는 UINT 값입니다. 즉, 원본 표면의 맨 위에 있는 내용이 대상 표면의 맨 아래에 복사되고 그 반대의 경우도 마찬가지입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000020)의 여섯 번째 비트를 설정하는 것과 같습니다.

LinearToSrgb

비트blt 작업 중에 선형 형식 원본을 sRGB 형식으로 변환할지 여부를 지정하는 UINT 값입니다. sRGB 형식이 감마 수정되었습니다. sRGB 형식에 대한 자세한 내용은 sRGB 웹 사이트를 참조하세요.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000040)의 일곱 번째 비트를 설정하는 것과 같습니다.

Rotate

비트blt 작업 중에 원본을 회전할지 여부를 지정하는 UINT 값입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000080)의 여덟 번째 비트를 설정하는 것과 같습니다.

BeginPresentToDwm

Microsoft Direct3D 런타임이 비트blt 작업 중에 DWM 현재 작업을 시작할지 여부를 지정하는 UINT 값입니다. BeginPresentToDwm에 대한 자세한 내용은 비고를 참조하세요.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000100)의 9번째 비트를 설정하는 것과 같습니다.

ContinuePresentToDwm

Direct3D 런타임이 비트blt 작업 중에 DWM 현재 작업을 계속하는지 여부를 지정하는 UINT 값입니다. ContinuePresentToDwm에 대한 자세한 내용은 비고를 참조하세요.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000200)의 10번째 비트를 설정하는 것과 같습니다.

EndPresentToDwm

Direct3D 런타임이 비트blt 작업 중에 DWM 현재 작업을 종료할지 여부를 지정하는 UINT 값입니다. EndPresentToDwm에 대한 자세한 내용은 비고를 참조하세요.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000400)의 11번째 비트를 설정하는 것과 같습니다.

Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 Value 멤버의 나머지 21비트(0xFFFFF800)를 0으로 설정하는 것과 같습니다.

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버를 0으로 설정하는 것은 32비트 Value 멤버의 나머지 18비트(0xFFFFC000)를 0으로 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

Discard

사용자 모드 표시 드라이버가 전체 리소스의 이전 콘텐츠를 삭제할 수 있음을 나타냅니다. 드라이버는 이 기능을 활용하여 성능 및 메모리 사용량을 최적화할 수 있습니다.

이 멤버가 NULL이 아닌 경우 NoOverwriteTileableNULL이어야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버의 12번째 비트(0xFFFFF800)를 0으로 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

NoOverwrite

호출자가 새 데이터로 쓰여지는 표면의 부분이 현재 이전 렌더링 작업에서 참조되거나 액세스되지 않도록 보장한다는 것을 나타냅니다. 드라이버는 이 기능을 활용하여 성능 및 메모리 사용량을 최적화할 수 있습니다.

이 멤버가 NULL이 아닌 경우 무시NULL이어야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버의 13번째 비트(0x00001000)를 0으로 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

Tileable

타일 기반 지연 렌더링의 경우 는 복사 작업이 원본 또는 대상 리소스에서 현재 처리된 타일에서만 작동할 수 있으며 장면을 모든 타일에서 플러시할 필요가 없음을 나타냅니다.

이 멤버가 NULL이 아닌 경우 무시NULL이어야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버의 14번째 비트(0x00002000)를 0으로 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

Value

수행할 비트blt의 형식을 식별하는 32비트 값 하나를 포함할 수 있는 D3DDDI_BLTFLAGS 포함된 공용 구조체의 멤버입니다.

설명

BeginPresentToDwm, ContinuePresentToDwmEndPresentToDwm 비트 필드 플래그는 Direct3D 런타임이 DWM 현재 작업의 일부를 수행하는 시간에 대해 사용자 모드 표시 드라이버에 알릴 수 있습니다. DWM 현재 작업은 여러 단계에서 발생할 수 있으므로 Direct3D 런타임은 이러한 플래그를 사용하여 단계를 비트블렛 시퀀스로 표시합니다. 예를 들면 다음과 같습니다.

  • 현재 연산이 하나의 비트블렛으로 구성된 경우 비트블렛은 다음과 같이 표시됩니다.
    • BeginPresentToDwm = TRUE;
    • ContinuePresentToDwm = FALSE;
    • EndPresentToDwm = TRUE;
  • 현재 연산이 두 비트블릿으로 구성된 경우 비트블릿은 두 개의 순차 비트blt 연산에 표시된 것처럼 표시됩니다.
    1. 첫 번째 비트blt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. 두 번째 비트blt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;
  • 현재 연산이 3개 이상의 비트블릿으로 구성된 경우 비트블릿은 다음 순차 비트blt 작업에 표시된 대로 표시됩니다.
    1. 첫 번째 비트blt:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. 마지막 비트블렛을 포함하지 않는 두 번째 및 연속 비트blt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = TRUE;
      • EndPresentToDwm = FALSE;
    3. 최종 비트blt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDIARG_BLT

플러시