diff options
author | Boris I. Bendovsky <[email protected]> | 2022-07-14 20:58:49 +0300 |
---|---|---|
committer | Boris I. Bendovsky <[email protected]> | 2022-07-17 20:59:04 +0300 |
commit | 8de2a560688fb9da8a9d7be4344b4fc5245a2da5 (patch) | |
tree | ea4350c9376946799904d11086ff3a3ad5f94313 /al/eax/call.cpp | |
parent | c88c5e6189fda16bdc0f9d87d64f5e11a8f1a40a (diff) |
[EAX_CALL] Clear defer flag for immediate-only properties
EAX allow to set "defer" flag on immediate-only properties. If we don't clear our flag then "applyAllUpdates" in EAX context won't be called.
Diffstat (limited to 'al/eax/call.cpp')
-rw-r--r-- | al/eax/call.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/al/eax/call.cpp b/al/eax/call.cpp index f779c2b0..abb27933 100644 --- a/al/eax/call.cpp +++ b/al/eax/call.cpp @@ -151,7 +151,28 @@ EaxCall::EaxCall( fail("EAX version out of range."); } - if(!(property_id&deferred_flag)) + switch(property_id) + { + case EAXCONTEXT_LASTERROR: + case EAXCONTEXT_SPEAKERCONFIG: + case EAXCONTEXT_EAXSESSION: + case EAXFXSLOT_NONE: + case EAXFXSLOT_ALLPARAMETERS: + case EAXFXSLOT_LOADEFFECT: + case EAXFXSLOT_VOLUME: + case EAXFXSLOT_LOCK: + case EAXFXSLOT_FLAGS: + case EAXFXSLOT_OCCLUSION: + case EAXFXSLOT_OCCLUSIONLFRATIO: + // EAX allow to set "defer" flag on immediate-only properties. + // If we don't clear our flag then "applyAllUpdates" in EAX context won't be called. + is_deferred_ = false; + break; + default: + break; + } + + if(!is_deferred_) { if(property_set_id_ != EaxCallPropertySetId::fx_slot && property_id_ != 0) { |