Microsoft DirectX 8.0 (Visual Basic)

3D バッファ オブジェクトの取得

DirectSound3DBuffer8 オブジェクトは、DSBUFFERDESC 型の lFlags メンバで DSBCAPS_CTRL3D フラグを指定して作成されたDirectSound セカンダリ バッファから取得される。

アプリケーションが DirectMusic のパフォーマンスおよびオーディオパスを使用している場合、DMUS_APATH_DYNAMIC_3DlType パラメータとして DirectMusicPerformance8.CreateStandardAudioPath に渡すことによって、3D バッファを含むオーディオパスを作成できる。

構成オブジェクトから適切なオーディオパスを作成することもできる。オーディオパス構成によって、バッファの 3D パラメータを指定できる。オーディオパスを作成するときに、バッファの 3D プロパティはこれらのパラメータを使って初期化される。

オーディオパス内の 3D バッファを表すオブジェクトを取得するには、次の例のように、lStage を DMUS_PATH_BUFFER に設定して、DirectMusicAudioPath8.GetObjectInPath を呼び出す。

Dim dsb As DirectSound3dBuffer8
 
Set dsb = dmAudioPath.GetObjectinPath(DMUS_PCHANNEL_ALL, _
    DMUS_PATH_BUFFER, 0, GUID_ALL, 0, IID_DirectSound3DBuffer)

次の例は、DirectMusic パフォーマンスを使用しないアプリケーションで DirectSound3DBuffer8 オブジェクトを作成する方法を示している。ここで、m_dsDirectSound8 オブジェクトである。

Dim dsbd As DSBUFFERDESC
Dim dsBuffer As DirectSoundSecondaryBuffer8
Dim ds3dBuffer As DirectSound3DBuffer8

' セカンダリ バッファを作成する。
 
dsbd.lFlags = DSBCAPS_CTRL3D
Set dsBuffer = m_ds.CreateSoundBufferFromFile("sound.wav", dsbd)
 
' 3D バッファ オブジェクトを取得する。
 
Set ds3dBuffer = dsBuffer.GetDirectSound3DBuffer