GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
Update servers/audio_server.cpp
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Apply suggestions from code review
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
Fix a few lines for new member names
Add command-line argument `--debug-mute-audio`, and pass it to game if started with mute enabled
Apply suggestions from code review
Co-authored-by: arkology <43543909+arkology@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Fix icon for svgo
- Tweak property hint ranges for some networking settings to ensure
the minimum values don't break the debugger entirely.
- Ensure shader time rollover is set to at least 1, as 0 causes a division by
zero to occur.
All relevant project settings are now covered by a range hint.
Remove default value from `volume_linear` property documentation
Remove `volume_linear` internal property from `AudioBusLayout`
Update doc/classes/AudioEffectAmplify.xml [no ci]
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Make documentation more concise [no ci]
The project setting does not reflect CLI argument overrides
(including `--headless` which sets the audio driver to `Dummy`),
so it can't be reliably used to detect which audio driver is
actually being used at run-time.
- Drop STL copy in favor of old-school for loops.
- Be explicit about loads and stores to atomic value. (This also fixes an error in certain compiler toolchains.)
project settings.
We'll default to a sensible value in the case that a user has
somehow managed to modify the configuration file incorrectly.
Closes 69819
- Rename all instances of `capture_start()` and `capture_end()` to their new
names. Fixes#72892.
- More internal renames to match what was started in #69120.
- Use `override` consistently so that such refactoring bugs can be caught.
- Harmonize the order of definition of the overridden virtual methods in each
audio driver.
- Harmonize prototype for `set_output_device` and `set_input_device`.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Change instances of audio properties 'device' to 'output_device',
and instances of audio properties 'capture_device' to 'input_device',
as well as their subsequent getter & setter functions.
Update the docs to reflect these changes, as well as the
3-to-4 converter for GDScript and CSharp to make proper
conversions (only exception is 'device' since that name
is too vague and might replace non-AudioServer related
instances, such as user comments and variables).
This does not change internal references to references like
'Render Client' and 'Capture Client' in WASAPI; such is outside the
scope of this commit. This also does not change ALSA's references,
considering that it uses 'device' to mean input and output
interchangeably.
Other references are changed, however where applicable,
to be consistent with the new AudioServer methods and property
names.
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".