Commit graph

32837 commits

Author SHA1 Message Date
Rémi Verschelde e5bb89cdd5
Merge pull request #45901 from akien-mga/scons-fix-custom_modules-is_engine
SCons: Fix Godot detection in custom modules logic
2021-02-11 18:13:23 +01:00
Rémi Verschelde 75910d1e9b
SCons: Fix Godot detection in custom modules logic
`exec()` was not a good idea as it assumes a certain type of `version.py` file
similar to Godot's own file, which is not always a reliable assumption (see
https://github.com/godotengine/godot/pull/43057#issuecomment-777632900).

Also restores Python 2 support for the 3.2 branch.
2021-02-11 17:54:41 +01:00
Rémi Verschelde 68624f32b0
Merge pull request #44698 from Chaosus/shader_varying_fragment_to_light
Allow to pass varying from fragment to light shader function
2021-02-11 15:28:14 +01:00
Rémi Verschelde 5f05e5d904
Merge pull request #45882 from HenryWConklin/broken-gdnative-test
Fix broken gdnative variant test
2021-02-11 15:27:36 +01:00
Henry Conklin 6575e4c1ba Fix broken gdnative variant test 2021-02-11 07:14:28 -06:00
Yuri Roubinsky dd0874e717 Allow passing varying from fragment to light shader function 2021-02-11 15:59:21 +03:00
Rémi Verschelde b9863e157e
Merge pull request #45891 from Faless/js/4.x_editor_focus
[HTML5] Editor: ensure canvas focus when switching tabs.
2021-02-11 13:16:40 +01:00
Rémi Verschelde b8fab45ddb
Merge pull request #45835 from sps1112/add-test-variant
Add Unit Tests for Variant Class
2021-02-11 13:15:49 +01:00
Rémi Verschelde 604188c411
Merge pull request #45870 from gongpha/graphedit-connection-update
Update GraphEdit when GraphNode's slot is updated
2021-02-11 13:11:50 +01:00
Fabio Alessandrelli b148ea2a64 [HTML5] Editor: ensure canvas focus when switching tabs. 2021-02-11 13:10:18 +01:00
sps1112 f71f8c8c0b Add Unit Tests for Variant Assignment 2021-02-11 17:27:24 +05:30
Rémi Verschelde dca3ce441a
Merge pull request #45846 from rcorre/importplugin_doc
Improve EditorImportPlugin docs.
2021-02-11 12:24:48 +01:00
MarvinFF 4c528e76e7 Fix Node::rpc_config return error
Fix StringName type checks in other `_rpc*_bind` methods.
2021-02-11 11:52:52 +01:00
Ryan Roden-Corrent 9676650f2f Clarify EditorImportPlugin.get_visible_name.
According to the docs at
https://docs.godotengine.org/en/stable/tutorials/plugins/editor/import_plugins.html#the-editorimportplugin-class

> The get_visible_name() method is responsible for returning the name of
> the type it imports and it will be shown to the user in the Import dock.
> You should choose this name as a continuation to "Import as", e.g.
> "Import as Silly Material"

I've verified Godot's behavior reflects this, so the code examples
should reflect this.

Also document propagating save error in EditorImportPlugin.

It seems that the suggested code ignores any error from
`ResourceSaver.save`, but I think we should return it.
2021-02-11 11:13:17 +01:00
Rémi Verschelde 94cba993bf
Merge pull request #45847 from vnen/gdnative-bindings
Improve GDNative API and JSON generation further
2021-02-11 11:11:29 +01:00
Rémi Verschelde ab4c3ddf32
Merge pull request #45888 from Faless/js/4.x_xhr_fix
[HTML5] Fix HTTPClient request_raw.
2021-02-11 11:08:08 +01:00
Rémi Verschelde b3c7e38f4d
Merge pull request #45885 from Faless/js/4.x_editor_clean_fix
[HTML5] Fix web editor "clear persistent data".
2021-02-11 10:54:03 +01:00
Rémi Verschelde 5d5ed27173
Merge pull request #45883 from Faless/js/4.x_more_handlers
[HTML5] Handle contextmenu, webglcontextlost internally.
2021-02-11 10:53:22 +01:00
Fabio Alessandrelli 75c4e2c5fa [HTML5] Fix HTTPClient request_raw.
Now send data according to the spec, properly handle null data.
Simplify JS code since we are at it.
2021-02-11 10:03:36 +01:00
Fabio Alessandrelli 7866cd5881 [HTML5] Fix web editor "clear persistent data".
Was broken after update to new persistent path "/home/web_user".
2021-02-11 08:25:19 +01:00
Fabio Alessandrelli 3366122e1a [HTML5] Handle contextmenu, webglcontextlost internally.
This way they are automatically cleaned up when the engine exits,
landing a hand to browsers garbage collectors.
2021-02-11 07:56:10 +01:00
Fabio Alessandrelli e9e2dedb76 Sync and cleanup Rasterizer Dummy.
Code diverged too much, removing disabled code too as it's unlikely it
can be reused now.
2021-02-11 07:55:57 +01:00
Juan Linietsky ad293a82f1
Merge pull request #45879 from reduz/remove-change-notify
Removed _change_notify(property)
2021-02-10 20:06:14 -03:00
reduz 1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
Rémi Verschelde e8f73124a7
Merge pull request #45845 from qarmin/cppcheck_scene_2
Initialize class variables with default values in scene/ [2/2]
2021-02-10 20:06:12 +01:00
Rémi Verschelde 3c39aa8302
Merge pull request #45854 from nekomatata/cylinder-support
Cylinder support in Godot Physics 3D
2021-02-10 19:09:19 +01:00
Kongfa Waroros fe6c8d48e6 Update GraphEdit when GraphNode's slot is updated 2021-02-11 01:07:54 +07:00
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 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
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
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