IDirect3D9::CheckDeviceFormat 메서드(d3d9.h)
표면 형식을 지정된 리소스 유형으로 사용할 수 있고 이 어댑터를 나타내는 디바이스에서 텍스처, 깊이 스텐실 버퍼 또는 렌더링 대상 또는 세 가지 조합으로 사용할 수 있는지 여부를 결정합니다.
구문
HRESULT CheckDeviceFormat(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] DWORD Usage,
[in] D3DRESOURCETYPE RType,
[in] D3DFORMAT CheckFormat
);
매개 변수
[in] Adapter
형식: UINT
쿼리할 디스플레이 어댑터를 나타내는 서수입니다. D3DADAPTER_DEFAULT 항상 기본 디스플레이 어댑터입니다. 이 메서드는 이 값이 시스템의 디스플레이 어댑터 수와 같거나 초과할 때 D3DERR_INVALIDCALL 반환합니다.
[in] DeviceType
형식: D3DDEVTYPE
디바이스 유형을 식별하는 D3DDEVTYPE 열거형 형식의 멤버입니다.
[in] AdapterFormat
형식: D3DFORMAT
어댑터가 배치될 디스플레이 모드의 형식을 식별하는 D3DFORMAT 열거형 형식의 멤버입니다.
[in] Usage
형식: DWORD
Surface에 대해 요청된 사용 옵션입니다. 사용 옵션은 D3DUSAGE 및 D3DUSAGE_QUERY 상수의 조합입니다(D3DUSAGE 상수의 하위 집합만 CheckDeviceFormat에 유효합니다. D3DUSAGE 페이지의 표 참조).
[in] RType
형식: D3DRESOURCETYPE
쿼리된 형식으로 사용하기 위해 요청된 리소스 유형입니다. D3DRESOURCETYPE 멤버입니다.
[in] CheckFormat
형식: D3DFORMAT
사용량에 정의된 대로 사용할 수 있는 표면의 형식입니다. D3DFORMAT 멤버입니다.
반환 값
형식: HRESULT
형식이 요청된 사용에 대해 지정된 디바이스와 호환되는 경우 이 메서드는 D3D_OK 반환합니다.
어댑터가 시스템의 디스플레이 어댑터 수와 같거나 초과하거나 DeviceType이 지원되지 않는 경우 D3DERR_INVALIDCALL 반환됩니다.
이 사용에 대해 디바이스에서 형식을 사용할 수 없는 경우 D3DERR_NOTAVAILABLE 반환됩니다.
설명
다음은 CheckDeviceFormat을 사용하여 하드웨어 지원을 위해 검사 몇 가지 예입니다.
- 오프 스크린 일반 표면 형식 - 사용량 = 0 및 RType = D3DRTYPE_SURFACE 지정합니다.
- 깊이 스텐실 형식 - 깊이 스텐실 형식으로 전달된 에 대한 다음 코드 조각 테스트입니다.
BOOL IsDepthFormatExisting( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat); return SUCCEEDED( hr ); }
열거형 프로세스에 대한 자세한 내용은 디바이스 선택(Direct3D 9) 을 참조하세요.
- 이 텍스처를 특정 형식으로 렌더링할 수 있나요 - 현재 표시 모드를 고려할 때 이 예제에서는 텍스처 형식이 특정 백 버퍼 형식과 호환되는지 확인하는 방법을 보여 주었습니다.
BOOL IsTextureFormatOk( D3DFORMAT TextureFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, 0, D3DRTYPE_TEXTURE, TextureFormat); return SUCCEEDED( hr ); }
- 픽셀 셰이더에서 알파 혼합 - 사용량을 D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 설정합니다. 모든 부동 소수점 렌더링 대상에 대해 실패할 것으로 예상합니다.
- Mipmap 자동 생성 - 사용량을 D3DUSAGE_AUTOGENMIPMAP 설정합니다. Mipmap 자동 생성에 실패하면 애플리케이션은 mipmapped가 아닌 텍스처를 가져옵니다. 이 메서드를 호출하는 것은 힌트로 간주되므로 이 메서드는 mipmap 생성만 실패하는 경우 D3DOK_NOAUTOGEN(유효한 성공 코드)를 반환할 수 있습니다. Mipmap 생성에 대한 자세한 내용은 Mipmap 자동 생성(Direct3D 9)을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d9.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |