Platform SDK: DirectX

ステップ 3 : DirectDraw デバイスの 3D 能力の表示

[C++]

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

[Visual Basic]

DirectDraw デバイスの 3D 能力の取得は、このチュートリアルの前のステップとほぼ同様である。まず、Direct3D7 オブジェクトを DirectDraw7 オブジェクトから作成する。次に、Direct3D7.GetDevicesEnum メソッドを呼び出して Direct3DEnumDevices 列挙オブジェクトを作成し、情報を埋め込む。そして、列挙オブジェクトのメソッドを呼び出し、システムの Direct3D デバイスについての情報を取得する。

チュートリアル 5 のサンプルでは、Direct3DEnumDevices.GetDesc メソッドを Direct3D デバイスごとに呼び出して、能力を取得する。次に、D3DDEVICEDESC7 型で能力フラグをチェックすると、その結果がリスト ボックスで報告される。これは、以下の文で示される。

Set dd = m_dx.DirectDrawCreate(sGuid)
Set d3d = dd.GetDirect3D()

OutList.AddItem "   D3D devices"

Set d3denum = d3d.GetDevicesEnum()

OutList.AddItem ""

For i = 1 To d3denum.GetCount()

    d3denum.GetDesc i, hwDesc
    OutList.AddItem "     Guid        " + d3denum.GetGuid(i)
    OutList.AddItem "     Description " + d3denum.GetDescription(i)
    OutList.AddItem "     Name        " + d3denum.GetName(i)
    OutList.AddItem "     Device "
    With hwDesc
        OutList.AddItem "     Max Texture Height  " + Str(.lMaxTextureHeight)
        OutList.AddItem "     Max Texture Width   " + Str(.lMaxTextureWidth)
        If (.lDeviceRenderBitDepth And DDBD_8) Then
            OutList.AddItem "     Supports rendering to 8 bit"
        End If
        If (.lDeviceZBufferBitDepth And DDBD_8) Then
            OutList.AddItem "     Supports  8 bit z buffer"
        End If
        If (.lDevCaps And D3DDEVCAPS_TEXTURENONLOCALVIDMEM) Then
            OutList.AddItem "     Supports AGP textures"
        End If
    End With

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