IDirect3D9::EnumAdapterModes メソッド

IDirect3D9::EnumAdapterModes メソッド

利用可能なアダプタ モードを列挙する。

構文

HRESULT EnumAdapterModes(      
    UINT Adapter,
    D3DFORMAT Format,
    UINT Mode,
    D3DDISPLAYMODE* pMode
);

パラメータ

  • Adapter
    [in] 列挙するディスプレイ アダプタを示す序数。D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプタである。この値がシステムのディスプレイ アダプタの数以上の場合、このメソッドは D3DERR_INVALIDCALL を返す。
  • Format
    [in] 利用可能なピクセル フォーマット。アプリケーションではピクセル フォーマットを指定し、列挙はその形式に厳密に一致するディスプレイ モードに制限される。有効なフォーマットは、D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8、D3DFMT_A2R10G10B10、D3DFMT_X1R5G5B5、D3DFMT_A1R5G5B5、D3DFMT_R5G6B5 である。これらは D3DFORMAT のメンバである。
  • Mode
    [in] アダプタのモードを表す。ここには、ゼロから IDirect3D9::GetAdapterModeCount が返す値より 1 少ない値までの範囲で、ディスプレイ モードのインデックスを設定する必要がある。「注意」を参照すること。
  • pMode
    [out] ディスプレイ モードの配列。各要素は D3DDISPLAYMODE 型である。「注意」を参照すること。

戻り値

  • このアダプタでデバイスを使える場合は、D3D_OK を返す。
  • Adapter がシステムのディスプレイ アダプタの数以上の場合、このメソッドは D3DERR_INVALIDCALL を返す。
  • サーフェイス フォーマットがサポートされていないか、指定されたフォーマットでハードウェア アクセラレーションが使えない場合は、D3DERR_NOTAVAILABLE を返す。

注意

ディスプレイ モード パラメータがサポートするディスプレイ モード セットは拡大している。アプリケーションの出荷時になかったフォーマットを列挙しないようにするには、アプリケーションから Microsoft® Direct3D® にディスプレイ モードを列挙するフォーマットを知らせる必要がある。結果として得られるディスプレイ モードの配列は、幅、高さ、リフレッシュ レートのみが異なる。

アプリケーションがピクセル フォーマットを指定し、列挙はそのフォーマットに正確に一致するディスプレイ モードだけに限定される。使用できるフォーマットは、D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8、D3DFMT_A2B10G10R10、D3DFMT_X1R5G5B5、D3DFMT_A1R5G5B5、D3DFMT_R5G6B5 である。

同じフォーマットのアルファ版と非アルファ版の列挙は同じである。返される Format には、常に、アプリケーションによって提供される同じフォーマットが格納される。「D3DDISPLAYMODE」を参照すること。

このメソッドは、565 と 555 を同じものとして扱い、正しいバージョンを Format に返す。これらに違いが生じるのはアプリケーションがバック バッファをロックした場合に限られ、そのためにはアプリケーションで明示的なフラグを設定する必要がある。