aboutsummaryrefslogtreecommitdiffstats
path: root/al/debug.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-05-14 18:15:38 -0700
committerChris Robinson <[email protected]>2023-05-14 18:15:38 -0700
commita6884f630383e98ded68858b93df8f040b83eece (patch)
tree96fb06ceecc3417d89b4f5856a6a0d5407f0de66 /al/debug.cpp
parent6b9b875d6f256c659762073a227032f7e7fcbc02 (diff)
Implement direct functions for the debug API
Diffstat (limited to 'al/debug.cpp')
-rw-r--r--al/debug.cpp59
1 files changed, 40 insertions, 19 deletions
diff --git a/al/debug.cpp b/al/debug.cpp
index 71aadc85..e28df917 100644
--- a/al/debug.cpp
+++ b/al/debug.cpp
@@ -234,20 +234,28 @@ void ALCcontext::sendDebugMessage(std::unique_lock<std::mutex> &debuglock, Debug
FORCE_ALIGN void AL_APIENTRY alDebugMessageCallbackEXT(ALDEBUGPROCEXT callback, void *userParam) noexcept
+{ return alDebugMessageCallbackDirectEXT(GetContextRef().get(), callback, userParam); }
+
+FORCE_ALIGN void AL_APIENTRY alDebugMessageCallbackDirectEXT(ALCcontext *context,
+ ALDEBUGPROCEXT callback, void *userParam) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return;
+ if(!context) UNLIKELY
+ return;
std::lock_guard<std::mutex> _{context->mDebugCbLock};
context->mDebugCb = callback;
context->mDebugParam = userParam;
}
-FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertEXT(ALenum source, ALenum type, ALuint id,
- ALenum severity, ALsizei length, const ALchar *message) noexcept
+
+FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertEXT(ALenum source, ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept
+{ return alDebugMessageInsertDirectEXT(GetContextRef().get(), source, type, id, severity, length, message); }
+
+FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertDirectEXT(ALCcontext *context, ALenum source,
+ ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return;
+ if(!context) UNLIKELY
+ return;
if(!context->mContextFlags.test(ContextFlags::DebugBit))
return;
@@ -285,11 +293,14 @@ FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertEXT(ALenum source, ALenum type,
}
-FORCE_ALIGN void AL_APIENTRY alDebugMessageControlEXT(ALenum source, ALenum type, ALenum severity,
- ALsizei count, const ALuint *ids, ALboolean enable) noexcept
+FORCE_ALIGN void AL_APIENTRY alDebugMessageControlEXT(ALenum source, ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable) noexcept
+{ return alDebugMessageControlDirectEXT(GetContextRef().get(), source, type, severity, count, ids, enable); }
+
+FORCE_ALIGN void AL_APIENTRY alDebugMessageControlDirectEXT(ALCcontext *context, ALenum source,
+ ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return;
+ if(!context) UNLIKELY
+ return;
if(count > 0)
{
@@ -384,9 +395,13 @@ FORCE_ALIGN void AL_APIENTRY alDebugMessageControlEXT(ALenum source, ALenum type
FORCE_ALIGN void AL_APIENTRY alPushDebugGroupEXT(ALenum source, ALuint id, ALsizei length, const ALchar *message) noexcept
+{ return alPushDebugGroupDirectEXT(GetContextRef().get(), source, id, length, message); }
+
+FORCE_ALIGN void AL_APIENTRY alPushDebugGroupDirectEXT(ALCcontext *context, ALenum source,
+ ALuint id, ALsizei length, const ALchar *message) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return;
+ if(!context) UNLIKELY
+ return;
if(length < 0)
{
@@ -427,9 +442,12 @@ FORCE_ALIGN void AL_APIENTRY alPushDebugGroupEXT(ALenum source, ALuint id, ALsiz
}
FORCE_ALIGN void AL_APIENTRY alPopDebugGroupEXT(void) noexcept
+{ return alPopDebugGroupDirectEXT(GetContextRef().get()); }
+
+FORCE_ALIGN void AL_APIENTRY alPopDebugGroupDirectEXT(ALCcontext *context) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return;
+ if(!context) UNLIKELY
+ return;
std::unique_lock<std::mutex> debuglock{context->mDebugCbLock};
if(context->mDebugGroups.size() <= 1)
@@ -451,12 +469,15 @@ FORCE_ALIGN void AL_APIENTRY alPopDebugGroupEXT(void) noexcept
}
-FORCE_ALIGN ALuint AL_APIENTRY alGetDebugMessageLogEXT(ALuint count, ALsizei logBufSize,
- ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths,
- ALchar *logBuf) noexcept
+FORCE_ALIGN ALuint AL_APIENTRY alGetDebugMessageLogEXT(ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf) noexcept
+{ return alGetDebugMessageLogDirectEXT(GetContextRef().get(), count, logBufSize, sources, types, ids, severities, lengths, logBuf); }
+
+FORCE_ALIGN ALuint AL_APIENTRY alGetDebugMessageLogDirectEXT(ALCcontext *context, ALuint count,
+ ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities,
+ ALsizei *lengths, ALchar *logBuf) noexcept
{
- ContextRef context{GetContextRef()};
- if(!context) UNLIKELY return 0;
+ if(!context) UNLIKELY
+ return 0;
if(logBufSize < 0)
{