IDirect3D9::CheckDepthStencilMatch 메서드(d3d9.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
헤더 d3d9.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3D9