#include <sdkddkver.h>
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <tchar.h>
#include <sstream>
typedef std::basic_ostringstream<TCHAR> tostringstream;
#include <d3d9.h>
#include <memory>
template <typename T>
struct release_deleter {
typedef T * pointer;
void operator()(T * p) const
{
p->Release();
}
};
typedef std::unique_ptr<IDirect3D9, release_deleter<IDirect3D9> > d3d_ptr;
int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
// IDirect3D9オブジェクトの生成
d3d_ptr pD3D(Direct3DCreate9(D3D_SDK_VERSION));
// エラーチェック
if(pD3D == NULL){
MessageBox(
NULL,
TEXT("IDirect3D9のオブジェクトを生成できませんでした."),
TEXT("失敗"),
MB_OK
);
return -1;
}
UINT n = pD3D->GetAdapterCount();
for(UINT i = 0; i < n; ++i){
D3DADAPTER_IDENTIFIER9 identifier;
pD3D->GetAdapterIdentifier(
i,
0, // D3DENUM_WHQL_LEVELを指定するとネットから情報取得?
&identifier
);
// GetAdapterIdentifier()の結果を文字列に
tostringstream msg;
msg << "Adapter " << i << '\n';
msg << "Driver : " << identifier.Driver << '\n';
msg << "Description : " << identifier.Description << '\n';
msg << "DeviceName : " << identifier.DeviceName << '\n';
msg << "DriverVersion\n";
msg << " Product : " << HIWORD(identifier.DriverVersion.HighPart) << '\n';
msg << " Version : " << LOWORD(identifier.DriverVersion.HighPart) << '\n';
msg << " SubVersion : " << HIWORD(identifier.DriverVersion.LowPart) << '\n';
msg << " Build : " << LOWORD(identifier.DriverVersion.LowPart) << '\n';
msg << "VendorId : " << identifier.VendorId << '\n';
msg << "DeviceId : " << identifier.DeviceId << '\n';
msg << "SubSysId : " << identifier.SubSysId << '\n';
msg << "Revision : " << identifier.Revision << '\n';
// msg << "DeviceIdentifier : " << identifier.DeviceIdentifier << '\n';
msg << "WHQLLevel : " <<
(identifier.WHQLLevel >> 16) << TEXT("年") <<
((identifier.WHQLLevel & 0xFFFF) >> 8) << TEXT("月") <<
(identifier.WHQLLevel & 0xFF) << TEXT("日\n");
MessageBox(
NULL,
msg.str().c_str(),
TEXT("結果"),
MB_OK
);
}
return 0;
}
2012年1月12日木曜日
IDirect3D9::GetAdapterIdentifier
ドライバ名とかグラフィックスボードの名前まで取得可能.そして,そこまでの情報を利用する必要があるのかは良く分からない.PCゲームはあまりやらないからなぁ.
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿