IDXGIAdapter::GetDesc
アダプター (またはビデオ カード) のDXGI 1.0 記述を取得します。
HRESULT
GetDesc(
DXGI_ADAPTER_DESC *pDesc
);
パラメータ
- pDesc
アダプターを表す DXGI_ADAPTER_DESC 構造体へのポインター。このパラメーターを NULL にすることはできません。
戻り値
正常に実行できた場合は S_OK を返し、それ以外の場合はエラー コードを返します。pDesc パラメーターが NULL の場合は、DXGI_ERR_INVALID_CALL を返します。エラー コードの一覧については、「DXGI_ERROR」を参照してください。
解説
グラフィック アプリケーションで DXGI API を使用して、WDDM ドライバーを備えたシステムにあるグラフィック メモリーの正確な値を取得できます。そのための重要な手順は次のとおりです。
グラフィック ドライバー モデルの決定 — WDDM ドライバーを備えたシステムでのみ DXGI を利用できるので、アプリケーションではまず次の API を使用してドライバー モデルを確認する必要があります。
HasWDDMDriver() { LPDIRECT3DCREATE9EX pD3D9Create9Ex = NULL; HMODULE hD3D9 = NULL; hD3D9 = LoadLibrary( L"d3d9.dll" ); if ( NULL == hD3D9 ) { return false; } // /* Try to create IDirect3D9Ex interface (also known as a DX9L interface). This interface can only be created if the driver is a WDDM driver. */ // pD3D9Create9Ex = (LPDIRECT3DCREATE9EX) GetProcAddress( hD3D9, "Direct3DCreate9Ex" ); return pD3D9Create9Ex != NULL; }
グラフィック メモリーの値の取得 — ドライバー モデルを WDDM に決定した後、アプリケーションで Direct X 10 以降の API および DXGI を使用してグラフィック メモリーの量を知ることができます。Direct3D デバイスを作成した後、次のコードを使用して、利用可能なグラフィック メモリーの量を格納した DXGI_ADAPTER_DESC 構造体を取得できます。
IDXGIDevice * pDXGIDevice; hr = g_pd3dDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)&pDXGIDevice); IDXGIAdapter * pDXGIAdapter; pDXGIDevice->GetAdapter(&pDXGIAdapter); DXGI_ADAPTER_DESC adapterDesc; pDXGIAdapter->GetDesc(&adapterDesc);
要件
ヘッダー: DXGI.h 宣言
ライブラリ: DXGI.lib 内容