diff --git a/include/Nazara/Audio/OpenALFunctions.hpp b/include/Nazara/Audio/OpenALFunctions.hpp index f50c8bd1a..0e441bd6b 100644 --- a/include/Nazara/Audio/OpenALFunctions.hpp +++ b/include/Nazara/Audio/OpenALFunctions.hpp @@ -102,22 +102,22 @@ NAZARA_AUDIO_AL_FUNCTION(alSourceStopv) NAZARA_AUDIO_AL_FUNCTION(alSourceUnqueueBuffers) NAZARA_AUDIO_AL_FUNCTION(alSpeedOfSound) -/* +#ifndef NAZARA_PLATFORM_WEB NAZARA_AUDIO_AL_EXT_BEGIN(AL_SOFT_source_latency) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSource3dSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSource3i64SOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcedSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcedvSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcei64SOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcei64vSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSource3dSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSource3i64SOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcedSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcedvSOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcei64SOFT) -NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcei64vSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSource3dSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSource3i64SOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcedSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcedvSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcei64SOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcei64vSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSource3dSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSource3i64SOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcedSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcedvSOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcei64SOFT) +NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcei64vSOFT) NAZARA_AUDIO_AL_EXT_END() -*/ +#endif NAZARA_AUDIO_ALC_FUNCTION(alcCaptureCloseDevice) NAZARA_AUDIO_ALC_FUNCTION(alcCaptureOpenDevice) diff --git a/src/Nazara/Audio/OpenALLibrary.cpp b/src/Nazara/Audio/OpenALLibrary.cpp index cb098f2f5..a2577e408 100644 --- a/src/Nazara/Audio/OpenALLibrary.cpp +++ b/src/Nazara/Audio/OpenALLibrary.cpp @@ -26,6 +26,13 @@ namespace Nz auto PostLoad = [&] { + // Load ext +#define NAZARA_AUDIO_AL_ALC_FUNCTION(name) +#define NAZARA_AUDIO_AL_EXT_BEGIN(ext) if (alIsExtensionPresent(#ext)) { +#define NAZARA_AUDIO_AL_EXT_END() } +#define NAZARA_AUDIO_AL_FUNCTION_EXT(name) name = reinterpret_cast(alGetProcAddress(#name)); +#include + m_hasCaptureSupport = alcIsExtensionPresent(nullptr, "ALC_EXT_CAPTURE"); m_isLoaded = true; @@ -72,12 +79,8 @@ namespace Nz try { -#define NAZARA_AUDIO_FUNC(name, sig) name = reinterpret_cast(LoadSymbol(#name, false)); -#define NAZARA_AUDIO_EXT_FUNC(name, sig) name = reinterpret_cast(LoadSymbol(#name, true)); - NAZARA_AUDIO_FOREACH_AL_FUNC(NAZARA_AUDIO_FUNC, NAZARA_AUDIO_EXT_FUNC) - NAZARA_AUDIO_FOREACH_ALC_FUNC(NAZARA_AUDIO_FUNC, NAZARA_AUDIO_EXT_FUNC) -#undef NAZARA_AUDIO_FUNC -#undef NAZARA_AUDIO_EXT_FUNC +#define NAZARA_AUDIO_AL_ALC_FUNCTION(name) name = reinterpret_cast(LoadSymbol(#name, false)); +#include } catch (const std::exception& e) { @@ -98,13 +101,6 @@ namespace Nz // Load core #define NAZARA_AUDIO_AL_ALC_FUNCTION(name) name = &::name; #define NAZARA_AUDIO_AL_EXT_FUNCTION(name) -#include - - // Load ext -#define NAZARA_AUDIO_AL_ALC_FUNCTION(name) -#define NAZARA_AUDIO_AL_EXT_BEGIN(ext) if (alIsExtensionPresent(#ext)) { -#define NAZARA_AUDIO_AL_EXT_END() } -#define NAZARA_AUDIO_AL_FUNCTION_EXT(name) name = reinterpret_cast(alGetProcAddress(#name)); #include PostLoad(); diff --git a/xmake.lua b/xmake.lua index 6968c1455..929521462 100644 --- a/xmake.lua +++ b/xmake.lua @@ -52,6 +52,7 @@ local modules = { add_packages("openal-soft") end else + add_defines("AL_ALEXT_PROTOTYPES") add_packages("openal-soft", { links = {} }) end end