DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3D9 CheckDepthStencilMatch   [목차열람] [주소복사] [슬롯비우기]
IDirect3D9::CheckDepthStencilMatch 메서드
 
Microsoft DirectX 9.0

IDirect3D9::CheckDepthStencilMatch 메서드


스텐실 포맷이, 특정의 디스플레이 모드에서의 렌더링 타겟 포맷과 호환성이 있을지 어떨지를 조사한다.

구문

HRESULT CheckDepthStencilMatch(      

    UINT Adapter,     D3DDEVTYPE DeviceType,     D3DFORMAT AdapterFormat,     D3DFORMAT RenderTargetFormat,     D3DFORMAT DepthStencilFormat );

파라미터

Adapter
[in] 문의 대상의 디스플레이 어댑터를 나타내는 서수. D3DADAPTER_DEFAULT 는 항상 1차 디스플레이 어댑터이다.
DeviceType
[in] D3DDEVTYPE 열거형의 멤버. 장치 타입을 식별한다.
AdapterFormat
[in] D3DFORMAT 열거형의 멤버. 어댑터로 사용되는 디스플레이 모드의 포맷을 식별한다.
RenderTargetFormat
[in] D3DFORMAT 열거형의 멤버. 테스트하는 렌더링 타겟 표면의 포맷을 식별한다.
DepthStencilFormat
[in] D3DFORMAT 열거형의 멤버. 테스트하는 스텐실 표면의 포맷을 식별한다.

반환값

스텐실 포맷이, 디스플레이 모드의 타겟 렌더링 포맷과 호환성이 있는 경우, 이 메서드는 D3D_OK 를 돌려준다.

파라미터의 1 개 또는 복수가 무효인 경우는,D3DERR_INVALIDCALL 를 돌려주는 경우가 있다. 스텐실 포맷이, 디스플레이 모드의 타겟 렌더링 포맷과 호환성이 없는 경우, 이 메서드는 D3DERR_NOTAVAILABLE 를 돌려준다.



주의

이 메서드는, 특정의 깊이 포맷이 특정의 렌더링 타겟 포맷에서만 기능하는 하드웨어 렌더링으로 애플리케이션을 기능할 수 있도록(듯이) 하기 위해서 준비되어 있다.

이 메서드의 동작은, Microsoft® DirectX® 8.1 을 위해서(때문에) 변경되었다. 이 메서드는, D24x8 및 D32 의 스텐실 포맷을 고려하게 되었다. 이전의 버전에서는, 이러한 포맷이 항상 32 비트 또는 16 비트의 렌더링 타겟으로 사용 가능하다라고 상정하고 있었다. 현재는, 장치가 혼합 깊이 조작 능력이 있는 경우에만, 이러한 포맷에 대해서 D3D_OK 를 돌려준다.

다음 샘플 코드는,IDirect3D9::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 );

}

위에의 호출은,DepthFormatAdapterFormatBackBufferFormat 와 조합해 사용할 수 없는 경우, FALSE 를 돌려준다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP