#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 件のコメント:
コメントを投稿