Commit Graph

3811 Commits

Author SHA1 Message Date
fabriceci 8245fd3275
Test, refactor and fix a bug in Basis.get_axis_angle
Backport of #63428.

Co-authored-by: juanFdS <juan9794@gmail.com>
2023-06-07 13:47:47 +02:00
bruvzg 18ee8da7d6
Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-26 20:57:29 +03:00
Rémi Verschelde 1538b870f1
Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
[3.x] Augment the `InputEvent` class with a `CANCELED` state
2023-05-17 18:21:42 +02:00
Rémi Verschelde 4cc2229a52
Merge pull request #72251 from RandomShaper/robust_sync_3.x
[3.x] Backport some multi-threading goodies
2023-05-16 13:16:25 +02:00
Fredia Huya-Kouadio 94d6c3dcc6 Augment the `InputEvent` class with a `CANCELED` state
The `InputEvent` class currently supports the `pressed` and `released` states, which given the binary nature, is represented by a `bool` field.
This commit introduced the `CANCELED` state, which signals that an ongoing input event has been canceled.
To represent all the states, the `InputEventState` enum is added and the `InputEvent` logic is refactored accordingly.
2023-05-12 15:22:54 -07:00
lawnjelly 6f8e632848 Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 09:51:44 +01:00
lawnjelly cc60359a6c MessageQueue - Fix max usage performance statistic
Fixes to keep track of the maximum usage over time, rather than current usage.
2023-04-28 09:02:11 +01:00
Rémi Verschelde 83e91ab818
Merge pull request #76323 from aaronfranke/3.x-t2d-basis-det
[3.x] Expose `determinant` in Transform2D, rename internal method
2023-04-26 12:17:00 +02:00
Fredia Huya-Kouadio 3943de2e6c
Merge pull request #71875 from m4gr3d/editor_optimization_3x
[3.x] Add benchmark logic
2023-04-22 20:18:45 -07:00
Aaron Franke 141783d90f
[3.x] Expose `determinant` in Transform2D, rename internal method 2023-04-22 13:47:47 -05:00
Rémi Verschelde 78739f7266
Merge pull request #76016 from AThousandShips/image_compress
[3.x] Expose more compression formats in Image
2023-04-17 17:25:37 +02:00
Rémi Verschelde 4c5a934408
Merge pull request #68960 from lawnjelly/multirect
Batching - Add MultiRect command
2023-04-17 17:25:20 +02:00
Ninni Pipping 2ca86ef449 [3.x] Expose more compression formats in Image 2023-04-13 09:49:16 +02:00
Rémi Verschelde 632a544c6e
Merge pull request #75527 from lawnjelly/growable_message_queue3
[3.x] Make MessageQueue growable
2023-04-11 22:01:32 +02:00
lawnjelly 5f1e7e6fbc Make MessageQueue growable
* Uses simple vector resizing (po2)
* Uses pair of read and write buffers
2023-03-31 10:07:56 +01:00
Fredia Huya-Kouadio f3cdff46fc Add benchmark logic
Add benchmarking measuring methods to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-03-20 23:29:36 -07:00
Haoyu Qiu 3544cd1dad Add Color + alpha constructor for Color 2023-03-16 14:51:40 +08:00
lawnjelly 910ddd13c4 Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.
2023-03-10 10:58:04 +00:00
Rémi Verschelde 5faa423944
Math: Prevent division by zero in posmod
Fixes #43932.

Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
(cherry picked from commit f011d8ca9c)
2023-03-06 13:48:13 +01:00
lawnjelly 5639be5f4f BVH - fix lockguards for multithread mode
Due to a lack of variable name, the BVH lock guards lifetimes previously did not cover the whole function call.
2023-02-20 15:43:19 +00:00
Pedro J. Estébanez 32a9227f5b Robustify multi-threading primitives 2023-02-17 19:16:10 +01:00
Pedro J. Estébanez 7d135cb962 Fix code style and consistency of RWLock and Semaphore 2023-01-28 14:17:51 +01:00
Hugo Locurcio badcfa2523
Expose `OS.read_string_from_stdin()` to the scripting API
This can be used in scripts to read user input in a blocking manner.

This also removes the unused `block` argument, which is always `true`.
2023-01-16 11:39:53 +01:00
heppocogne aa8d6c5633
Fix `get_path()` is not working when files are opend with `open_compressed`
And also fixed `get_absolute_path()` in the same way

(cherry picked from commit ea11ffc88c)
2023-01-11 14:34:51 +01:00
Rémi Verschelde 1426cd3b3a
One Copyright Update to rule them all
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".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Rémi Verschelde 111de09c03
Merge pull request #71103 from AThousandShips/array_find_fix_3_x
[3.x] Fix for comparisons with PoolArrays
2023-01-09 14:19:18 +01:00
Ninni Pipping f26069e94d Fix for PoolArray comparison 2023-01-09 10:24:08 +01:00
Hugo Locurcio be3017114f Silence `Input.vibrate_handheld()` warning as it's already documented
The warning causes messages to be spammed if you are calling this
method in a game that runs on both desktop and mobile platforms,
unless you guard all calls to `Input.vibrate_handheld()` with
`OS.has_feature("mobile") or OS.has_feature("web")`.

Since the limitation is already documented (and is obvious enough
given the method's name), the warning message is redundant.

(cherry picked from commit 4a991887bf)
2022-12-18 10:32:04 +08:00
kobewi 9499ebecee Add vector value linking
Co-authored-by: redlamp <244062+redlamp@users.noreply.github.com>
(cherry picked from commit 5553e27fe8)
2022-12-18 10:32:04 +08:00
Rémi Verschelde 5d5f0a3958
Merge pull request #69963 from lawnjelly/variant_parser_optional_readahead_3
VariantParser make readahead optional [3.x]
2022-12-12 19:02:17 +01:00
lawnjelly 776c9d0579 VariantParser make readahead optional
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync.

This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-12 15:44:39 +00:00
Rémi Verschelde b0b759e6da
SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` defines
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
  Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
  outside thirdparty code, which we usually don't intend to debug, so it
  seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
  and `release_debug` targets. This used to be set for `release` for all
  platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
  code, which was only implemented for Unix anyway, should have been
  `DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
  target as we don't want OIDN and Embree asserting all over the place.

(cherry picked from commit 26e9145c26)
2022-12-12 14:49:21 +01:00
Rémi Verschelde c404cc0e58
Revert "RID: Change comparison operators to use RID_Data id instead of address" 2022-12-12 09:10:37 +01:00
Pedro J. Estébanez 0873cf0656 Keep a single, portable implementation of `OS::get_processor_count()`
(cherry picked from commit 6bf02c0162)
2022-12-12 14:47:37 +08:00
Emmanouil Papadeas 0754c7ee1a Fix `InputEventAction`'s `is_action` method ignoring `exact_match` parameter
(cherry picked from commit 38b51942d6)
2022-12-12 14:44:20 +08:00
Rémi Verschelde 0cd3db459d
Merge pull request #65079 from lawnjelly/faster_variant_parser
Add readahead to VariantParser
2022-12-05 00:13:52 +01:00
lawnjelly 2ef0052113 Fix array-bounds warning in BVH
Provides a workaround to prevent tripping a compiler warning.

(cherry picked from commit 91d252c697)
2022-12-04 20:00:08 +08:00
voidshine 7284230ebe
Fix MIDI note-on events being converted to note-off events
Update documentation with note about MIDI velocity interpretation

(cherry picked from commit f0f72b3132)
2022-11-30 15:36:03 +01:00
Rémi Verschelde 9a340a2868
Project Manager: Fix hacky code for project rename
Instantiating a new ProjectSettings is *not* the way to go.
ConfigFile works just fine to read/change a single value.

Fixes memory leaks as the instantiated ProjectSettings was never freed.
Forbid doing this to prevent such problems.

Fixes #25661.

(cherry picked from commit f21f75eb6f)
2022-11-30 15:34:27 +01:00
dzil123 d7f6cc26d2
Fix Image::bump_map_to_normal_map incorrectly keeping mipmap flag
(cherry picked from commit 1fa8b3dd42)
2022-11-30 15:34:27 +01:00
Rafał Mikrut e359ba3733
Fix exporting big templates
(cherry picked from commit 86fa3ba560)
2022-11-30 15:34:26 +01:00
lawnjelly 29d4d4105e Add readahead to VariantParser
Adds a readahead buffer to VariantParser, to prevent large numbers of freads for single bytes, which is inefficient.
2022-11-24 15:58:23 +00:00
Rémi Verschelde 4769aa4499
Merge pull request #64564 from timothyqiu/word-wrap-3.x
[3.x] Fix `String::word_wrap()` for long words
2022-11-24 16:06:52 +01:00
Rémi Verschelde 08a6aab661
Merge pull request #68735 from dzil123/v3_pckpacker_error_spam
[3.x] Fix PCKPacker error spam
2022-11-19 00:43:22 +01:00
dzil123 b3812750da [3.x] PCKPacker Fix error spam 2022-11-16 06:52:47 -08:00
Nonunknown eb5b297fef
add ability to pick random value from array
(cherry picked from commit 9f4dbf415d)

Co-authored-by: BleedingXiko <66162192+BleedingXiko@users.noreply.github.com>
2022-11-14 19:11:41 +01:00
Rémi Verschelde 64635af7ff
Merge pull request #67360 from jordo/PR-expose-property-hints
expose additional global enums in 3.x which are available in master
2022-10-31 12:25:04 +01:00
Rémi Verschelde 20ce0284cf
Merge pull request #67313 from Mickeon/3.x-rename-params
[3.x] Rename `set_indexed` & `get_child`'s params to be clearer
2022-10-31 12:24:58 +01:00
bruvzg 987723b386
[iOS] Fix build with warnings=extra. 2022-10-31 11:59:31 +02:00
Fredia Huya-Kouadio be4b07c3e4 Add `double_tap` attribute to `InputEventScreenTouch`
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-20 11:56:11 -07:00