Platform SDK: DirectX |
Direct3DX ユーティリティ ライブラリ関数を使用してデバイスで実行可能なビデオ モード クエリとサーフェス フォーマット クエリについて説明する。
次のメソッドを使用すれば、特定のデバイスでサポートされているさまざまなビデオ モードを問い合わせることができる。
次のコードは、あるデバイスでサポートされているビデオ モードを順番に参照する。
dwNumVidModes = D3DXGetMaxNumVideoModes( D3DX_DEFAULT, D3DX_GVM_REFRESHRATE ); D3DX_VIDMODEDESC VidMode; for( i = 0; i<dwNumVidModes; i++ ) { hr = D3DXGetVideoMode( D3DX_DEFAULT, D3DX_GVM_REFRESHRATE, i, &VidMode ); }
この例では、D3DX_GVM_REFRESHRATE フラグを使用して、ディスプレイ デバイスにより指定されているリフレッシュ レートを取得する。
現在のビデオ モードの設定値を取得する場合は、次のコードを使用する。
D3DX_VIDMODEDESC CurrVidMode; D3DXGetCurrentVideoMode( D3DX_DEFAULT, &CurrVidMode );
D3DXGetDeviceCaps 関数を使用すれば、Direct3DX デバイスの能力を問い合わせることができる。D3DXGetDeviceCaps 関数からは、DirectDraw サーフェスの能力と共に Direct3D デバイスの能力が返される。また、多くのビデオ カードにはビデオ モードを基にさまざまな能力があるので、D3DXGetDeviceCaps 関数では入力パラメータとして D3DX_VIDMODEDESC 構造体を使用する。
次のコードでは、デバイスの能力を取得する。
DDCAPS DDHELCaps; DDCAPS DDHALCaps; D3DDEVICEDESC7 D3DCaps; hr = D3DXGetDeviceCaps( D3DX_DEFAULT, NULL, &D3DCaps, &DDHALCaps, &DDHELCaps );
また、さまざまなサーフェス クラスの Direct3DX デバイスによりサポートされている既知のサーフェス フォーマットに関する情報を要求できる。
次のメソッドを使用すれば、Direct3DX デバイスのサポート サーフェス フォーマットを問い合わせることができる。
次のコードは、あるデバイスでサポートされているサーフェス フォーマットを順番に参照する。
DWORD dwNumSurfaceFormats = D3DXGetMaxSurfaceFormats( D3DX_DEFAULT, NULL, D3DX_SC_COLORTEXTURE); D3DX_SURFACEFORMAT SurfaceFormat; for( i=0; i<dwNumSurfaceFormats; i++ ) { hr = D3DXGetSurfaceFormat( D3DX_DEFAULT, NULL, D3DX_SC_COLORTEXTURE, i, &SurfaceFormat ); }
この例では、D3DX_SC_COLORTEXTURE フラグを使用して、色情報があり、またテクスチャ マップで使用できるサーフェスをすべて指定している。