Commit Graph

34697 Commits

Author SHA1 Message Date
PouleyKetchoupp 333f184734 Cylinder support in Godot Physics 3D
Cylinder collision detection uses a mix of SAT and GJKEPA.
GJKEPA is used to find the best separation axis in cases where finding
it analytically is too complex.

Changes in SAT solver:
Added support for generating separation axes for cylinder shape.
Added support for generating contact points with circle feature.

Changes in GJKEPA solver:
Updated from latest Bullet version which includes EPA fixes in some
scenarios.
Setting a lower EPA_ACCURACY to fix accuracy problems with cylinder vs.
cylinder in some cases.
2021-02-10 10:00:53 -07:00
Rémi Verschelde 1808f1d76d
Merge pull request #45852 from reduz/make-servers-truly-thread-safe
Make Servers truly Thread Safe
2021-02-10 17:39:53 +01:00
reduz 8b19ffd810 Make Servers truly Thread Safe
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread).
-RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault.
-Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory).
-3D physics server changed to be made multithread friendly.
-Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads.
-Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-10 13:21:46 -03:00
Rémi Verschelde f3d15771bf
Merge pull request #45771 from CherokeeLanguage/master
Fix joystick axis mapping issues with NVIDIA shield. Probably others.
2021-02-10 17:03:42 +01:00
Rémi Verschelde 1c58514c18
Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@lyuma, @nathanfranke, @pycbouh
2021-02-10 16:11:18 +01:00
Rémi Verschelde b1c60c757f
Merge pull request #31747 from KoBeWi/scene_stalking
Detect external modification of scenes
2021-02-10 14:31:29 +01:00
Juan Linietsky bad2998fea
Merge pull request #45811 from reduz/sdfgi-improve-feedback
Improve SDFGI indirect light feedback loop
2021-02-10 07:32:32 -03:00
Rémi Verschelde 844caafa4b
Merge pull request #45861 from nekomatata/physics-3d-contact-points-debug
Fix contact points debug for 3D Physics
2021-02-10 10:32:04 +01:00
PouleyKetchoupp 50501f2843 Fix physics queries not filtering out disabled collision shapes
This change allows collide_shape, intersect_shape, cast_motion and
rest_info in both 2D and 3D to ignore disabled shapes and make them
consistent with the physics simulation.

In some other cases, _cull_aabb_for_body is used and filters shapes out
internally, but whenever a physics query uses the broadphase directly
without calling _cull_aabb_for_body, disabled shapes can be returned
and need to be filtered out.
2021-02-09 19:14:17 -07:00
PouleyKetchoupp e5e9be8355 Fix contact points debug for 3D Physics
Setting each point's position was missing for 3D. Now enabling collision
render debug will display contact points for 3D physics, the same way it
does for 2D physics.

Note: Multimesh rendering seems not to work in this scenario on master,
but it's working fine on 3.2.
2021-02-09 18:36:38 -07:00
Kayomn ca945421a0 Accomodate blend shape ranges of -1 to +1 2021-02-09 23:09:54 +00:00
Rémi Verschelde 06ae14dd86
Merge pull request #45856 from RandomShaper/fix_reset_track_crash
Fix animation reset-on-save on inactive scene tabs
2021-02-09 22:46:38 +01:00
Pedro J. Estébanez fbb37196fd Fix animation reset-on-save on inactive scene tabs 2021-02-09 21:41:48 +01:00
Tomasz Chabora abe548d76d Add node copy-paste 2021-02-09 20:53:06 +01:00
Rémi Verschelde 7d9eed093a
Merge pull request #45853 from groud/fix_crash_on_exit
Fixes crash when exiting with --verbose with leaked resources
2021-02-09 18:38:18 +01:00
Rafał Mikrut 7961a1dea3 Initialize class variables with default values in scene/ [2/2] 2021-02-09 18:24:36 +01:00
Rémi Verschelde fa4ddbcb33
Merge pull request #45848 from YeldhamDev/filesys_basedir_path
Make FileSystem dock set its path to the base folder of files after changes
2021-02-09 17:38:23 +01:00
Gilles Roudière 25c4dacb88 Fixes crash when exiting with --verbose with leaked resources 2021-02-09 17:34:49 +01:00
Michael Alexsander cf9d5cec22 Make FileSystem dock set its path to the base folder of files after changes 2021-02-09 12:57:36 -03:00
George Marques 0b3819d213
Improve GDNative api.json generator
- Add indexed type to the builtin types output, which is useful for
  bindings implementing array-like access.
- Use getter type instead of hint for property types, as the hint can be
  unreliable and include multiple comma-separated possible types.
2021-02-09 11:37:15 -03:00
George Marques 66ed69edb3
Further changes to GDNative API
- Moved Variant struct definition to its own file so it can be used
  without include cycles (like on Dictionary).
- Add `index` operator function so bindings like C++ can implement the
  operator[] overload (which needs a reference to the actual value).
- Added missing new/destroy functions to Vector3i array.
- Added print error/warning functions as helpers so bindings can print
  messages in the same manner as Godot itself does.
2021-02-09 11:33:35 -03:00
kobewi c390c82014 Detect external modification of project.godot 2021-02-09 14:44:44 +01:00
Michael Conrad cc2547a9e9 Fix joystick axis mapping issues with NVIDIA shield. Probably others.
Issues addressed:

a) Axis mappings were including virtual mouse axes on NVIDIA Shield TV.

The virtual mouse axes have the same axis numbers as the normal analog stick numbers. This was completely breaking joypad support on NVIDIA Shield TV.

b) Joypads were being tracked in a List with the index in the list being treated as the Godot device id.

If a device were to be removed, any device later in the list would be shifted, potentially causing future events with the shifted joypads to have incorrect IDs according to the Godot engine.

c) Unnecessary events were being sent to the Godot engine.

A check was added (per Joystick) that will prevent sending events for all axes when only a single axis value changed.
A similar check was added for "HATs".

See #45712
2021-02-09 08:37:22 -05:00
Rémi Verschelde df9c98e107
Merge pull request #45812 from RandomShaper/keep_selected_visible
Keep selected node visible after filter change
2021-02-09 10:43:21 +01:00
Rémi Verschelde e9bc984bef
Merge pull request #45736 from kleonc/string_ends_with
Make String::ends_with don't use String::rfind
2021-02-09 09:23:55 +01:00
kleonc ad0943e3d3 Make String::ends_with don't use String::rfind 2021-02-09 00:31:28 +01:00
Riteo Siuga 876e165a49 Improve the MIME source file
- Add MIME definitions for resources, scenes and scripts
- Remove the "weight" property, which defaults to 50, a much saner value than the previous 100, which was a bit excessive.
- Changes their icon names in order to follow the XDG icon naming conventions.
2021-02-09 00:06:42 +01:00
Rémi Verschelde 5f23fcf847
Merge pull request #45713 from KoBeWi/1000_unmasked
Make Rect2 properties show in 2x2 layout
2021-02-08 22:30:23 +01:00
Rémi Verschelde 59924a09e8
Merge pull request #45806 from KoBeWi/forest_of_deselection
Set selected Tree item to null when deselected
2021-02-08 22:22:52 +01:00
Rémi Verschelde 74be478895
Merge pull request #45774 from revilo/fix-45694
Bugfix: Update transform of collision shape on NOTIFICATION_PARENTED …
2021-02-08 21:32:49 +01:00
Rémi Verschelde 68b7652098
Merge pull request #45836 from Kanabenki/update-color-picker
Update ColorPicker controls when entering tree
2021-02-08 21:31:28 +01:00
Rémi Verschelde 6673c914bb
Merge pull request #45775 from RandomShaper/pause_aware_picking
Implement pause-aware picking
2021-02-08 21:25:31 +01:00
Kanabenki 03d4ebf129 Update ColorPicker controls when entering tree 2021-02-08 19:25:50 +01:00
Rémi Verschelde 6de91c87b1
Merge pull request #45827 from akien-mga/sync-gamecontrollerdb
Sync controller mappings DB with SDL2 community repo
2021-02-08 16:26:12 +01:00
Rémi Verschelde 5eb46ab616
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@f72b68b8b0.

Partial revert of #45790.
2021-02-08 16:16:29 +01:00
Rémi Verschelde 1c98945165
Merge pull request #45825 from BastiaanOlij/windows_debugger_flags
Use /Zi and /FS for including debugger symbols on Windows with MSVC
2021-02-08 16:00:29 +01:00
Rémi Verschelde c05d205a5c
Merge pull request #43057 from Xrayez/custom_modules_recursive
SCons: Add an option to detect C++ modules recursively
2021-02-08 16:00:03 +01:00
Bastiaan Olij 4946ae16fc Use /Zi and /FS for including debugger symbols on Windows with MSVC 2021-02-09 00:20:42 +11:00
Rémi Verschelde c31bceb5f5
Merge pull request #45797 from madmiraal/add-new-sdl-keywords
Add support for new SDL gamecontroller keywords.
2021-02-08 13:47:01 +01:00
Rémi Verschelde e2a80a4be3
Merge pull request #43245 from HaSa1002/docs-object
Docs: Object: Use new signal syntax and port to C#
2021-02-08 12:53:44 +01:00
Rémi Verschelde 9b623635c8
doc: Sync classref with current source 2021-02-08 12:34:28 +01:00
Rémi Verschelde 332a33503b
Merge pull request #43952 from qarmin/cppcheck_modules
Initialize class/struct variables with default values in modules/
2021-02-08 11:53:02 +01:00
Rafał Mikrut f7209b459b Initialize class/struct variables with default values in modules/ 2021-02-08 10:57:18 +01:00
Rémi Verschelde 5260b6e046
Merge pull request #45818 from akien-mga/debug_symbols-bool
SCons: Fix debug_symbols tests after switch to BoolVariable
2021-02-08 09:59:28 +01:00
Rémi Verschelde cea42faa77
Merge pull request #44630 from qarmin/cppcheck_scene_1
Initialize class variables with default values in scene/ [1/2]
2021-02-08 09:31:08 +01:00
Rémi Verschelde 849c090343
SCons: Fix debug_symbols tests after switch to BoolVariable
Bug introduced in #45679.

Fixes part of #45816.
2021-02-08 08:53:16 +01:00
Pedro J. Estébanez ef062b1c37 Keep selected node visible after filter change
(Implemented both for the local and remote scene tree docks.)
2021-02-08 02:19:14 +01:00
Pedro J. Estébanez 177b804f30 Expose Tree::scroll_to_item() 2021-02-08 02:19:13 +01:00
reduz 3e2281a347 Improve SDFGI indirect light feedback loop
-Use occlusion for feedback, further reduces light leaking.
-More control on feedback, now its a slider.
2021-02-07 21:30:12 -03:00
Rafał Mikrut 003bb8e1a8 Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00