Microsoft DirectX 8.0 (C++)

コントロールの変更の最少化

セカンダリ バッファのパン、ボリューム、周波数を変更すると性能に影響する。サウンド出力が途切れることを防止するには、DirectSound ミキサは 20ms から 100ms、またはそれ以上先行してミキシングを行わなければならない。コントロールを変更した場合は、ミキサは先行ミキシング バッファをフラッシュ (解放) し、変更後のサウンドを使って再ミキシングを行わなければならない。

送信するコントロールの変更回数を最少にすることは良い考えである。IDirectSoundBuffer8::SetVolumeIDirectSoundBuffer8::SetPanIDirectSoundBuffer8::SetFrequency の各メソッドを使うルーチンの呼び出し回数を減らすよう努める。たとえば、アニメーションのフレームに同期して音を左スピーカから右スピーカへ動かすルーチンを使っている場合、SetPan メソッドを 1 フレームごとに 2 回ではなく 1 回呼び出すことを試みる。

  3D コントロール (向き、位置、速度、ドップラー係数など) を変更した場合も、DirectSound ミキサは先行ミキシング バッファを再ミキシングしなければならない。しかし、3D コントロールの変更をグループ化し、再ミキシングを 1 回に削減できる。「遅延設定」を参照すること。