Platform SDK: DirectX

Direct3DX デバイスの問い合わせ

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 フラグを使用して、色情報があり、またテクスチャ マップで使用できるサーフェスをすべて指定している。