Fix OpenAL extensions functions

This commit is contained in:
SirLynix 2022-12-06 12:54:22 +01:00
parent 3d05b1fb44
commit b79718404c
3 changed files with 24 additions and 27 deletions

View File

@ -102,22 +102,22 @@ NAZARA_AUDIO_AL_FUNCTION(alSourceStopv)
NAZARA_AUDIO_AL_FUNCTION(alSourceUnqueueBuffers) NAZARA_AUDIO_AL_FUNCTION(alSourceUnqueueBuffers)
NAZARA_AUDIO_AL_FUNCTION(alSpeedOfSound) NAZARA_AUDIO_AL_FUNCTION(alSpeedOfSound)
/* #ifndef NAZARA_PLATFORM_WEB
NAZARA_AUDIO_AL_EXT_BEGIN(AL_SOFT_source_latency) NAZARA_AUDIO_AL_EXT_BEGIN(AL_SOFT_source_latency)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSource3dSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSource3dSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSource3i64SOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSource3i64SOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcedSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcedSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcedvSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcedvSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcei64SOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcei64SOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alGetSourcei64vSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alGetSourcei64vSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSource3dSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSource3dSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSource3i64SOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSource3i64SOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcedSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcedSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcedvSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcedvSOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcei64SOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcei64SOFT)
NAZARA_AUDIO_AL_FUNCTION_EXT(alSourcei64vSOFT) NAZARA_AUDIO_AL_EXT_FUNCTION(alSourcei64vSOFT)
NAZARA_AUDIO_AL_EXT_END() NAZARA_AUDIO_AL_EXT_END()
*/ #endif
NAZARA_AUDIO_ALC_FUNCTION(alcCaptureCloseDevice) NAZARA_AUDIO_ALC_FUNCTION(alcCaptureCloseDevice)
NAZARA_AUDIO_ALC_FUNCTION(alcCaptureOpenDevice) NAZARA_AUDIO_ALC_FUNCTION(alcCaptureOpenDevice)

View File

@ -26,6 +26,13 @@ namespace Nz
auto PostLoad = [&] 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<decltype(&::name)>(alGetProcAddress(#name));
#include <Nazara/Audio/OpenALFunctions.hpp>
m_hasCaptureSupport = alcIsExtensionPresent(nullptr, "ALC_EXT_CAPTURE"); m_hasCaptureSupport = alcIsExtensionPresent(nullptr, "ALC_EXT_CAPTURE");
m_isLoaded = true; m_isLoaded = true;
@ -72,12 +79,8 @@ namespace Nz
try try
{ {
#define NAZARA_AUDIO_FUNC(name, sig) name = reinterpret_cast<sig>(LoadSymbol(#name, false)); #define NAZARA_AUDIO_AL_ALC_FUNCTION(name) name = reinterpret_cast<decltype(&::name)>(LoadSymbol(#name, false));
#define NAZARA_AUDIO_EXT_FUNC(name, sig) name = reinterpret_cast<sig>(LoadSymbol(#name, true)); #include <Nazara/Audio/OpenALFunctions.hpp>
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
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {
@ -98,13 +101,6 @@ namespace Nz
// Load core // Load core
#define NAZARA_AUDIO_AL_ALC_FUNCTION(name) name = &::name; #define NAZARA_AUDIO_AL_ALC_FUNCTION(name) name = &::name;
#define NAZARA_AUDIO_AL_EXT_FUNCTION(name) #define NAZARA_AUDIO_AL_EXT_FUNCTION(name)
#include <Nazara/Audio/OpenALFunctions.hpp>
// 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<decltype(name)>(alGetProcAddress(#name));
#include <Nazara/Audio/OpenALFunctions.hpp> #include <Nazara/Audio/OpenALFunctions.hpp>
PostLoad(); PostLoad();

View File

@ -52,6 +52,7 @@ local modules = {
add_packages("openal-soft") add_packages("openal-soft")
end end
else else
add_defines("AL_ALEXT_PROTOTYPES")
add_packages("openal-soft", { links = {} }) add_packages("openal-soft", { links = {} })
end end
end end