aboutsummaryrefslogtreecommitdiffstats
path: root/al/listener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'al/listener.cpp')
-rw-r--r--al/listener.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/al/listener.cpp b/al/listener.cpp
index 2a9b77f3..2a9f2cb3 100644
--- a/al/listener.cpp
+++ b/al/listener.cpp
@@ -48,33 +48,24 @@ inline void UpdateProps(ALCcontext *context)
context->mPropsDirty = true;
}
-#ifdef ALSOFT_EAX
inline void CommitAndUpdateProps(ALCcontext *context)
{
if(!context->mDeferUpdates)
{
- if(context->has_eax())
+#ifdef ALSOFT_EAX
+ if(context->eax_needs_commit())
{
- context->mHoldUpdates.store(true, std::memory_order_release);
- while((context->mUpdateCount.load(std::memory_order_acquire)&1) != 0) {
- /* busy-wait */
- }
-
- context->eax_commit_and_update_sources();
+ context->mPropsDirty = true;
+ context->applyAllUpdates();
+ return;
}
+#endif
UpdateContextProps(context);
- context->mHoldUpdates.store(false, std::memory_order_release);
return;
}
context->mPropsDirty = true;
}
-#else
-
-inline void CommitAndUpdateProps(ALCcontext *context)
-{ UpdateProps(context); }
-#endif
-
} // namespace
AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value)