crypt of decay - August 21st, 2018 [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

August 21st, 2018

время умываться! [Aug. 21st, 2018|12:47 am]
почистил и немного перепилил звуковую подсистему. в оригинале она была более-менее тупо выдернута из вавума и безжалостно кастрирована. из-за чего не имела некоторого нужного API, имела некоторый ненужный API, всякие заточки на какие-то бэкэнды кроме OpenAL, и требовала постоянного вызова `UpdateSounds()` в главном потоке.

а раз игра более-менее уже рабочая, то самое время заняться мелкой косметической чисткой. xmp-lite в качестве плеера модулей я привинтил ещё с месяц назад, и музыку вынес в отдельный поток. а теперь повыкидывал остатки неиспользуемых ошмётков, дописал в интерфейсный файл кратенькую документацию, перенёс апдейтер в отдельный поток, чтобы больше не дёргать его руками, и добавил кучу API для управления всякой фигнёй, которая внутри кода была, но в вавумси не торчала. заодно докинул опус-декодер.

итого, саундсистема теперь умеет играть звуки (и музыку) в формате wav pcm, flac, vorbis, opus, mp3 (via libmad), и дополнительно только музыку в модульном формате (.xm, .it, .s3m — короче, всё, что умеет xmp-lite). надо будет потом ещё привинтить бэкэнды для nukedopl, wildmidi, timidity и fluidsynth.

а потом, наверное, перетащить это назад в вавум и унифицировать с vccrun.

OpenAL, вдобавок ко всем прочим прелестям, ещё и потокобезопасный. рулит, педалит, суперофигенен. настоятельно всем рекомендую в качестве звукового бэкэнда всегда брать OpenAL и не парить себе мозги ерундой. жаль, что столько времени он как-то проходил мимо меня.
Link4 meows|meow!

navigation
[ viewing | August 21st, 2018 ]
[ go | Previous Day|Next Day ]