Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid casting an integer literal | Chris Robinson | 2023-09-22 | 1 | -1/+1 |
| | |||||
* | Allow querying AL_EFFECTSLOT_EFFECT | Chris Robinson | 2023-08-25 | 1 | -4/+10 |
| | | | | | | | This doesn't make much sense since the effect associated with the ID may be modified and not represent the effect being played, or was even deleted and isn't a valid effect ID, but Generic Software allows querying it so it should be queryable for compatibility if nothing else. | ||||
* | Add AL_EXT_debug functions to set/get object names | Chris Robinson | 2023-08-11 | 1 | -0/+13 |
| | |||||
* | Declare functions closer to where they're needed | Chris Robinson | 2023-07-26 | 1 | -12/+11 |
| | | | | | This provides better code locality when calling implicit context functions that call their direct context variants. | ||||
* | Make the API functions noexcept | Chris Robinson | 2023-05-22 | 1 | -12/+4 |
| | | | | | | | | | | | Only relevant for C++, but these functions can't throw as it's a C-based API. Letting the compiler know that helps improve code generation. Extension callbacks must also not let exceptions leave the callback, or else Bad Things can happen. The macro AL_DISABLE_NOEXCEPT may be defined before including the headers to not mark functions as noexcept, but this should only be done if the caller can't otherwise be fixed. | ||||
* | Fix linkage definitions | Chris Robinson | 2023-05-14 | 1 | -11/+11 |
| | |||||
* | Don't check for a null context in direct functions | Chris Robinson | 2023-05-14 | 1 | -36/+3 |
| | |||||
* | Implement direct functions for EFX | Chris Robinson | 2023-05-14 | 1 | -84/+85 |
| | |||||
* | Avoid using al::vector unnecessarily | Chris Robinson | 2023-05-12 | 1 | -4/+4 |
| | |||||
* | Use some more standard functions | Chris Robinson | 2023-05-05 | 1 | -5/+5 |
| | |||||
* | Don't try to access null pointers | Chris Robinson | 2023-04-28 | 1 | -0/+3 |
| | |||||
* | Simplify effect state buffer handling some | Chris Robinson | 2023-04-04 | 1 | -9/+2 |
| | |||||
* | Don't set a default EAX version for fx slots | Chris Robinson | 2023-03-11 | 1 | -1/+0 |
| | |||||
* | Update the EAX version after setting fx slot properties | Chris Robinson | 2023-03-11 | 1 | -7/+10 |
| | |||||
* | Don't commit EAX updates in applyAllUpdates | Chris Robinson | 2023-03-11 | 1 | -4/+0 |
| | | | | | | | | | | To avoid alcProcessContext causing deferred EAX properties to be committed. This simplifies updates when EAX has been initialized, but never or rarely used. Committing now always occurs in EAXSet when the property is non-deferred, updating the OpenAL object(s) with it (with OpenAL's updates then being applied based on the context's defer state). | ||||
* | Convert the EAX Compressor effect | Chris Robinson | 2023-03-10 | 1 | -1/+1 |
| | | | | And combine some type checks. | ||||
* | Convert EAX chorus and flanger effects | Chris Robinson | 2023-03-10 | 1 | -1/+1 |
| | |||||
* | Rework EAX effect handling | Chris Robinson | 2023-03-10 | 1 | -97/+45 |
| | | | | | | | Allocate a base EaxEffect object once for all effect types, instead of reallocating different derived types on effect changes. The reverb and null effects have been converted to the new interface, the others are currently broken/unsupported, but will be restored shortly. | ||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 1 | -56/+56 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Avoid using a macro to set a context error and return | Chris Robinson | 2022-12-24 | 1 | -21/+21 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 1 | -56/+56 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 1 | -56/+56 |
| | |||||
* | AllocEffectSlot can't fail | Chris Robinson | 2022-07-29 | 1 | -17/+3 |
| | |||||
* | Use an intrusive_ptr to hold on to the EffectState | Chris Robinson | 2022-07-29 | 1 | -5/+3 |
| | |||||
* | Mark the EffectSlot in use after getting one | Chris Robinson | 2022-07-26 | 1 | -0/+1 |
| | |||||
* | [EAX_SOURCE] Fix source's occlusion and exclusion contribution | Boris I. Bendovsky | 2022-07-17 | 1 | -2/+15 |
| | | | | 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 flags | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+1 |
| | |||||
* | [EAX_FX_SLOT] Fix defaults for current properties | Boris I. Bendovsky | 2022-07-17 | 1 | -14/+40 |
| | |||||
* | [EAX_FX_SLOT] Fix EAXGet for EAX5 | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+1 |
| | |||||
* | Don't pass an EaxCall to initialize_fx_slots | Chris Robinson | 2022-07-15 | 1 | -10/+2 |
| | |||||
* | Allocate EffectSlots in clusters | Chris Robinson | 2022-07-15 | 1 | -4/+4 |
| | |||||
* | Dynamically allocate EffectSlot objects | Chris Robinson | 2022-07-15 | 1 | -9/+12 |
| | |||||
* | Don't track dirty flags per EAX version | Chris Robinson | 2022-07-13 | 1 | -39/+29 |
| | | | | | 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] Use separate FX slot state for each version (#730) | Boris I. Bendovsky | 2022-07-12 | 1 | -510/+328 |
| | | | | | | | * [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 | ||||
* | [EAX] Add separate effect state for each version (#705) | Boris I. Bendovsky | 2022-05-24 | 1 | -110/+84 |
| | | | | | * [EAX] Add separate effect state for each version * [EAX] Don't use EAX call as data member | ||||
* | Move EAX files to their own sub-directory | Chris Robinson | 2022-05-16 | 1 | -2/+2 |
| | |||||
* | Replace a few asserts with actual checks or ASSUME() | Chris Robinson | 2022-03-30 | 1 | -1/+1 |
| | |||||
* | Inline a couple dispatch calls | Chris Robinson | 2022-03-26 | 1 | -7/+0 |
| | |||||
* | Avoid a stateful unique_ptr deleter | Chris Robinson | 2022-03-05 | 1 | -12/+3 |
| | |||||
* | Simplify committing EAX properties | Chris Robinson | 2022-03-05 | 1 | -22/+6 |
| | | | | | | 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. | ||||
* | Ensure deferred EAX effect properties are committed | Chris Robinson | 2022-03-04 | 1 | -21/+37 |
| | |||||
* | Avoid more unnecessary atomics | Chris Robinson | 2022-02-13 | 1 | -12/+10 |
| | |||||
* | Fix sign of ALeffectslot::eax_get_eax_default_lock's return type | Chris Robinson | 2022-02-08 | 1 | -1/+1 |
| | |||||
* | EAX various fixes (#657) | Boris I. Bendovsky | 2022-02-08 | 1 | -47/+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 using ALeffect to manage EaxEffect objects | Chris Robinson | 2022-02-07 | 1 | -42/+11 |
| | | | | Effect slots can just use its EaxEffect directly. | ||||
* | Don't pass an ALeffect to ALeffectslot::initEffect | Chris Robinson | 2022-02-07 | 1 | -10/+15 |
| | |||||
* | Update the effectslot props with a function instead of a macro | Chris Robinson | 2022-02-06 | 1 | -27/+13 |
| | |||||
* | Move ALSOFT_EAX definition to config.h | Chris Robinson | 2022-01-30 | 1 | -5/+3 |
| | | | | And disable it by default for non-Windows targets | ||||
* | Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632) | Boris I. Bendovsky | 2022-01-30 | 1 | -0/+834 |
| | | | | | | | | | | | | | | | * 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 | ||||
* | Make a construct_at method amd use it | Chris Robinson | 2021-10-08 | 1 | -1/+1 |
| |