설마 그래픽카드(Adapter)를 여러개 다는 집은 흔하지 않을 거라 생각하지만, 만일의 사태를 대비해서 모두 만들어 두었다
~cpp
UINT IDirect3D8::GetAdapterCount();
- RET 몇개의 어댑터가 있는지 알려준다. 1개가 있으면 1, 2개가 있으면 2다.
어댑터에는 모두 번호가 붙어있다. 첫번째 어댑터에는 0, 두번째 어댑터에는 1, 이런 식이다. 0은 기본으로 있기 때문에 매크로로도 만들어져 있다. D3DADAPTER_DEFAULT 매크로이다. 0번 어댑터를 기본 어댑터라고도 한다.
그 어댑터는 어떤 상태일까
~cpp
HRESULT GetAdapterIdentifier {
UINT Adapter,
DWORD Flags,
D3DADAPTER_IDENTIFIER8* pIdentifier
};
- RET HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.
- IN 첫번째 인자는, 어댑터의 번호이다. 당연히 D3DADAPTER_DEFAULT를 넣어준다.
- IN 두번째 인자는 플래그이다. 0이나 D3D_ENUM_NO_WHQL_LEVEL을 넣을 수 있지만, 대개 0을 넣는다.
- OUT 세번째 인자를 출력값이다. 그곳의 멤버 변수는 다음과 같다.
~cpp
Driver : 드라이버의 이름
Description : 어댑터의 설명
DriverVersion : 드라이버의 버전
VendorID, DeviceID, SubSysID, Revision : 칩셋마다 틀려요
DeviceIdentifier : 드라이버나 어댑터를 위한 GUID(?)
WHQLLevel : 인증날짜