DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3D9 CheckDeviceMultiSampleType [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
이 장치로 멀티 샘플링 테크닉을 이용할 수 있을지 어떨지를 조사한다.
구문
HRESULT CheckDeviceMultiSampleType(
UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels );
파라미터
- Adapter
- [in] 문의 대상의 디스플레이 어댑터를 나타내는 서수. D3DADAPTER_DEFAULT 는 항상 1차 디스플레이 어댑터이다. 이 값이 시스템의 디스플레이 어댑터의 수이상의 경우, 이 메서드는 FALSE 를 돌려준다. 「주의」를 참조할것.
- DeviceType
- [in] D3DDEVTYPE 열거형의 멤버. 장치 타입을 식별한다.
- SurfaceFormat
- [in] D3DFORMAT 열거형의 멤버. 멀티 샘플링 하는 표면의 포맷을 지정한다. 상세 정보에 대해서는, 「주의」를 참조할것.
- Windowed
- [in] BOOL 값. 윈도우 멀티 샘플링에 대해 문의할 때는 TRUE 를 지정해, 풀 스크린 멀티 샘플링에 대해 문의할 때는 FALSE 를 지정한다.
- MultiSampleType
- [in] D3DMULTISAMPLE_TYPE 열거형의 멤버. 테스트하는 멀티 샘플링 테크닉을 식별한다.
- pQualityLevels
- [out] 소정의 멀티 샘플링 타입으로 이용 가능한 품질 레벨의 수. 값을 돌려줄 필요가 없는 경우는, NULL 이라도 좋다.
반환값
장치가 지정된 멀티 샘플링 방식을 실행할 수 있는 경우, 이 메서드는 D3D_OK 를 돌려준다.
Adapter 또는 MultiSampleType 파라미터가 무효인 경우는,D3DERR_INVALIDCALL 를 돌려준다. 문의한 멀티 샘플링 테크닉을 이 장치가 지원 하고 있지 않는 경우는,D3DERR_NOTAVAILABLE 를 돌려준다. DeviceType 가 이 어댑터에 해당하지 않는 경우는,D3DERR_INVALIDDEVICE 를 돌려준다.
주의
이 메서드는, 렌더링 타겟과 스텐실 표면의 양쪽 모두로 사용한다. 이 2개를 함께 사용하는 경우는, 멀티 샘플링 된 양쪽 모두의 표면을 생성 할 필요가 있다.
다음 샘플 코드는,IDirect3D9::CheckDeviceMultiSampleType 를 사용해, 장치가 특정의 멀티 샘플링 방식을 지원 하고 있는 것을 테스트하는 방법을 나타내고 있다.
if( SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, pCaps->DeviceType, BackBufferFormat, FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) && SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, pCaps->DeviceType, DepthBufferFormat, FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) ) return S_OK;위에의 코드에서는, 장치가 그 표면 포맷으로 풀 스크린 D3DMULTISAMPLE_3_SAMPLES 멀티 샘플링 방식을 지원 하고 있는 경우, S_OK 를 돌려준다.