aboutsummaryrefslogtreecommitdiffstats
path: root/alc/context.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Ensure the EAX functions are suitably aligned on 32-bitChris Robinson2022-03-161-2/+2
|
* Simplify committing EAX propertiesChris Robinson2022-03-051-18/+5
| | | | | | Based on DirectSound's EAX behavior, committing any EAX property commits *all* deferred property changes, not just the object being changed. So applying EAX changes can be handled in one place.
* Fix applying the EAX context AirAbsorptionHF propertyChris Robinson2022-03-021-1/+1
|
* Remove AL_SOFTX_filter_gain_exChris Robinson2022-02-281-1/+0
| | | | | | It was only added to try to help DSOAL, and it's not clear if it's even necessary. But with native EAX API support, it certainly isn't necessary anymore.
* Use a simpler loop to enumerate sourcesChris Robinson2022-02-211-160/+17
|
* Implement EAX v1.0 (#664)Boris I. Bendovsky2022-02-211-10/+10
|
* Avoid a variable limit on EAX filtersChris Robinson2022-02-181-6/+0
| | | | | | I'll assume for now that the limits for the EAX properties will keep the filter gain from getting out of hand. The filter's gainhf is relative to the gain and is limited to 0dB max.
* Access the proper FX slot indexChris Robinson2022-02-141-3/+5
|
* Commit EAX context properties when a context stops deferringChris Robinson2022-02-131-0/+3
|
* Force EAX calls to defer when the AL context is deferringChris Robinson2022-02-131-13/+12
|
* Avoid more unnecessary atomicsChris Robinson2022-02-131-6/+5
|
* Commit source EAX properties when not deferringChris Robinson2022-02-131-7/+0
| | | | And make sure they get committed when resuming processing.
* Inline some more simple gettersChris Robinson2022-02-081-27/+0
|
* Handle AirAbsorptionGainHF as a native context propertyChris Robinson2022-02-081-7/+3
|
* Combine listener and context updatesChris Robinson2022-02-081-5/+1
|
* Apply updates for EAX context propertiesChris Robinson2022-02-081-22/+35
|
* Actually defer EAXCONTEXT_ALLPARAMETERS propertiesChris Robinson2022-02-081-19/+19
|
* Ensure sources update together from EAX commitsChris Robinson2022-02-081-5/+8
| | | | ... when a listener property change forces a commit.
* Hold mPropLock when deferring updatesChris Robinson2022-02-081-1/+0
|
* Inline ALCcontext::has_eaxChris Robinson2022-02-081-5/+0
|
* More accurately detect the EAX speaker configChris Robinson2022-02-081-9/+21
|
* DisabledEffects won't change so EAX can just check it onceChris Robinson2022-02-081-17/+1
|
* EAX various fixes (#657)Boris I. Bendovsky2022-02-081-20/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [EAX] Fix effect GUID validation Only NULL and REVERB was valid. * [EAX] Fix default FX slot flags EAX4 and EAX5 both sets to ENVIRONMENT. * [EAX] Set default values for legacy FX slots in the initialization * [EAX] Fix FX slot locking policy Fail on attempt to load an effect or change a lock for EAX4 "set" call. Unlock legacy FX slots on any EAX5 call. * [EAX] Allow DEFER flag for "get" calls. * [EAX] Make speaker configuration read-only * [EAX] Initialize speaker configuration * [EAX] Commit EAX source on a 3D source parameter call Reference: EAX 4.0 Programmer's Guide * [EAX] Commit EAX source on a 3D listener parameter call Reference: EAX 4.0 Programmer's Guide * [EAX] Commit source when it begins to play Reference: EAX 4.0 Programmer's Guide
* Avoid a proxy ALfilter object for EAX source propertiesChris Robinson2022-02-071-28/+1
|
* [EAX] Add primary extension name for EAX v2.0 (#653)Boris I. Bendovsky2022-02-011-2/+6
|
* Move ALSOFT_EAX definition to config.hChris Robinson2022-01-301-7/+5
| | | | And disable it by default for non-Windows targets
* Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632)Boris I. Bendovsky2022-01-301-0/+1228
| | | | | | | | | | | | | | | * Add EAX extensions (EAX 2.0-5.0, X-RAM) * Comment out C++17 leftovers * Remove everything related to patching * Update alsoftrc.sample * Rewrite integration * Fix GCC compilation under Linux * Always reset EAX effect properties when loading it into FX slot
* Work around a MinGW thread_local bugChris Robinson2021-12-201-0/+7
| | | | | | | | | | MinGW-w64 generates bad code when accessing extern thread_local objects. Wrapper functions are used to ensure it only accesses them from the same place they're defined. This unfortunately adds a bit of overhead for what should be a relatively simple thing. These functions are inlined for non-MinGW targets, avoiding the overhead on non-affected targets.
* Move some more context functions to the proper sourceChris Robinson2021-12-171-76/+0
|
* Move the effects base and effectslot to coreChris Robinson2021-12-171-1/+1
|
* Move some ContextBase function definitions to the right placeChris Robinson2021-12-171-64/+0
|
* Remove an unnecessary parameterChris Robinson2021-12-171-14/+10
|
* Allocate voice properties in clustersChris Robinson2021-12-171-10/+19
|
* Handle the listener position separate from the rotation matrixChris Robinson2021-05-251-0/+1
| | | | | | It's too unstable with larger vectors. Even when the source and listener positions are the same, floating point precision can cause noticeable rounding errors.
* Rename alcontext.h and move some functions to context.cppChris Robinson2021-04-271-0/+387