aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--al/debug.cpp59
-rw-r--r--alc/alc.cpp7
-rw-r--r--alc/inprogext.h12
3 files changed, 59 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)
{
diff --git a/alc/alc.cpp b/alc/alc.cpp
index c6a1a1fe..7d5b7ee0 100644
--- a/alc/alc.cpp
+++ b/alc/alc.cpp
@@ -575,6 +575,13 @@ const struct {
DECL(alEventControlDirectSOFT),
DECL(alEventCallbackDirectSOFT),
+
+ DECL(alDebugMessageCallbackDirectEXT),
+ DECL(alDebugMessageInsertDirectEXT),
+ DECL(alDebugMessageControlDirectEXT),
+ DECL(alPushDebugGroupDirectEXT),
+ DECL(alPopDebugGroupDirectEXT),
+ DECL(alGetDebugMessageLogDirectEXT),
#ifdef ALSOFT_EAX
}, eaxFunctions[] = {
DECL(EAXGet),
diff --git a/alc/inprogext.h b/alc/inprogext.h
index 3e20caaf..00629a9f 100644
--- a/alc/inprogext.h
+++ b/alc/inprogext.h
@@ -108,6 +108,12 @@ typedef void (AL_APIENTRY*LPALDEBUGMESSAGECONTROLEXT)(ALenum source, ALenum type
typedef void (AL_APIENTRY*LPALPUSHDEBUGGROUPEXT)(ALenum source, ALuint id, ALsizei length, const ALchar *message);
typedef void (AL_APIENTRY*LPALPOPDEBUGGROUPEXT)(void);
typedef ALuint (AL_APIENTRY*LPALGETDEBUGMESSAGELOGEXT)(ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf);
+typedef void (AL_APIENTRY*LPALDEBUGMESSAGECALLBACKDIRECTEXT)(ALCcontext *context, ALDEBUGPROCEXT callback, void *userParam);
+typedef void (AL_APIENTRY*LPALDEBUGMESSAGEINSERTDIRECTEXT)(ALCcontext *context, ALenum source, ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message);
+typedef void (AL_APIENTRY*LPALDEBUGMESSAGECONTROLDIRECTEXT)(ALCcontext *context, ALenum source, ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable);
+typedef void (AL_APIENTRY*LPALPUSHDEBUGGROUPDIRECTEXT)(ALCcontext *context, ALenum source, ALuint id, ALsizei length, const ALchar *message);
+typedef void (AL_APIENTRY*LPALPOPDEBUGGROUPDIRECTEXT)(ALCcontext *context);
+typedef ALuint (AL_APIENTRY*LPALGETDEBUGMESSAGELOGDIRECTEXT)(ALCcontext *context, ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf);
#ifdef AL_ALEXT_PROTOTYPES
void AL_APIENTRY alDebugMessageCallbackEXT(ALDEBUGPROCEXT callback, void *userParam) noexcept;
void AL_APIENTRY alDebugMessageInsertEXT(ALenum source, ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept;
@@ -115,6 +121,12 @@ void AL_APIENTRY alDebugMessageControlEXT(ALenum source, ALenum type, ALenum sev
void AL_APIENTRY alPushDebugGroupEXT(ALenum source, ALuint id, ALsizei length, const ALchar *message) noexcept;
void AL_APIENTRY alPopDebugGroupEXT(void) noexcept;
ALuint AL_APIENTRY alGetDebugMessageLogEXT(ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf) noexcept;
+void AL_APIENTRY alDebugMessageCallbackDirectEXT(ALCcontext *context, ALDEBUGPROCEXT callback, void *userParam) noexcept;
+void AL_APIENTRY alDebugMessageInsertDirectEXT(ALCcontext *context, ALenum source, ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept;
+void AL_APIENTRY alDebugMessageControlDirectEXT(ALCcontext *context, ALenum source, ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable) noexcept;
+void AL_APIENTRY alPushDebugGroupDirectEXT(ALCcontext *context, ALenum source, ALuint id, ALsizei length, const ALchar *message) noexcept;
+void AL_APIENTRY alPopDebugGroupDirectEXT(ALCcontext *context) noexcept;
+ALuint AL_APIENTRY alGetDebugMessageLogDirectEXT(ALCcontext *context, ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf) noexcept;
#endif
#endif