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

IDirect3D9::CheckDeviceType 메서드


어댑터로 하드웨어 가속화 장치 타입이 사용 가능한가 어떤가를 검증한다.

구문

HRESULT CheckDeviceType(      

    UINT Adapter,     D3DDEVTYPE DeviceType,     D3DFORMAT DisplayFormat,     D3DFORMAT BackBufferFormat,     BOOL Windowed );

파라미터

Adapter
[in] 열거하는 디스플레이 어댑터를 나타내는 서수. D3DADAPTER_DEFAULT 는 항상 1차 디스플레이 어댑터이다. 이 값이 시스템의 디스플레이 어댑터의 수이상의 경우, 이 메서드는 D3DERR_INVALIDCALL 를 돌려준다.
DeviceType
[in] D3DDEVTYPE 열거형의 멤버. 체크하는 장치 타입을 나타낸다.
DisplayFormat
[in] D3DFORMAT 열거형의 멤버. 장치 타입을 체크하는 어댑터 디스플레이 모드의 포맷을 나타낸다. 예를 들어, 장치에 따라서는, 픽셀 단위의 16 비트의 모드에서만 동작하는 것도 있다.
BackBufferFormat
[in] 백 버퍼 포맷. 포맷의 더 자세한 정보는, 「D3DFORMAT 」를 참조할것. 이 값은, 렌더링 타겟 포맷의 1 개가 아니면 안된다. 현재의 포맷은,IDirect3DDevice9::GetDisplayMode 를 사용해 취득할 수 있다.

윈도우 애플리케이션에서는, 하드웨어가 색변환을 지원 하고 있는 경우, 백 버퍼 포맷이 디스플레이 모드 포맷과 반드시 일치할 필요는 없다. 사용 가능한 백 버퍼 포맷세트는 제한되고 있지만, 런타임은 임의의 유효한 백 버퍼 포맷을 사용해, 임의의 데스크탑 포맷에 프레젠테이션 할 수 있다. 다만, 장치가 데스크탑 모드로 동작 가능해야 한다고 하는 요건도 있다. 보통, 장치는 픽셀 근처 8 비트의 모드에서는 동작하지 않는다.

풀 스크린 애플리케이션에서는, 색변환을 실행할 수 없다.

D3DFMT_UNKNOWN 는, 윈도우 모드로 사용할 수 있다.

Windowed
[in] 장치 타입이 풀 스크린 모드와 윈도우 모드의 어디에서 사용되는지를 나타내는 값. TRUE 를 설정했을 경우, 윈도우 애플리케이션의 문의가 실행된다. 그 이외의 경우는, 이 값에 FALSE 할 필요가 있다.

반환값

이 어댑터로 장치를 사용할 수 있는 경우는,D3D_OK 를 돌려준다.

Adapter 가 시스템의 디스플레이 어댑터의 수이상의 경우는,D3DERR_INVALIDCALL 를 돌려준다. IDirect3D9::CheckDeviceType 가 존재하지 않는 장치를 지정하고 있었을 경우도,D3DERR_INVALIDCALL 를 돌려준다.

요구한 백 버퍼 포맷이 지원되지 않은지, 지정한 포맷으로 하드웨어 가속화를 사용할 수 없는 경우는,D3DERR_NOTAVAILABLE 를 돌려준다.



주의

장치형 하드웨어 추상 계층 (HAL)에는 하드웨어 가속화가 필요하다. 애플리케이션에서는,CheckDeviceType 를 사용해 HAL 장치의 지원에 필요한 하드웨어 및 드라이버가 있을지 어떨지를 확인할 수 있다.

풀 스크린 애플리케이션에서는, 알파 채널을 포함한 DisplayFormat 를 지정해서는 안된다. 이 경우, 호출은 실패한다. 백 버퍼에 알파 채널이 존재해도 괜찮지만, 2 개의 디스플레이 포맷은 다른 모든 면에서 같지 않으면 안 된다. 예를 들어,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 를 돌려준다.

IDirect3D9::CheckDeviceType 를 사용해, 디스플레이 포맷과 다른 백 버퍼와의 호환성을 테스트 하면, 적절한 값이 반환된다. 즉, 호출은 장치의 능력을 나타낸다. 요구한 백 버퍼 포맷에 장치가 렌더링 할 수 없는 경우에서도, 호출은 D3DERR_NOTAVAILABLE 를 돌려준다. 장치가 그 포맷에 렌더링 할 수 있지만, 색변환을 사용한 프레젠테이션을 실행할 수 없는 경우도, 반환값은 D3DERR_NOTAVAILABLE 가 된다. 애플리케이션에서는,IDirect3D9::CheckDeviceFormatConversion 를 호출해 프레젠테이션 자체의 하드웨어 지원을 검출할 수 있다. 색변환을 사용한 프레젠테이션 자체의 소프트웨어 에뮬레이션은 제공되지 않는다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP