IDirect3D9::CheckDepthStencilMatch 메서드(d3d9helper.h)
깊이 스텐실 형식이 특정 표시 모드의 렌더링 대상 형식과 호환되는지 여부를 결정합니다.
구문
HRESULT CheckDepthStencilMatch(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] D3DFORMAT RenderTargetFormat,
[in] D3DFORMAT DepthStencilFormat
);
매개 변수
[in] Adapter
형식: UINT
쿼리할 디스플레이 어댑터를 나타내는 서수입니다. D3DADAPTER_DEFAULT 항상 기본 디스플레이 어댑터입니다.
[in] DeviceType
형식: D3DDEVTYPE
디바이스 유형을 식별하는 D3DDEVTYPE 열거형 형식의 멤버입니다.
[in] AdapterFormat
형식: D3DFORMAT
어댑터가 배치될 디스플레이 모드의 형식을 식별하는 D3DFORMAT 열거형 형식의 멤버입니다.
[in] RenderTargetFormat
형식: D3DFORMAT
테스트할 렌더링 대상 표면의 형식을 식별하는 D3DFORMAT 열거형 형식의 멤버입니다.
[in] DepthStencilFormat
형식: D3DFORMAT
테스트할 깊이 스텐실 표면의 형식을 식별하는 D3DFORMAT 열거형 형식의 멤버입니다.
반환 값
형식: HRESULT
깊이 스텐실 형식이 표시 모드의 렌더링 대상 형식과 호환되는 경우 이 메서드는 D3D_OK 반환합니다. 하나 이상의 매개 변수가 잘못된 경우 D3DERR_INVALIDCALL 반환할 수 있습니다. 깊이 스텐실 형식이 표시 모드의 렌더링 대상과 호환되지 않는 경우 이 메서드는 D3DERR_NOTAVAILABLE 반환합니다.
설명
이 메서드는 특정 깊이 형식이 특정 렌더링 대상 형식에서만 작동할 수 있도록 애플리케이션이 하드웨어에서 작동할 수 있도록 하기 위해 제공됩니다.
이 메서드의 동작이 DirectX 8.1에 대해 변경되었습니다. 이제 이 메서드는 D24x8 및 D32 깊이 스텐실 형식에 주의를 기울입니다. 이전 버전에서는 이러한 형식을 항상 32비트 또는 16비트 렌더링 대상에서 사용할 수 있다고 가정했습니다. 이제 이 메서드는 디바이스가 혼합 깊이 작업을 수행할 수 있는 경우에만 이러한 형식에 대한 D3D_OK 반환합니다.
다음 코드 조각에서는 CheckDeviceFormat을 사용하여 깊이 스텐실 형식의 유효성을 검사하는 방법을 보여줍니다.
BOOL IsDepthFormatOk(D3DFORMAT DepthFormat,
D3DFORMAT AdapterFormat,
D3DFORMAT BackBufferFormat)
{
// Verify that the depth format exists
HRESULT hr = pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
D3DUSAGE_DEPTHSTENCIL,
D3DRTYPE_SURFACE,
DepthFormat);
if(FAILED(hr)) return FALSE;
// Verify that the depth format is compatible
hr = pD3D->CheckDepthStencilMatch(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
BackBufferFormat,
DepthFormat);
return SUCCEEDED(hr);
}
DepthFormat을 AdapterFormat 및 BackBufferFormat과 함께 사용할 수 없는 경우 이전 호출은 FALSE 를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d9helper.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |