浏览代码

windows and linux AL_ALEXT_PROTOTYPES blocks, as well as exposed the defining of it cmake side for the adventurous (windows and linux on by default, mac off till we sort why dylibs are freaking out)

AzaezelX 6 年之前
父节点
当前提交
4ee8df8863

+ 2 - 1
Engine/source/sfx/openal/linux/LoadOAL.linux.cpp

@@ -447,6 +447,7 @@ ALboolean LoadOAL10Library(char *szOALFullPathName, LPOPENALFNTABLE lpOALFnTable
 		warn("Failed to retrieve 'alcGetEnumValue' function address\n");
 		return AL_FALSE;
 	}
+#if defined(AL_ALEXT_PROTOTYPES)
   //efx
     lpOALFnTable->alGenEffects = (LPALGENEFFECTS)dlsym(openal_library, "alGenEffects");
     if (lpOALFnTable->alGenEffects == NULL)
@@ -586,7 +587,7 @@ ALboolean LoadOAL10Library(char *szOALFullPathName, LPOPENALFNTABLE lpOALFnTable
        warn("Failed to retrieve 'alSource3i' function address\n");
        return AL_FALSE;
     }
-
+#endif
 	return AL_TRUE;
 }
 

+ 3 - 1
Engine/source/sfx/openal/win32/LoadOAL.cpp

@@ -439,6 +439,7 @@ ALboolean LoadOAL10Library(char *szOALFullPathName, LPOPENALFNTABLE lpOALFnTable
 		OutputDebugStringA("Failed to retrieve 'alcGetEnumValue' function address\n");
 		return AL_FALSE;
 	}
+#if defined(AL_ALEXT_PROTOTYPES)
    lpOALFnTable->alGenEffects = (LPALGENEFFECTS)GetProcAddress(g_hOpenALDLL, "alGenEffects");
    if (lpOALFnTable->alGenEffects == NULL)
    {
@@ -551,6 +552,7 @@ ALboolean LoadOAL10Library(char *szOALFullPathName, LPOPENALFNTABLE lpOALFnTable
       OutputDebugStringA("Failed to retrieve 'alGetAuxiliaryEffectSlotiv' function address\n");
    }
    lpOALFnTable->alSource3i = (LPALSOURCE3I)GetProcAddress(g_hOpenALDLL, "alSource3i");
+#endif
 	return AL_TRUE;
 }
 
@@ -562,4 +564,4 @@ ALvoid UnloadOAL10Library()
 		FreeLibrary(g_hOpenALDLL);
 		g_hOpenALDLL = NULL;
 	}
-}
+}

+ 8 - 0
Tools/CMake/torque3d.cmake

@@ -394,18 +394,26 @@ endif()
 if(TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED)
     addPath("${srcDir}/sfx/openal")
     if(WIN32)
+      option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
       addPath("${srcDir}/sfx/openal/win32")
       addInclude("${libDir}/openal-soft/include")
     endif()
       if(UNIX AND NOT APPLE)
+         option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
          addPath("${srcDir}/sfx/openal/linux")
       endif()
    if(APPLE)
+      option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" OFF)
       addPath("${srcDir}/sfx/openal/mac")
       addFramework("OpenAL")
     endif()
 endif()
 
+mark_as_advanced(AL_ALEXT_PROTOTYPES)
+if(AL_ALEXT_PROTOTYPES)
+	addDef( "AL_ALEXT_PROTOTYPES" )
+endif()
+
 # Vorbis
 if(TORQUE_SFX_VORBIS)
     addInclude(${libDir}/libvorbis/include)