Commit Graph

33014 Commits

Author SHA1 Message Date
Rémi Verschelde
310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Rémi Verschelde
7eb4e6415d
Merge pull request #43663 from EricEzaM/PR/INP4-dehardcode_scene_shortcuts
Remove hardcoded shortcuts from /scene and instead use the input action system to allow them to be customised.
2021-02-18 19:37:28 +01:00
Pedro J. Estébanez
8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
Eric M
49714b0963 Removed hardcoded shortcuts from /scene and converted to input actions
This removes hardcoded actions from things like LineEdit and TextEdit.

Previously, things like copy, paste, etc were all hardcoded to Ctrl+C, Ctrl+V, etc. They could not be changed. This allows the possibility of them being changed, by making them use the action map. This has the added benefit of greatly simplifying the input handling logic in those controls. The logic which was previously in a huge and hard to follow switch statement has been extracted to individual methods.
2021-02-18 16:22:51 +01:00
Eric M
074f53563d Added ability to override built-in actions for the editor
This adds the ability to add overrides for built-in actions (i.e. ui_*) in the editor. Also added a number of additional built-in actions for various text-related actions, gui-generic actions (like copy and paste) and graph-related actions (duplicate nodes), etc. Moved the definition of input actions to input_map, rather than in project_settings so the editor can make use of these actions as well.
2021-02-18 16:22:50 +01:00
Eric M
ca1abc7352 Added convenience create_reference methods for Key and JoyButton inputs 2021-02-18 16:22:39 +01:00
Rémi Verschelde
5c2fe970b8
Merge pull request #46127 from reduz/reorganize-project-settings
Reorganize Project Settings
2021-02-18 15:58:31 +01:00
reduz
64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Rémi Verschelde
8eaea1db53
Merge pull request #45032 from neikeq/classdb-tests-for-44856
Add ClassDB tests to look for core API deps on editor API
2021-02-18 15:16:52 +01:00
Rémi Verschelde
72f74eb29e
Merge pull request #45943 from KoBeWi/YEEEET
Remove Merge From Scene
2021-02-18 15:15:19 +01:00
Rémi Verschelde
82033bf9b4
Merge pull request #46170 from gongpha/jr-_-avoid-get_tree-when-flying-colorpicker-master
Avoid signal methods in ColorPicker to access the tree when it isn't in the tree
2021-02-18 15:03:11 +01:00
Rémi Verschelde
a67a6a5a18
Merge pull request #46171 from akien-mga/scons-editor-always-freetype
SCons: Make freetype module a mandatory editor dependency
2021-02-18 14:58:59 +01:00
Rémi Verschelde
ef63b29da7
Merge pull request #46166 from angad-k/fix-mesh-instance3d-crash
add null check in MeshInstance::_mesh_changed()
2021-02-18 14:58:20 +01:00
Kongfa Waroros
7c6646c8ac Avoid signal methods in ColorPicker to access the tree when it isn't in the tree 2021-02-18 20:30:22 +07:00
Rémi Verschelde
6b13f33fb0
SCons: Make freetype module a mandatory editor dependency
Fixes #28650.
2021-02-18 14:18:06 +01:00
Rémi Verschelde
5529fe5680
Merge pull request #46148 from nekomatata/fix-test-body-motion
Fix test_body_motion recovery and rest info
2021-02-18 14:15:30 +01:00
Rémi Verschelde
0dac719631
Merge pull request #46169 from m4gr3d/follow_up_splash_handling_master
Follow up on bootsplash handling on Android
2021-02-18 13:37:27 +01:00
Rémi Verschelde
4fe0f1161e
Merge pull request #46159 from gongpha/jr-_-fix-function-binding
Fixes function bindings
2021-02-18 13:25:09 +01:00
Rémi Verschelde
a748defeea
Merge pull request #46156 from Vignesh1-art/patch-1
Fixed Invalid function bindings #46135
2021-02-18 13:23:08 +01:00
Angad Kambli
6b602d35f3 add null check in MeshInstance::_mesh_changed() 2021-02-18 16:51:39 +05:30
Fredia Huya-Kouadio
526b99ee36 Disable engine splash logic on Android; this is now handled by the Android theme api.
In addition, add support for scaling and applying filter to the splash screen on Android.
One limitation of the api being used is that the splash screen aspect ratio is not maintained when it's scaled up.
2021-02-18 03:20:49 -08:00
Rémi Verschelde
bdf3c578ff
Merge pull request #45950 from KoBeWi/naughty_resources
Fix internal resource detecting when pasting nodes
2021-02-18 12:05:54 +01:00
Rémi Verschelde
8870f43d74
Merge pull request #46161 from akien-mga/linux-joypads-udev-fallback
Linux: Fix fallback logic when udev fails creating a context
2021-02-18 11:30:12 +01:00
Rémi Verschelde
65a75dc5f4
Merge pull request #46150 from m4gr3d/update_ndk_fetcher_logic
Override `ANDROID_NDK_ROOT` based on the project ndk version.
2021-02-18 11:03:16 +01:00
Rémi Verschelde
e26a1f807b
Linux: Fix fallback logic when udev fails creating a context
Thanks to Noshyaar for pointing out the bug.
2021-02-18 10:28:37 +01:00
Rémi Verschelde
9d84e3b395
Merge pull request #46151 from ellenhp/fix_spatial_player_play
Fix a pop on play() in AudioStreamPlayer2D and 3D
2021-02-18 10:12:13 +01:00
Kongfa Waroros
efc1eba974 Fixes function bindings 2021-02-18 14:47:06 +07:00
Vignesh1-art
a5d931033e
Fixed Invalid function bindings #46135
Fixed  GDScriptLanguageProtocol::notify_client - have 3 arguments, but only 2 are binded
2021-02-18 11:12:54 +05:30
Fredia Huya-Kouadio
edeca16fb6 Override ANDROID_NDK_ROOT based on the project ndk version.
This helps resolve issues where the project ndk version differs from the one pointed by the `ANDROID_NDK_ROOT` environment variable (if it exists).
2021-02-17 19:11:05 -08:00
Ellen Poe
5e1442ad55 Fix pops in play() of both spatial audio players 2021-02-17 19:09:42 -08:00
PouleyKetchoupp
cff7a69aa0 Fix test_body_motion recovery
This change makes test_body_motion more reliable when the kinematic body
recovers from being stuck.

- When recovery occurs, the rest information is generated, in order to
make sure collision results from test_move, move_and_collide and
move_and_slide are consistent and return a collision in case of overlap.

- The new calculation for recovery vector makes sure the recovery is
never more than the overlap depth between shapes.
This can help with cases where the kinematic body overlaps with several
shapes.
Recovery is made iteratively, without forcing a full overlap at each
step. This helps with getting proper rest information when recovery
occurs.

- One Way Collision:
When attempting motion, contact direction is checked against motion
before skipping in order to solve cases where kinematic bodies can sink
into one-way collision shapes.
Rest info now sets max contact depth in order to properly handle one-way
collision.

- Low speed motion is now handled in the rest info, by never setting
min_allowed_depth lower than motion length.
Separation is always applied with full margin, otherwise contact is lost
when low speed motion occurs right after higher speed motion.

- Similar changes are applied to 3D in order to make 2D and 3D
consistent.
2021-02-17 19:02:59 -07:00
Rémi Verschelde
81fc37b1ff
Merge pull request #46147 from m4gr3d/add_missing_ndk_version_config
Add missing `ndkVersion` to the library gradle build config.
2021-02-18 02:08:38 +01:00
Fredia Huya-Kouadio
9418197081 Add missing ndkVersion to the library gradle build config. 2021-02-17 16:31:31 -08:00
Fredia Huya-Kouadio
49979ad1be
Merge pull request #46142 from m4gr3d/revert_agp_to_4_0
Revert AGP to version 4.0.1
2021-02-17 16:13:51 -08:00
Fredia Huya-Kouadio
e5311f3523 Revert AGP to version 4.0.1 as a workaround to https://issuetracker.google.com/issues/171235570 in version 4.1.x 2021-02-17 15:39:53 -08:00
Rémi Verschelde
327ac7c375
Merge pull request #46143 from hpvb/dont-clobber-symbols
Don't clobber original library symbols
2021-02-18 00:38:48 +01:00
Rémi Verschelde
29e0556f6f
Merge pull request #46145 from akien-mga/android-ndk-21.4.7075529
Android: Bump NDK version to 21.4.7075529
2021-02-18 00:37:32 +01:00
Rémi Verschelde
c730da8b20
Android: Bump NDK version to 21.4.7075529
This is what GitHub Actions now provide and they removed the previous 21.3.6528147.
A bit annoying to have our hand forced this way but it's still 21.x so should be good
to upgrade.
2021-02-18 00:28:51 +01:00
Rémi Verschelde
622c4fe683
Merge pull request #46139 from m4gr3d/add_verbose_logging_android_export_master
Improve verbose logging for the Android export process
2021-02-18 00:25:23 +01:00
Hein-Pieter van Braam-Stewart
8d36b17343 Don't clobber original library symbols
It appears that we can get a fun circle dependency on a shared object on
some system configurations causing issues with our 'fake' function
pointer names. This can lead to a crash.

The new wrapper generator renames all the symbols so this can't happen
anymore. See https://github.com/hpvb/dynload-wrapper/commit/704135e

This closes #46140
2021-02-18 00:21:10 +01:00
Fredia Huya-Kouadio
9714abf8cb Add verbose logging to help with troubleshooting the Android build/export process. 2021-02-17 13:18:41 -08:00
Rémi Verschelde
f91c4c0899
Merge pull request #46124 from angad-k/cpu-particles-3d-fix
CPUParticles3D crash fix
2021-02-17 16:15:22 +01:00
Angad Kambli
c97fffdc59 add null check in _update_particle_data_buffer()
add check to see if p_order is in range for CPUParticles3D::set_draw_order'
2021-02-17 20:29:14 +05:30
Rémi Verschelde
5d8abd5bad
Merge pull request #40316 from jiteshvm/missing-animatedsprite3d-signals
adding animation_finished signal and fix frame_changed signal not firing
2021-02-17 15:28:23 +01:00
Jitesh
c3be0c2c04 Add animation_finished signal and fix frame_changed signal for AnimatedSprite3D
Fixes #40301.
Fixes #45947.
2021-02-17 15:13:47 +01:00
Rémi Verschelde
ab4f5c0668
Merge pull request #46117 from akien-mga/dynamic-load-libudev
Dynamically load libudev.so.1 on Linux
2021-02-17 13:40:15 +01:00
Rémi Verschelde
fa24c99a5c
Merge pull request #46119 from Faless/js/4.x_processor_count
[HTML5] Implement OS.get_processor_count(), 4.0 fixes
2021-02-17 13:31:21 +01:00
Rémi Verschelde
99fc96e7b3
Merge pull request #45955 from angad-k/fix-set-joint-i-to-name
fix set_joint_i_to_name to use the provided argument
2021-02-17 13:25:31 +01:00
Rémi Verschelde
a10c259c1d
Dynamically load libudev.so.1 on Linux if udev=yes
This makes it possibly to run Linux binaries compiled with udev support on
Linux systems which do not provide udev (typically systemd-less distros).

If udev is missing, we fall back to parsing `/dev/input` like when compiled
without udev support (`udev=no`).

Also adding some verbose debug statements to know which method we're using
when debugging Linux joypad issues.

The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using
https://github.com/hpvb/dynload-wrapper:
```
./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \
  --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \
  --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c
```
2021-02-17 13:14:59 +01:00
Rémi Verschelde
1efb4ee6b3
Merge pull request #46050 from akien-mga/ci-simplify-file_format
CI: Remove file_format.sh changes hard to reproduce on Windows
2021-02-17 13:10:27 +01:00