PFND3D10DDI_SETVIEWPORTS 콜백 함수(d3d10umddi.h)
SetViewports 함수는 뷰포트를 설정합니다.
구문
PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;
void Pfnd3d10ddiSetviewports(
D3D10DDI_HDEVICE unnamedParam1,
[in] UINT NumViewports,
[in] UINT ClearViewports,
const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}
매개 변수
unnamedParam1
hDevice [in]
디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.
[in] NumViewports
pViewports 매개 변수가 지정하는 총 뷰포트 수입니다.
[in] ClearViewports
NumViewports가 NULL로 설정하도록 지정하는 뷰포트 수 이후의 뷰포트 수입니다. 이 숫자는 이전 뷰포트 수(즉, 이전에 SetViewports라고 하는 Microsoft Direct3D 런타임)와 새 뷰포트 수 간의 차이를 나타냅니다.
ClearViewports가 지정하는 숫자는 사용자 모드 표시 드라이버가 이 숫자를 계산할 수 있기 때문에 최적화에만 도움이 됩니다.
unnamedParam4
pViewports [in]
설정할 뷰포트에 대한 D3D10_DDI_VIEWPORT 구조체의 배열입니다.
반환 값
없음
설명
드라이버는 pfnSetErrorCb 콜백 함수를 사용하여 오류 코드를 설정할 수 있습니다.
뷰포트는 출력 렌더링 대상 및 깊이 스텐실 리소스에 대한 변환 후 클립을 지정합니다. SetViewports 호출에 정의되지 않은 뷰포트는 NULL로 설정됩니다. NULL 뷰포트는 다음과 같이 정의됩니다.
struct D3D10_DDI_VIEWPORT {
FLOAT TopLeftX = NaN;
FLOAT TopLeftY = NaN;
FLOAT Width = NaN;
FLOAT Height = NaN;
FLOAT MinDepth = NaN;
FLOAT MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>
이 정의는 뷰포트가 꺼져 있음을 의미합니다.
사용자 모드 표시 드라이버는 모든 뷰포트를 원자성으로 하나의 작업으로 설정해야 합니다.
NumViewports 매개 변수는 pViewports 매개 변수가 지정하는 배열의 뷰포트 수를 지정하지만 배열의 일부 값은 NULL일 수 있습니다.
NumViewports가 지정하는 수와 허용되는 최대 뷰포트 수 사이의 뷰포트 범위는 모든 NULL 또는 언바운드 값을 포함하는 데 필요합니다. ClearViewports 매개 변수가 지정하는 숫자는 드라이버가 현재 원자성 작업을 위해 지워야 하는 뷰포트 수에 대해 드라이버에 알릴 수 있습니다.
SetViewports에 대한 이전 호출이 NumViewports 매개 변수에서 2 값을 전달하고 SetViewports에 대한 현재 호출이 NumViewports에서 4 값을 전달하는 경우 SetViewports에 대한 현재 호출도 ClearViewports 매개 변수에서 0 값을 전달합니다. SetViewports에 대한 다음 연속 호출이 NumViewports에서 1의 값을 전달하는 경우 연속 호출은 ClearViewports에서 3(4 - 1) 값을 전달합니다.
사용자 모드 쿼리 작업 중에 명확한 뷰포트 값을 요청하는 경우 값은 뷰포트의 최대 수와 뷰포트 값 간의 차이입니다.
SetViewports는 뷰포트가 유효한지 확인합니다. 즉, SetViewports 는 뷰포트의 차원이 범위 내에 있는지 확인합니다(D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH 및 D3D10_MAX_DEPTH). 또한 SetViewports는 좌표가 NaN이 아니고 비정규화된 float 값을 0으로 플러시합니다.
드라이버는 D3DDDIERR_DEVICEREMOVED 제외하고 오류가 발생하지 않아야 합니다. 따라서 드라이버가 pfnSetErrorCb 함수를 호출할 때 D3DDDIERR_DEVICEREMOVED 제외하면 Microsoft Direct3D 런타임에서 오류가 중요한지 확인합니다. 디바이스가 제거된 경우에도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 SetViewports (일반적으로 발생하지 않아야 하는) 작업을 방해하는 경우 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | d3d10umddi.h(D3d10umddi.h 포함) |