diff options
Diffstat (limited to 'al')
-rw-r--r-- | al/auxeffectslot.cpp | 4 | ||||
-rw-r--r-- | al/auxeffectslot.h | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/al/auxeffectslot.cpp b/al/auxeffectslot.cpp index 74005aaa..df04f430 100644 --- a/al/auxeffectslot.cpp +++ b/al/auxeffectslot.cpp @@ -216,7 +216,7 @@ ALeffectslot *AllocEffectSlot(ALCcontext *context) context->setError(err, "Effect slot object initialization failed"); return nullptr; } - aluInitEffectPanning(slot, context->mDevice.get()); + aluInitEffectPanning(slot, context); /* Add 1 to avoid source ID 0. */ slot->id = ((lidx<<6) | slidx) + 1; @@ -822,6 +822,8 @@ ALeffectslot::~ALeffectslot() delete props; } + if(mWetBuffer) + mWetBuffer->mInUse = false; if(Params.mEffectState) Params.mEffectState->release(); } diff --git a/al/auxeffectslot.h b/al/auxeffectslot.h index fdab99ef..03ba034a 100644 --- a/al/auxeffectslot.h +++ b/al/auxeffectslot.h @@ -18,6 +18,7 @@ struct ALbuffer; struct ALeffect; struct ALeffectslot; +struct WetBuffer; using ALeffectslotArray = al::FlexArray<ALeffectslot*>; @@ -87,7 +88,7 @@ struct ALeffectslot { ALuint id{}; /* Mixing buffer used by the Wet mix. */ - al::vector<FloatBufferLine, 16> MixBuffer; + WetBuffer *mWetBuffer{nullptr}; /* Wet buffer configuration is ACN channel order with N3D scaling. * Consequently, effects that only want to work with mono input can use |