[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18834] trunk/blender/intern/SoundSystem/ openal/SND_OpenALDevice.cpp: [#18257] Workaround for bug in freealut 1.1.0
Campbell Barton
ideasman42 at gmail.com
Fri Feb 6 17:38:54 CET 2009
Revision: 18834
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18834
Author: campbellbarton
Date: 2009-02-06 17:38:53 +0100 (Fri, 06 Feb 2009)
Log Message:
-----------
[#18257] Workaround for bug in freealut 1.1.0
by J?\195?\182rg M?\195?\188ller (nexyon)
Since this area is not maintained, I can only say it works on my system (linux/32bit)
And nexyon assured me he checked over this patch well.
Blender using the deprecated function is not great, but nexyon's bugfix would not be available until the next version of freealut so better to work around it by using the new function.
Please test game sounds play back on win32 and Mac, in cases that it worked in the first place.
Modified Paths:
--------------
trunk/blender/intern/SoundSystem/openal/SND_OpenALDevice.cpp
Modified: trunk/blender/intern/SoundSystem/openal/SND_OpenALDevice.cpp
===================================================================
--- trunk/blender/intern/SoundSystem/openal/SND_OpenALDevice.cpp 2009-02-06 16:34:05 UTC (rev 18833)
+++ trunk/blender/intern/SoundSystem/openal/SND_OpenALDevice.cpp 2009-02-06 16:38:53 UTC (rev 18834)
@@ -235,7 +235,8 @@
if (m_context) {
#ifdef AL_VERSION_1_1
- alcMakeContextCurrent((ALCcontext*)m_context);
+ alcMakeContextCurrent((ALCcontext*)m_context);
+ alutInitWithoutContext(NULL, NULL); /* in this case we dont want alut to initialize the context, see above */
#else
alcMakeContextCurrent(m_context);
#endif
@@ -380,7 +381,10 @@
#else
if (m_device)
alcCloseDevice((ALCdevice*) m_device);
+#ifdef AL_VERSION_1_1
+ alutExit();
#endif
+#endif
}
@@ -437,7 +441,9 @@
alutLoadWAVMemory((char*)memlocation, &sampleformat, &data, &numberofsamples, &samplerate); // openal_2.12
#else
#ifdef AL_VERSION_1_1
- alutLoadWAVMemory((ALbyte*)memlocation, &sampleformat, &data, &numberofsamples, &samplerate, &loop);// openal_2.14+
+ float frequency = 0.0f;
+ data = alutLoadMemoryFromFileImage(memlocation, size, &sampleformat, &numberofsamples, &frequency);
+ samplerate = (int)frequency;
#else
alutLoadWAVMemory((signed char*)memlocation, &sampleformat, &data, &numberofsamples, &samplerate, &loop);// openal_2.14+
@@ -480,7 +486,11 @@
}
/* and free the original stuff (copy was made in openal) */
+#if defined(OUDE_OPENAL) || defined (__APPLE__) || !defined(AL_VERSION_1_1)
alutUnloadWAV(sampleformat, data, numberofsamples, samplerate);
+#else
+ free(data);
+#endif
}
}
else
More information about the Bf-blender-cvs
mailing list