aboutsummaryrefslogtreecommitdiffstats
path: root/al
Commit message (Collapse)AuthorAgeFilesLines
* Add functions to start sources at a particular device timeChris Robinson2022-11-031-161/+234
| | | | | | | | This starts a source at a particular device clock time, rounded to the nearest sample (really, 4th sample for SIMD reasons), allowing to start a sound at a particular point in the output instead of the next update. Unlike using negative offsets, this is not affected by pitch/velocity.
* Add the ability to start a voice at a particular timeChris Robinson2022-11-031-0/+2
|
* int64_t max can't fit into a double without narrowingChris Robinson2022-11-021-6/+0
|
* Handle negative voice positionsChris Robinson2022-11-021-36/+66
| | | | | | This allows a voice/source to start with a delay, more accurately than simply waiting to call alSourcePlay. The delay is affected by pitch and velocity, making it useful to simulate distant sounds that take time to be heard.
* Fixed bug and possible overflow type (#771)Herman Semenov2022-09-231-1/+1
|
* Clear the buffer from X-RAM before updating its sizeChris Robinson2022-08-051-0/+3
|
* AllocEffectSlot can't failChris Robinson2022-07-291-17/+3
|
* Use an intrusive_ptr to hold on to the EffectStateChris Robinson2022-07-291-5/+3
|
* Mark the EffectSlot in use after getting oneChris Robinson2022-07-261-0/+1
|
* Remove a redundant checkChris Robinson2022-07-171-3/+0
| | | | | | If src_occlusion_mb is 0, it'll be multiplied with whatever the ratio ends up being, which will result in 0 anyway. A number of uses also already check the occlusion value before calling the method.
* Fix parameter signednessChris Robinson2022-07-172-2/+2
|
* Fix possible C2084 compiler error (#735)Edoardo Lolletti2022-07-171-0/+3
| | | | | | | * Fix possible C2084 compiler error Guiddef.h uses a separate header guard to define the GUID operators, in the current codebase this won't cause any issue, but i got such error while fiddling a bit with the program and including something that ended up including all the various windows headers, that ended up including Guiddef.h, causing the error as by not finding the macro declared, it ended up declaring the inline operators as well. * Update api.h
* [EAX_SOURCE] Fix source's occlusion and exclusion contributionBoris I. Bendovsky2022-07-173-19/+62
| | | | Source's oclussion and exclusion properties should be taken into account only for listener's environment (see p. 16, p. 56, pp. 62-63 and p. 64 of "EAX® 4.0 Programmer’s Guide").
* [EAX_FX_SLOT] Fix setting EAX5 flagsBoris I. Bendovsky2022-07-171-1/+1
|
* [EAX_FX_SLOT] Fix defaults for current propertiesBoris I. Bendovsky2022-07-172-18/+45
|
* [EAX_SOURCE] Skip occlusion calculation if occlusion property is zeroBoris I. Bendovsky2022-07-171-3/+7
|
* [EAX_SOURCE] Fix Room and RoomHF contributionBoris I. Bendovsky2022-07-171-2/+3
| | | | Those properties should be taken into account only for environmental effect slot (see pp. 60-61 of "EAX® 4.0 Programmer’s Guide").
* [EAX_SOURCE] Fix getting active FX slot IDsBoris I. Bendovsky2022-07-172-2/+12
|
* [EAX_FX_SLOT] Fix slot's occlusion contributionBoris I. Bendovsky2022-07-171-1/+3
|
* [EAX_CALL] Clear defer flag for immediate-only propertiesBoris I. Bendovsky2022-07-171-1/+22
| | | | 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.
* [EAX_FX_SLOT] Mark sources as changed instead of commiting them to catch up ↵Boris I. Bendovsky2022-07-171-0/+1
| | | | with changes in FX slot
* [EAX_FX_SLOT] Fix EAXGet for EAX5Boris I. Bendovsky2022-07-171-1/+1
|
* Don't pass an EaxCall to initialize_fx_slotsChris Robinson2022-07-154-29/+11
|
* Allocate EffectSlots in clustersChris Robinson2022-07-152-5/+5
|
* Dynamically allocate EffectSlot objectsChris Robinson2022-07-153-12/+15
|
* Make a member function staticChris Robinson2022-07-131-1/+1
|
* Don't track dirty flags per EAX versionChris Robinson2022-07-132-47/+35
| | | | | Only the current version's flags are used, and they're all reset when changing versions, making it unnecessary to track non-current version flags.
* [EAX] Add separate context state for each version (#731)Boris I. Bendovsky2022-07-132-15/+15
|
* [EAX] Use separate FX slot state for each version (#730)Boris I. Bendovsky2022-07-1221-737/+676
| | | | | | | * [EAX] Use separate FX slot state for each version [EAX] Don't defer FX slot properties * [EAX_FXSLOT] Use mPropsDirty to defer update [EAX_CONTEXT] Commit all updates on first initialization
* Don't always activate the EAX primary effect slot for sourcesChris Robinson2022-07-061-14/+22
| | | | | The context's primary effect slot should only be considered when the source's active slot IDs include the primary effect slot.
* Remove an unused structChris Robinson2022-07-052-3/+2
| | | | And minor formatting cleanup
* Avoid separate lines for logging exceptionsChris Robinson2022-07-051-14/+5
|
* Don't change the EAX version when getting a reverb propertyChris Robinson2022-06-191-11/+7
|
* Combine multiple individual flagsChris Robinson2022-06-193-105/+67
|
* Track EAX1 source changesChris Robinson2022-06-193-13/+7
| | | | | | Even though it's only a single value, this allows for not having to explicitly track version changes, since the version being changed to will always have a property change, implicitly marking an EAX update/commit for the source.
* Remove some unnecessary comparison operatorsChris Robinson2022-06-182-352/+72
|
* Avoid changing the EAX version on failureChris Robinson2022-06-181-3/+2
|
* Avoid more struct compared for reverb EAX updatesChris Robinson2022-06-181-7/+18
|
* Fix inverted checksChris Robinson2022-06-181-4/+4
|
* Don't mark the EAX version changed when getting propertiesChris Robinson2022-06-181-4/+5
|
* Avoid a full struct compare to check for changesChris Robinson2022-06-182-10/+19
|
* Rename a parameter to avoid a shadowing warningChris Robinson2022-06-181-24/+18
|
* Fix checking if the primary effect slot changedChris Robinson2022-06-182-7/+2
|
* [EAX] Add separate source state for each version (#720)Boris I. Bendovsky2022-06-186-2566/+1656
|
* [EAX] Add separate effect state for each version (#705)Boris I. Bendovsky2022-05-2428-6483/+4091
| | | | | * [EAX] Add separate effect state for each version * [EAX] Don't use EAX call as data member
* Move EAX files to their own sub-directoryChris Robinson2022-05-1641-67/+66
|
* Properly set the air absorption gain baseChris Robinson2022-05-101-0/+1
|
* Silence reverb with EAX by defaultChris Robinson2022-04-161-0/+6
|
* Remove the unused flags parameter from alBufferCallbackSOFTChris Robinson2022-04-011-3/+1
|
* Avoid some explicit extern "C"s on function definitionsChris Robinson2022-03-312-4/+4
|