diff options
author | Chris Robinson <[email protected]> | 2023-05-14 01:27:42 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2023-05-14 01:27:42 -0700 |
commit | 1b2e5ba854c5c7fa35deb8cfb17f413341596a77 (patch) | |
tree | c1c785f4952b8b6a7b43d8e3be6cf6c6ad0e5b61 /al | |
parent | 6a007660fb7bac51f01ef0b9466bfcc6ade7389b (diff) |
Implement direct functions for extension queries and EAX
Diffstat (limited to 'al')
-rw-r--r-- | al/buffer.cpp | 8 | ||||
-rw-r--r-- | al/extension.cpp | 26 |
2 files changed, 23 insertions, 11 deletions
diff --git a/al/buffer.cpp b/al/buffer.cpp index bfc10906..216c82eb 100644 --- a/al/buffer.cpp +++ b/al/buffer.cpp @@ -1547,10 +1547,12 @@ BufferSubList::~BufferSubList() #ifdef ALSOFT_EAX FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferMode(ALsizei n, const ALuint *buffers, ALint value) noexcept +{ return EAXSetBufferModeDirect(GetContextRef().get(), n, buffers, value); } +FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferModeDirect(ALCcontext *context, ALsizei n, + const ALuint *buffers, ALint value) noexcept { #define EAX_PREFIX "[EAXSetBufferMode] " - const auto context = ContextRef{GetContextRef()}; if(!context) { ERR(EAX_PREFIX "%s\n", "No current context."); @@ -1688,10 +1690,12 @@ FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferMode(ALsizei n, const ALuint *buff } FORCE_ALIGN ALenum AL_APIENTRY EAXGetBufferMode(ALuint buffer, ALint *pReserved) noexcept +{ return EAXGetBufferModeDirect(GetContextRef().get(), buffer, pReserved); } +FORCE_ALIGN ALenum AL_APIENTRY EAXGetBufferModeDirect(ALCcontext *context, ALuint buffer, + ALint *pReserved) noexcept { #define EAX_PREFIX "[EAXGetBufferMode] " - const auto context = ContextRef{GetContextRef()}; if(!context) { ERR(EAX_PREFIX "%s\n", "No current context."); diff --git a/al/extension.cpp b/al/extension.cpp index dbaf4d5f..077e3324 100644 --- a/al/extension.cpp +++ b/al/extension.cpp @@ -30,14 +30,15 @@ #include "alc/context.h" #include "alstring.h" #include "core/except.h" +#include "direct_defs.h" #include "opthelpers.h" -AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extName) -START_API_FUNC +AL_API DECL_FUNC1(ALboolean, alIsExtensionPresent, const ALchar*) +FORCE_ALIGN ALboolean AL_APIENTRY alIsExtensionPresentDirect(ALCcontext *context, const ALchar *extName) noexcept { - ContextRef context{GetContextRef()}; - if(!context) UNLIKELY return AL_FALSE; + if(!context) UNLIKELY + return AL_FALSE; if(!extName) UNLIKELY { @@ -54,21 +55,28 @@ START_API_FUNC return AL_FALSE; } -END_API_FUNC AL_API ALvoid* AL_APIENTRY alGetProcAddress(const ALchar *funcName) -START_API_FUNC { if(!funcName) return nullptr; return alcGetProcAddress(nullptr, funcName); } -END_API_FUNC + +FORCE_ALIGN ALvoid* AL_APIENTRY alGetProcAddressDirect(ALCcontext*, const ALchar *funcName) noexcept +{ + if(!funcName) return nullptr; + return alcGetProcAddress(nullptr, funcName); +} AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *enumName) -START_API_FUNC { if(!enumName) return static_cast<ALenum>(0); return alcGetEnumValue(nullptr, enumName); } -END_API_FUNC + +FORCE_ALIGN ALenum AL_APIENTRY alGetEnumValueDirect(ALCcontext*, const ALchar *enumName) noexcept +{ + if(!enumName) return static_cast<ALenum>(0); + return alcGetEnumValue(nullptr, enumName); +} |