Войти
ПрограммированиеФорумЗвук

IDirectSound::DuplicateSoundBuffer можно ли самому написать программу эмитацию данной функции DirectSound? (2 стр)

Страницы: 1 2
#15
19:06, 7 дек. 2011

Да.


#16
19:08, 7 дек. 2011

Просто уже сижу хороше на DirectSound - e. И не пойму , не ужели нельзя получить сылку на буфер с помощью IDirectSound::DuplicateSoundBuffer (создаст дубль буфера). Взять этот адрес и в место него записать адрес буфера с флагом эффектов. Вроде может прокатить. Тоесть подтасовать результат. Знать бы как устроен буфер (какую информацию содержит и что она значит)

#17
19:09, 7 дек. 2011

ronniko
> Вроде может прокатить.
Нет. Инфа 100%.

#18
19:13, 7 дек. 2011

А нет такой команды у DirectSound что бы у уже существующего буфера со звуком менять флаги? Что я думаю. Создал буфер звука без флага эффектов. Сделал дубль этого буфера. А потом включил флаг эффектов буферу. Вот по этому я и хочу поковыряться в информации буфера.

#19
20:15, 7 дек. 2011

Кстати, вероятно во всех этих OpenAL и XAudio та же проблема с дублированием, тк, скорее всего, сделаны они через тот же DSound, просто эта проблема скрыта от глаз во внутренностях и в памяти всё равно хранятся лишние буфера. Хотя, если они сделаны через WaveOut, DSoundPrimaryBuffer или ещё через что-то, то проблемы не будет.

ronniko
> А нет такой команды у DirectSound что бы у уже существующего буфера со звуком менять флаги?
Нет. Предлагаю, для тех буферов, что могут быть с эффектами - делать теневую копию в любом виде, хоть в std::vector, хоть IDirectSoundBuffer (могут быть последствия у IDirectSoundBuffer->Lock способа, я не знаю как на самом деле), хоть массив и копировать данные оттуда. Для обычных буферов без эффектов - дублировать обычным образом.

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.