PFND3D11_1DDI_CLEARVIEW 콜백 함수(d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW 리소스 뷰의 모든 요소를 하나의 값으로 설정합니다. 리소스 뷰는 리소스의 형식 및 하위 집합을 나타내는 표면 설명자입니다.

구문

PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;

void Pfnd3d111DdiClearview(
  D3D10DDI_HDEVICE hDevice,
  D3D11DDI_HANDLETYPE viewType,
  VOID *hView,
  const FLOAT Color[4],
  const D3D10_DDI_RECT *pRect,
  UINT NumRects
)
{...}

매개 변수

hDevice

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

viewType

이 명확한 작업을 지원하는 뷰 핸들 형식을 식별하는 형식 D3D11DDI_HANDLETYPE 값입니다. 가능한 형식은 다음과 같습니다.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • 모든 D3D11_1DDI_HT_VIDEOXXX 유형

hView

지울 리소스 뷰에 대한 포인터입니다.

Color[4]

pRect

지울 리소스 뷰의 사각형에 대한 RECT 구조체의 배열입니다. NULL이면 ClearView 가 전체 표면을 지웁니다.

NumRects

pRect 매개 변수가 지정하는 배열의 사각형 수입니다.

반환 값

없음

설명

ClearView 는 RTV(렌더링 대상 보기), UAV(순서가 지정되지 않은 액세스 보기) 또는 Texture2D 표면의 비디오 보기에서만 작동합니다. pRect 배열의 빈 사각형은 no-op입니다. 위쪽 값이 아래쪽 값과 같거나 왼쪽 값이 오른쪽 값과 같으면 사각형이 비어 있습니다.

ClearView 는 3D 텍스처를 지원하지 않습니다.

ClearView 는 보기의 모든 배열 조각에 동일한 색 값을 적용합니다. pRect 배열의 모든 사각형은 각 배열 조각에 해당합니다. 사각형의 pRect 배열은 단일 표면에서 지울 영역 집합입니다. 보기가 배열인 경우 ClearView 는 각 배열 조각의 모든 사각형을 개별적으로 지웁니다.

사용자 모드 드라이버가 버퍼에 사각형을 적용하는 경우 맨 위 값을 0으로 설정하고 아래쪽 값을 1로 설정하고 왼쪽 값과 오른쪽 값을 설정하여 버퍼 내의 범위를 설명해야 합니다. 위쪽 값이 아래쪽 값과 같거나 왼쪽 값이 오른쪽 값과 같으면 사각형이 비어 있고 no-op이 달성됩니다.

드라이버는 Direct3D 변환 규칙에 따라 색상 값을 대상 형식으로 변환하고 고정해야 합니다. 예를 들어 보기 형식이 DXGI_FORMAT_R8G8B8A8_UNORM 경우 입력을 0.0f에서 1.0f(+INF -> 1.0f(0XFF)/NaN -> 0.0f)로 고정합니다.

형식이 정수( 예: DXGI_FORMAT_R8G8B8A8_UINT)인 경우 입력을 정수 부동 소수점수로 사용합니다. 따라서 235.0f는 235에 매핑됩니다(범위/INF 값이 대상 범위로 고정되고 NaN이 0으로 반올림됨).

다음은 색 매핑입니다.

  • Color[0]: R(또는 비디오의 경우 Y)
  • Color[1]: G(또는 비디오의 경우 U/Cb)
  • Color[2]: B(또는 비디오의 경우 V/Cr)
  • Color[3]: A

YUV 또는 YCbBr 형식의 비디오 보기의 경우 ClearView 는 색 값을 변환하지 않습니다. 서식 이름이 _UNORM, _UINT 등을 나타내지 않는 경우 ClearView 는 _UINT 가정합니다. 따라서 235.0f는 235에 매핑됩니다(범위/INF 값이 대상 범위로 고정되고 NaN이 0으로 반올림됨).

하위 샘플링된 RTV 또는 UAV 비디오 화면의 Microsoft Direct3D 보기의 경우 보기의 크기는 비디오 픽셀의 기본 논리적 수가 아닌 보기 형식의 픽셀 수를 기반으로 합니다. 예를 들어 표면의 크기가 1920 x 1080픽셀인 YUY2 형식이 있고 RTV가 DXGI_FORMAT_R8G8B8A8_UINT 형식을 사용한다고 가정해 보겠습니다. 보기는 Direct3D에 가로 방향으로 1920/2 = 960 R8G8B8A8 픽셀이 있는 것으로 나타납니다. 따라서 ClearView 로 전달된 사각형은 이 공간에서 해석됩니다. 또한 실제 R8G8B8A8 표면과 다르지 않은 것처럼 R8G8B8A8 모든 4개 구성 요소에 대해 명확한 값을 가져옵니다. 이 경우 R, G, B 및 A는 표준 RGBA 색 값을 의미하지 않습니다. 대신 메모리의 위치를 식별하고 호출자는 비디오 화면의 컨텍스트에서 해당 위치에 데이터를 배치하는 것이 무엇을 의미하는지 이해해야 합니다.

그러나 비디오 화면의 비디오 보기(예: CreateVideoDecoderOutputView 함수 및 기타 XxxInputViewXxxOutputView 함수에 제공된 보기)는 전체 논리적 차원에 표시됩니다. 이 경우 가로 차원은 너비가 1920픽셀이므로 ClearView에 전달된 RECT 구조체는 이를 적용합니다. 이러한 RECT는 하위 샘플링된 블록을 가로지르지 않도록 정렬해야 합니다. 그렇지 않으면 런타임이 이 함수에 대한 호출을 삭제합니다. 비디오 보기의 경우 하위 샘플링된 형식에 대해 YUV 색을 적절하게 복제해야 합니다. 예를 들어 ClearView 호출의 YUV에는 YUY2 표면의 각 블록에 대해 중복된 Y 값이 있습니다.

D3D10_DDI_RECT 구조체는 RECT 구조체로 정의됩니다.

typedef RECT D3D10_DDI_RECT;

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 데스크톱
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT