From cf62de6c6df49bdadd709d9628411bc74c1dfd95 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Fri, 19 Jul 2013 23:31:45 +0000 Subject: [PATCH] BGE: Partial fix for [#36151] "Distance model not carrying over to standalone" reported by Florian Schneider (drjaska). The Blenderplayer wasn't initializing 3D audio settings from the scene settings like the embedded player was. --- source/gameengine/GamePlayer/ghost/CMakeLists.txt | 7 +++++++ .../GamePlayer/ghost/GPG_Application.cpp | 15 +++++++++++++++ source/gameengine/GamePlayer/ghost/SConscript | 1 + 3 files changed, 23 insertions(+) diff --git a/source/gameengine/GamePlayer/ghost/CMakeLists.txt b/source/gameengine/GamePlayer/ghost/CMakeLists.txt index 4ac9e78232e..4e17f21ae8c 100644 --- a/source/gameengine/GamePlayer/ghost/CMakeLists.txt +++ b/source/gameengine/GamePlayer/ghost/CMakeLists.txt @@ -81,4 +81,11 @@ if(WITH_INTERNATIONAL) add_definitions(-DWITH_INTERNATIONAL) endif() +if(WITH_AUDASPACE) + list(APPEND INC + ../../../../intern/audaspace/intern + ) + add_definitions(-DWITH_AUDASPACE) +endif() + blender_add_lib_nolist(ge_player_ghost "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 5baca2540a4..bedee5d9a47 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -99,6 +99,12 @@ extern "C" #include "GHOST_IWindow.h" #include "GHOST_Rect.h" +#ifdef WITH_AUDASPACE +# include "AUD_C-API.h" +# include "AUD_I3DDevice.h" +# include "AUD_IDevice.h" +#endif + static void frameTimerProc(GHOST_ITimerTask* task, GHOST_TUns64 time); static GHOST_ISystem* fSystem = 0; @@ -725,6 +731,15 @@ bool GPG_Application::startEngine(void) if (m_startScene->gm.stereoflag == STEREO_DOME) m_ketsjiengine->InitDome(m_startScene->gm.dome.res, m_startScene->gm.dome.mode, m_startScene->gm.dome.angle, m_startScene->gm.dome.resbuf, m_startScene->gm.dome.tilt, m_startScene->gm.dome.warptext); + // initialize 3D Audio Settings + AUD_I3DDevice* dev = AUD_get3DDevice(); + if (dev) + { + dev->setSpeedOfSound(m_startScene->audio.speed_of_sound); + dev->setDopplerFactor(m_startScene->audio.doppler_factor); + dev->setDistanceModel(AUD_DistanceModel(m_startScene->audio.distance_model)); + } + #ifdef WITH_PYTHON // Set the GameLogic.globalDict from marshal'd data, so we can // load new blend files and keep data in GameLogic.globalDict diff --git a/source/gameengine/GamePlayer/ghost/SConscript b/source/gameengine/GamePlayer/ghost/SConscript index 8590aa24004..b507e2bda7b 100644 --- a/source/gameengine/GamePlayer/ghost/SConscript +++ b/source/gameengine/GamePlayer/ghost/SConscript @@ -43,6 +43,7 @@ incs = [ '#intern/guardedalloc', '#intern/moto/include', '#intern/container', + '#intern/audaspace/intern', '#source/gameengine/Rasterizer/RAS_OpenGLRasterizer', '#source/gameengine/BlenderRoutines', '#source/gameengine/Converter',