Platform SDK: DirectX

ステップ 4 : 利用可能なディスプレイ モードの報告

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectDraw C/C++ チュートリアル」を参照すること。

[Visual Basic]

ディスプレイ モードとは、ディスプレイ ハードウェアがプライマリ サーフェスからモニタに送るグラフィックスの寸法やビット深度を記述するハードウェア設定のことである。ディスプレイ モードは、幅、高さ、ビット深度といった定義特性によって記述される。たとえば、大部分のディスプレイ アダプタは、幅 640 ピクセルで高さ 480 ピクセルのグラフィックスを表示できる。ここで、各ピクセルは 8 ビットのデータである。このディスプレイ モードは、640×480×8 と表される。ディスプレイ モードの寸法が大きくなったりビット深度が増加すると、より多くのディスプレイ メモリが必要となる。

ディスプレイ モードのサポートは、ディスプレイ アダプタによって異なる。特定のディスプレイ モードがシステム上でサポートされていることを確かめるには、DirectDraw7.GetDisplayModesEnum メソッドを使用して、有効なディスプレイ モードをすべて列挙する。このメソッドは、DisplayModesEnum と呼ばれる DirectDrawEnumModes 列挙オブジェクトを作成し、そこに情報を埋め込む。そして、このオブジェクトを使用して各ディスプレイ モードの記述を取得する。

チュートリアル 5 のサンプルでは、サポートされているディスプレイ モードごとに、DisplayModesEnum オブジェクトのメソッドを呼び出す。

Dim DisplayModesEnum As DirectDrawEnumModes
Dim ddsd2 As DDSURFACEDESC2
Dim dd As DirectDraw7
Set dd = m_dx.DirectDrawCreate(sGuid)
dd.SetCooperativeLevel Me.hWnd, DDSCL_NORMAL
Set DisplayModesEnum = dd.GetDisplayModesEnum(0, ddsd2)
OutList.AddItem " Display Modes"
For i = 1 To DisplayModesEnum.GetCount()
    DisplayModesEnum.GetItem i, ddsd2
    OutList.AddItem "  Index          " + Str(i)
    OutList.AddItem "  Width          " + Str(ddsd2.lWidth)
    OutList.AddItem "  Height         " + Str(ddsd2.lHeight)
    OutList.AddItem "  Bits Per Pixel" + Str(ddsd2.ddpfPixelFormat.lRGBBitCount)
    OutList.AddItem "  Refresh Rate   " + Str(ddsd2.lRefreshRate)
    OutList.AddItem ""
Next