aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2022-02-08 20:43:05 -0800
committerChris Robinson <[email protected]>2022-02-08 20:43:05 -0800
commit256ea81dbe07f02d008908c90b99896f8eaaf2a5 (patch)
treee58348ee7808310f7c231934b91ad399c3af4d62 /alc/alu.cpp
parentde87cc98d5eef40eeb565b781ac90c1c6f55b42e (diff)
Combine listener and context updates
Diffstat (limited to 'alc/alu.cpp')
-rw-r--r--alc/alu.cpp25
1 files changed, 7 insertions, 18 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index 62fc23dd..b8fd85ea 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -375,22 +375,6 @@ bool CalcContextParams(ContextBase *ctx)
ContextProps *props{ctx->mParams.ContextUpdate.exchange(nullptr, std::memory_order_acq_rel)};
if(!props) return false;
- ctx->mParams.DopplerFactor = props->DopplerFactor;
- ctx->mParams.SpeedOfSound = props->SpeedOfSound * props->DopplerVelocity;
-
- ctx->mParams.SourceDistanceModel = props->SourceDistanceModel;
- ctx->mParams.mDistanceModel = props->mDistanceModel;
-
- AtomicReplaceHead(ctx->mFreeContextProps, props);
- return true;
-}
-
-bool CalcListenerParams(ContextBase *ctx)
-{
- ListenerProps *props{ctx->mParams.ListenerUpdate.exchange(nullptr,
- std::memory_order_acq_rel)};
- if(!props) return false;
-
const alu::Vector pos{props->Position[0], props->Position[1], props->Position[2], 1.0f};
ctx->mParams.Position = pos;
@@ -416,7 +400,13 @@ bool CalcListenerParams(ContextBase *ctx)
ctx->mParams.Gain = props->Gain * ctx->mGainBoost;
ctx->mParams.MetersPerUnit = props->MetersPerUnit;
- AtomicReplaceHead(ctx->mFreeListenerProps, props);
+ ctx->mParams.DopplerFactor = props->DopplerFactor;
+ ctx->mParams.SpeedOfSound = props->SpeedOfSound * props->DopplerVelocity;
+
+ ctx->mParams.SourceDistanceModel = props->SourceDistanceModel;
+ ctx->mParams.mDistanceModel = props->mDistanceModel;
+
+ AtomicReplaceHead(ctx->mFreeContextProps, props);
return true;
}
@@ -1691,7 +1681,6 @@ void ProcessParamUpdates(ContextBase *ctx, const EffectSlotArray &slots,
if LIKELY(!ctx->mHoldUpdates.load(std::memory_order_acquire))
{
bool force{CalcContextParams(ctx)};
- force |= CalcListenerParams(ctx);
auto sorted_slots = const_cast<EffectSlot**>(slots.data() + slots.size());
for(EffectSlot *slot : slots)
force |= CalcEffectSlotParams(slot, sorted_slots, ctx);