Share via


IDirect3D9::CheckDeviceType 메서드(d3d9.h)

이 어댑터에서 하드웨어 가속 디바이스 유형을 사용할 수 있는지 여부를 확인합니다.

구문

HRESULT CheckDeviceType(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DevType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  BackBufferFormat,
  [in] BOOL       bWindowed
);

매개 변수

[in] Adapter

형식: UINT

열거할 디스플레이 어댑터를 나타내는 서수입니다. D3DADAPTER_DEFAULT 항상 기본 디스플레이 어댑터입니다. 이 메서드는 이 값이 시스템의 디스플레이 어댑터 수와 같거나 초과할 때 D3DERR_INVALIDCALL 반환합니다.

[in] DevType

형식: D3DDEVTYPE

검사 디바이스 유형을 나타내는 D3DDEVTYPE 열거형 형식의 멤버입니다.

[in] AdapterFormat

형식: D3DFORMAT

디바이스 유형을 확인할 어댑터 디스플레이 모드의 형식을 나타내는 D3DFORMAT 열거형 형식의 멤버입니다. 예를 들어 일부 디바이스는 픽셀당 16비트 모드에서만 작동합니다.

[in] BackBufferFormat

형식: D3DFORMAT

백 버퍼 형식입니다. 형식에 대한 자세한 내용은 D3DFORMAT를 참조하세요. 이 값은 렌더링 대상 형식 중 하나여야 합니다. GetAdapterDisplayMode를 사용하여 현재 형식을 가져올 수 있습니다.

창이 있는 애플리케이션의 경우 하드웨어에서 색 변환을 지원하는 경우 백 버퍼 형식이 디스플레이 모드 형식과 일치할 필요가 없습니다. 가능한 백 버퍼 형식 집합은 제한되지만 런타임에서는 유효한 백 버퍼 형식을 데스크톱 형식으로 표시할 수 있습니다. 디바이스는 일반적으로 픽셀 모드당 8비트에서 작동하지 않으므로 데스크톱에서 디바이스를 작동할 수 있어야 하는 추가 요구 사항이 있습니다.

전체 화면 애플리케이션은 색 변환을 수행할 수 없습니다.

D3DFMT_UNKNOWN 창 모드에 허용됩니다.

[in] bWindowed

형식: BOOL

디바이스 유형을 전체 화면 또는 창 모드로 사용할지 여부를 나타내는 값입니다. TRUE로 설정하면 창이 있는 애플리케이션에 대해 쿼리가 수행됩니다. 그렇지 않으면 이 값을 FALSE로 설정해야 합니다.

반환 값

형식: HRESULT

이 어댑터에서 디바이스를 사용할 수 있는 경우 D3D_OK 반환됩니다.

어댑터가 시스템의 디스플레이 어댑터 수와 같거나 초과하면 D3DERR_INVALIDCALL 반환됩니다. CheckDeviceType이 존재하지 않는 디바이스를 지정한 경우에도 D3DERR_INVALIDCALL 반환됩니다.

요청된 백 버퍼 형식이 지원되지 않거나 지정된 형식에 하드웨어 가속을 사용할 수 없는 경우 D3DERR_NOTAVAILABLE 반환됩니다.

설명

hal 디바이스 유형에는 하드웨어 가속이 필요합니다. 애플리케이션은 CheckDeviceType을 사용하여 hal 디바이스를 지원하는 데 필요한 하드웨어 및 드라이버가 있는지 확인할 수 있습니다.

전체 화면 애플리케이션은 알파 채널이 포함된 DisplayFormat을 지정해서는 안 됩니다. 이로 인해 호출이 실패합니다. 알파 채널은 백 버퍼에 있을 수 있지만 두 디스플레이 형식은 다른 모든 면에서 동일해야 합니다. 예를 들어 DisplayFormat = D3DFMT_X1R5G5B5 경우 BackBufferFormat의 유효한 값에는 D3DFMT_X1R5G5B5 및 D3DFMT_A1R5G5B5 포함되지만 D3DFMT_R5G6B5 제외됩니다.

다음 코드 조각에서는 CheckDeviceType을 사용하여 이 어댑터에서 특정 디바이스 유형을 사용할 수 있는지 여부를 테스트하는 방법을 보여 있습니다.


if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, 
                                        D3DDEVTYPE_HAL, 
                                        DisplayFormat, 
                                        BackBufferFormat, 
                                        bIsWindowed)))
    
     return S_OK;
// There is no HAL on this adapter using this render-target format. 
// Try again, using another format.

이 코드는 지정된 표면 형식의 기본 어댑터에서 디바이스를 사용할 수 있는 경우 S_OK 반환합니다.

CheckDeviceType을 사용하여 표시 형식과 다른 백 버퍼 간의 호환성을 테스트하면 적절한 값이 반환됩니다. 즉, 호출은 디바이스 기능을 반영합니다. 디바이스가 요청된 백 버퍼 형식으로 렌더링할 수 없는 경우 호출은 여전히 D3DERR_NOTAVAILABLE 반환합니다. 디바이스가 형식으로 렌더링할 수 있지만 색 변환 프레젠테이션을 수행할 수 없는 경우 반환 값도 D3DERR_NOTAVAILABLE. 애플리케이션은 CheckDeviceFormatConversion을 호출하여 프레젠테이션 자체에 대한 하드웨어 지원을 검색할 수 있습니다. 색 변환 프레젠테이션 자체에 대한 소프트웨어 에뮬레이션은 제공되지 않습니다.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d9.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3D9