Commit Graph

648 Commits

Author SHA1 Message Date
e3998417e7 Fix shortcut input handling in BaseButton. 2023-09-07 14:11:17 +02:00
ccb6074ca9 Backported the editor constrol changes for the new shortcut system from godot4. 2023-09-07 13:41:05 +02:00
4637f73099 Backported the shortcut context system from godot4. 2023-09-07 12:57:34 +02:00
9a2bf73280 Backported _shortcut_input() virtual from godot4. 2023-09-07 09:56:16 +02:00
66e080d766 Fix typo. 2023-09-07 07:55:48 +02:00
7fcc653a0e Backported the CallInputType parameter for SceneTree::_call_input_pause() from godot4. 2023-09-07 07:40:45 +02:00
5121b0d56b Added Toplevel property to CanvasItem. Also removed 2 extremely old compatibility methods. 2023-09-06 20:02:14 +02:00
da0caaad15 Set input as handled when processing shortcuts in BaseButton.
This fixes the issue when the script editor tab is active and the scene tree editor is focused, a ctrl+a press both opens the new Node popup and selects all text in the script editor.
Doesn't seem to have negative side effects so far.
2023-09-06 15:11:33 +02:00
e7fe643ce5 Prefix messages with their thread id if they aren't coming from the main thread in the editor log. 2023-09-06 14:19:28 +02:00
deb5c49700 Backported the new output window from godot4. 2023-09-06 13:08:24 +02:00
6be43d2ec6 Backported SceneTree::get_first_node_in_group() from godot4. 2023-09-06 08:54:55 +02:00
8880722565 Removed cell height getters and setters from the Navigation2DServer. 2023-09-05 11:57:34 +02:00
11d47d8fdc Simplifications to NavigationAgent and NavigationAgent2D. 2023-09-05 11:54:49 +02:00
43c11fcdf5 Backported from godot4: Fix typo and ensure backwards compatibility for changed property names
Changes to the name of the `navmesh` and `navpoly` properties on
`NavigationRegion` caused navigation data to be lost on load.
This PR creates uses `_set`/`_get` to handle compatibility with the
older names on load, preserving the data.
Also fixes a typo on `get_vertices_per_polygon` in `NavigationMesh`,
and renames the property to remove the `polygon_` prefix which doesn't
match the setter/getter.
- DarkKilauea, akien-mga
0572346985
2023-09-05 09:13:54 +02:00
6f3b1fac57 Simplify some logic in NavigationAgent2D. 2023-09-05 09:01:44 +02:00
397a9e9bcd Backported from godot4: Fix NavigationAgent continues avoidance velocity
Fixes NavigationAgent continues avoidance velocity.
- smix8
c912df9d05
2023-09-05 08:01:57 +02:00
1e5f9895e7 Backported from godot4: Remove SceneTree debug avoidance hint
Removes SceneTree debug avoidance hint.
- smix8
f1d8ddd9bd
2023-09-04 21:43:06 +02:00
7b52f0200e Backported from godot4: Fix NavigationObstacle2D debug position
Fixes NavigationObstacle2D debug position.
- smix8
2512157294
2023-09-04 21:21:56 +02:00
7001325758 Backported form godot4: Add NavigationRegion function to change navigation map
Adds NavigationRegion function to change navigation map.
- smix8
84647ab09e
2023-09-04 21:17:49 +02:00
a222159442 Backported from godot4: Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
- smix8
69fad39cf5
2023-09-04 20:22:28 +02:00
b37e0e6a4e Backported from godot4: Update navigation obstacle API
Updates navigation obstacle API.
- smix8
c1fc331b88
2023-09-04 19:55:32 +02:00
aeb4d3fbe2 Backported from godot4: Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
- smix8
https://github.com/godotengine/godot/commit/ae9dd47d0c1c237d0733439862aa5ff651dcac2
2023-09-04 19:04:29 +02:00
2f036edcc5 Backported from godot4: Fix cell_height for navigation meshes
Fixes `cell_height` for navigation meshes.
- smix8
180a5cded1
2023-09-04 18:34:15 +02:00
c326722a65 Backported from godot4: Allow negative NavigationAgent2D path debug line_width for thin lines
Allows the line_width for NavigationAgent2D path debug to go negativ for thin line rendering.
- smix8
f6a10c0565
2023-09-04 18:03:12 +02:00
e2fd645a42 Ported from godot4: Fix NavigationAgent position not always updating
Fixes NavigationAgent position not always updating.
- smix8
34bc410fb4
2023-09-04 17:38:32 +02:00
8485b37515 Ported from godot4: Fix Navigation API abbreviations inconsistency
Schema for navigation to name user facing API with  "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
- smix8
34e7628f5f
2023-09-04 17:09:39 +02:00
568b2541b8 Backported from godot4: Fix NavigationAgent3D debug path duplicated points
Fixes duplicated points in NavigationAgent3D debug path.
- smix8
0b8798a995
2023-09-04 16:35:59 +02:00
b4dbd26415 Backported from godot4: Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
- smix8
6e324bb341
2023-09-03 10:12:41 +02:00
a516cf2e1b Backported from godot4: Tweak NavigationAgent3D defaults
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
- smix8
8be4af38e4
2023-09-03 09:43:32 +02:00
935ed3c807 Backported from godot4: Tweak NavigationAgent2D defaults
Tweaks default values for NavigationAgent2D to work better out of the box within a new 2D project using default resolution.
- smix8
594ffd2200
2023-09-03 09:14:50 +02:00
d2e7ced27b Backported from godot4: Fix NavigationRegion3D debug mesh rendering twice in Editor
Fixes double rendering of NavigationRegion3D debug mesh due to both 3DGizmo and runtime debug rendering the mesh at the same time.
- smix8
0e4c31ce57
2023-09-03 08:45:25 +02:00
e6e30d2f27 Backported from godot4: Disable NavigationMesh edge_max_length property by default
Disables NavigationMesh edge_max_length property by default.
- smix8
c63125c317
2023-09-02 13:46:13 +02:00
697d4a32fc Backported from godot4: Change 2D navigation ProjectSettings from integers to floats
Changes 2D navigation ProjectSettings from integers to floats.
- smix8
2852fb43f7
2023-09-02 13:38:20 +02:00
d5499c69ba Backported from godot4: Fix crash in 'NavigationAgent3D', fixes #78910
- Scony
fcbb521392
2023-09-02 13:28:16 +02:00
62c5bfbc36 Backported from godot4: Remove legacy navigation debug materials
Removes legacy navigation debug materials.
- smix8
1b506cd49c
2023-09-02 13:18:16 +02:00
09af276838 Backported from godot4: Add NavigationPolygon cell_size property
- smix8
9c8626bfd8
2023-09-02 13:12:46 +02:00
8467cf9e94 Backported from godot4: Keep NavigationServer active while SceneTree is paused.
- smix8
4b0dee080e
2023-09-02 12:57:35 +02:00
d1d8f8505e Backported from godot4: Strip name prefix of navigation agent debug properties in the inspector.
- timothyqiu
65223e98de
2023-09-02 12:56:02 +02:00
2dc300a0fc Backported from godot4: Stops NavigationAgents moving to the world origin without anyone telling them to do so.
-smix8
860379fc16
2023-09-02 12:47:13 +02:00
61bf4df2f4 Fix NavigationObstacle2D::set_navigation. 2023-09-02 12:31:55 +02:00
4b3a27f415 Bind get_navigation_map and set_navigation_map in NavigationObstacle2D. 2023-09-02 12:22:27 +02:00
569c2e9f85 Simplify some logic NavigationObstacle2D. 2023-09-02 12:16:31 +02:00
eb8943a4f6 Backported from godot4: Add Path2D/3D debug options
- smix8
e12e239ab4
2023-09-02 11:38:01 +02:00
2c3c7dcc73 Fix threaded bake logic in NavigationPolygonInstance and NavigationMeshInstance. 2023-08-30 14:36:33 +02:00
62e2b1623a Use NULLs. 2023-08-30 13:24:46 +02:00
7e270262f9 Ported: Fix binary internal cache not being filled
- Razoric480
d331e5c7ac
2023-08-30 13:00:53 +02:00
4a51324f7d Ported: Force external resources to have their path set
- Razoric480
420794b61d
2023-08-30 12:57:00 +02:00
5d93975c8d Ported: Fix custom res caching sub-res even if no-cache
-Razoric480
2ceb93bbef
2023-08-30 12:55:37 +02:00
Paweł
14c218d23a Fix scrolling behaviour with low page value
(cherry picked from commit 1608bea18809dcb4e744ee936f8de8f5660adfbe)
2023-08-30 10:48:48 +02:00
Haoyu Qiu
df406d2027 Notify child controls when BackBufferCopy's rect changed
(cherry picked from commit 602a0d2fbc84d598cffc79eccd5110f650b6e3c9)
2023-08-30 10:48:20 +02:00
e5cec36ba0 Ported: Physics Interpolation 2D - reset on NOTIFICATION_ENTER_TREE
As a convenience, physics interpolation is reset automatically on entering the tree. This will be desired in most situations, and saves the user having to write code for this explicitly.
- lawnjelly
bcfca5ec86
2023-08-27 22:02:26 +02:00
a29d232a4c Ported: Physics Interpolation - add support for CPUParticles2D
Similar to the existing 3D CPUParticles physics interpolation.
- lawnjelly
a117a3307a
2023-08-27 21:59:54 +02:00
d977ed360e Ported: 2D Fixed Timestep Interpolation
Adds support to canvas items and Camera2D.
- lawnjelly
5162efbfe9
2023-08-27 18:48:25 +02:00
87b91721da Ported: Physics interpolation - Move out of Scenario
Move VisualServer interpolation data out of Scenario and into VisualServerScene, so the interpolation data and enabled status is now common to all Scenarios.

Fix physics interpolation in multithreaded mode by ensuring tick and pre-draw are called.
- lawnjelly
d2b1d29634
2023-08-27 17:25:38 +02:00
Silc Lizard (Tokage) Renew
8d4078b7b5 Make AnimationNodeBlendTree use OrderedHashMap insteads Map 2023-08-27 12:24:02 +02:00
lawnjelly
3954a79659 Fix AnimatedSprite normal map loading
Normal map names are now correctly set up during loading.
2023-08-27 12:15:46 +02:00
lawnjelly
ca171817a8 MultiRect - Fix flushing in TextEdit
The FontDrawer used in TextEdit was previously not being flushed before drawing auto-completion boxes. This was causing rendering artifacts.
This PR also increases the backward compatibility of the MultiRect OFF mode, by forcing a flush after each character.
2023-08-27 11:45:09 +02:00
5861ad6485 Fix typos in _rpc_id_bind and _rpc_unreliable_id_bind. 2023-08-15 23:42:34 +02:00
01c3cd88d5 Make sure rpc binds can take both Strings and StringNames as method names. 2023-08-15 10:24:30 +02:00
834cbe8cef Ported: Single Compilation Unit build.
Adds support for simple SCU build.
This speeds up compilation by compiling multiple cpp files within a single translation unit.
- lawnjelly
43e181a00a
2023-07-11 16:07:36 +02:00
53d36345e6 Added back CSG support code I removed. 2023-07-11 12:23:46 +02:00
5b869f8b54 Ported from godot: Canvas item hierarchical culling
Adds optional hierarchical culling to the 2D rendering (within VisualServer).
Each canvas item maintains a bound in local space of the item itself and all child / grandchild items. This allows branches to be culled at once when they don't intersect a viewport.
- lawnjelly
b777a9e5f9
2023-06-28 20:25:48 +02:00
75ceb22100 Revert "Add option in VisibilityEnabler2D to hide the parent for better performance"
This reverts commit ad6e504a5b.
2023-06-28 19:00:29 +02:00
Maganty Rushyendra
97dee88433 Fix overwriting of Spatial's local transform
Modifies when 'DIRTY_LOCAL' flag is set to prevent a transform applied
using `set_transform` to be overwritten by previous calls to change the
node's rotation, translation or scale.

Fixes #43130.
2023-06-28 12:23:08 +02:00
Patrick
78bc0eeb97 Backport VideoLooping and fix for initial black frame 2023-06-28 12:22:49 +02:00
c5e893897e Changed 2 errors to just an if. 2023-06-15 15:42:07 +02:00
6c70361a07 Fix debugging on the android editor. 2023-06-15 11:30:26 +02:00
1a5cba555c Backported godot4 PR: Support threads in the script debugger
* This implementation adds threads on the side of the client (script debugger).
* Some functions of the debugger are optimized.
* The profile is also now thread safe using atomics.
* The editor can switch between multiple threads when debugging.
This PR adds threaded support for the script language debugger. Every thread has its own thread local data and it will connect to the debugger using multiple thread IDs.
This means that, now, the editor can receive multiple threads entering debug mode at the same time.
- reduz
PR 76582
Will be available here after it's merged:
6b176671c4
2023-06-14 14:43:55 +02:00
decade59c8 Implemented a new ProcessGroup Node. It can be used to multithread scenes updates.
It was insipred by godot 4's ProcessGroup system, however while Godot 4's implementation tries to hide threaded processing as much as possible, this implementation focuses on making it explicitly known and obvious to the user, in a (hopefully) almost bolierplate free way.

Also with the available options this node can be used for other purposes, like multi threaded cron job like method calls when paired with a Timer in manual mode.
2023-06-13 15:08:35 +02:00
d4175f9676 Ported parts of : Refactor Node Processing
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.
This is the first steps towards implementing godotengine/godot-proposals#6424.
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
- reduz
98c655ec8d
- Only got the smaller improvements, and the thread safety for Node and SceneTree. I'm planning to implement a similar system, but I have a different way of doing it in mind.
2023-06-12 21:13:26 +02:00
de1763d40d Renamed neighbor_dist properties / getters / setters for the navigation server. 2023-06-12 08:37:57 +02:00
975e5c4a9e Rethink the previous fix. 2023-06-11 18:32:15 +02:00
50c96d5414 Fix building with ptrcall on. 2023-06-11 18:02:58 +02:00
Ricardo Subtil
3191832c37 Fix PopupMenu's maximum height not being automatically set 2023-06-11 09:22:06 +02:00
kobewi
147640412a Cache text property when toggling BBCode 2023-06-11 09:21:25 +02:00
ShadyChibinko
38bb088c1e Add Tab Metadata 2023-06-11 09:19:03 +02:00
needleful
cfabdb87f0 Add allow_search property to ItemList and Tree 2023-06-11 09:12:26 +02:00
David Turner
1fc8096770 Stop dragging when a slider changes editability 2023-06-11 09:05:53 +02:00
lawnjelly
22d90711da 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-06-11 08:41:42 +02:00
37273d29c9 Ported: Multirect - Fix refining regions for all derived Textures
Fixes allowing all derived texture types to modify region prior to rendering.
- lawnjelly
43b6205887
2023-06-11 00:47:10 +02:00
8642a7c722 Ported: Fix rendering tiles using nested AtlasTextures
- kleonc
12c923cb8b
2023-06-11 00:23:26 +02:00
52ea64d04b Ported: Fix GridContainer max row/column calculations not skipping hidden children
- kleonc
0ce6ef7215
2023-06-10 23:50:41 +02:00
Ninni Pipping
feb55d26d2 Fix size error in BitMap.opaque_to_polygons
Previous estimate of upper limit on size was incorrect
2023-06-10 23:35:51 +02:00
670e465d24 Fix compile error. 2023-06-10 21:25:18 +02:00
23de574af6 Fix non tools build. 2023-06-10 21:11:44 +02:00
f058c87868 Backported from godot4: Rework Navigation Avoidance
Rework Navigation Avoidance.
- smix8
a6ac305f96
2023-06-10 20:58:49 +02:00
8b18898609 Backported from godot4: Rework const on NavigationServer methods
`const` is used on all methods, even when they cause modification of the server.  This reworks the methods of the server to only use `const` on method that don't change the state of the server.
- DarkKilauea
a0715b30f9
2023-06-09 22:03:42 +02:00
6384b9624f Ported from godot4: Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
- smix8
f986b52b3c
2023-06-09 20:54:05 +02:00
81c392489a Ported from godot4: Add NavigationLink helper functions for global positions
Adds helper functions to set the links start and end position with global positions or get them as global positions.
Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
- smix8
d87f124768
2023-06-09 20:00:28 +02:00
29784d5d5b Ported from godot4: Enable assigning an owner to navigation regions and links
This allows users of the server APIs to get back the nodes that created certain regions and links.
- DarkKilauea
5769b0e8d8
2023-06-09 19:46:44 +02:00
160cb38a50 Ported from godot4: Add support for emitting a signal when entering a NavLink
- DarkKilauea
5d8ba2b2d1
2023-06-09 19:08:38 +02:00
e07fd6da59 Ported from godot4: Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
- smix8
7e1a261cc6
2023-06-09 16:43:14 +02:00
19fac49904 Turn PoolVectors in NavigationPathQueryResults into Vectors. 2023-06-09 16:27:24 +02:00
b2d8199a7b Ported from godot4: Update NavigationAgent to use query_path
This paves the way for having agents respond to link traversal.
- DarkKilauea
a2c53b881b
2023-06-09 16:19:22 +02:00
12b95cdc1f Ported from godot4: Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
- smix8
55923ade68
2023-06-09 15:44:12 +02:00
e98e415168 Fix signal handler error. 2023-06-09 14:18:08 +02:00
268645ff0b Ported from godot4: Add NavigationAgent Path Debug Visualization
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
- smix8
0ab764e84b
2023-06-09 14:17:54 +02:00
11c84049fa Ported from godot4: Fix NavigationMesh debug visuals for non-triangulated meshes
Fixes NavigationMesh debug visuals for non-triangulated meshes.
- smix8
4490a3303b
2023-06-09 13:03:30 +02:00
23daaf95a6 Ported from godot4: Fix 2D navigation debug visuals ignoring half the ProjectSettings
Fixes that NavigationRegion2D and TileMap debug visuals ignored more or less half the ProjectSetting. E.g. random color could not be disabled, edges did not display.
2b19c70664
2023-06-09 11:29:33 +02:00
c11500d480 Ported from godot4: Rename Navigation uses of 'location' to 'position'
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
- smix8
bf1571979c
2023-06-09 10:28:31 +02:00
0438c3cc3f Backported from godot4: Added node for Navigation links .
- DarkKilauea
3dd59013f4
2023-06-08 20:46:09 +02:00
91f365b183 Added CapsuleShape2D support for StaticBody2DNavigationGeometryParser2D. 2023-06-07 00:36:53 +02:00
d344005b8d Don't unref() the NavigationMesh in NavigationPolygon. 2023-06-06 23:44:33 +02:00
5ace0cd58f Fix signal double connection. 2023-06-06 23:17:46 +02:00
316a53bfbf Fix non tools build. 2023-06-06 13:51:33 +02:00
27ee583bb8 Ported missing changes to NavigationPolygonInstance from the navigation mesh generator rework pr. 2023-06-06 13:17:59 +02:00
09118cb939 Port small tweaks fot NavigationMeshInstance. 2023-06-06 10:14:15 +02:00
b993bd4760 Only register NavigationMeshSourceGeometryData3D if 3d is enabled. 2023-06-06 10:04:14 +02:00
c898d9bc51 NAvigationMesh small tweaks. 2023-06-06 10:02:47 +02:00
63892627f7 Ported missing changes to NavigationPolygon from the navigation mesh generator rework pr. 2023-06-06 09:58:44 +02:00
a1b23406a1 Rework NavigationMeshInstance as per the navigation mesh generators pr. 2023-06-06 09:35:59 +02:00
2296bf693a Fix and finally enable PandemoniumNavigationMeshGenerator. 2023-06-05 20:42:35 +02:00
26ff340d47 Reorganized NavigationMesh. 2023-06-05 19:21:59 +02:00
a3aebe8bc5 Ported the improvements to the NavigationMesh from the NavigationMeshGenerator rework pr. 2023-06-05 19:20:28 +02:00
c72a079c49 Removed the Polygon struct from NavigationMesh. 2023-06-05 19:07:04 +02:00
3c9d9bdad4 Ported from godot4: Fix NavigationRegion3D gizmo's odd visual behavior .
- DarkKilauea
92c40bcf32
2023-06-05 19:02:24 +02:00
25078b1437 Ported from godot4: Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
- smix8
d7f75fab60
2023-06-05 18:56:41 +02:00
b6de23ac8a Fix non tools build. 2023-06-05 18:21:45 +02:00
654cfb81b7 Renamed NavigationRegion2D back to NavigationPolygonInstance, as I think it fits the engine better. 2023-06-05 18:09:53 +02:00
68b9f4c90e Ported from godot4: Add more detailed Navigation Debug Visualization
- Adds more customization options to ProjectSettings.
- Displays navregion edge connections and navigation polygon edges in editor and at runtime.
- Majority of debug code moved from SceneTree to NavigationServer.
- Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
- smix8
c394ea518e
2023-06-05 18:05:15 +02:00
cfa4384ad4 Backported from godot4: Fix NavigationMesh baking AABB Editor handling and visuals
Fixes handling and visuals for Navigation Mesh baking AABB in the Editor.
- smix8
2023-06-05 14:33:55 +02:00
b7892d6baf Backported from godot4: Implement NavigationMesh bake area.
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
- smix8
0c4d99f4fd
2023-06-05 14:24:42 +02:00
6589d075bb Ported the improvements to the NavigationPolygon from the aforementioned pull request. 2023-06-05 14:13:02 +02:00
712eb8eb8a Removed the Polygon struct from NavigationPolygon. 2023-06-05 12:48:57 +02:00
0bfa40bb09 Reorganize NavigationPolygon. 2023-06-05 12:44:49 +02:00
54ae614941 Make sure that the new classes are registered to the ClassDB. Also added in the docs for them. 2023-06-03 20:39:56 +02:00
8cbb1bb879 Started porting pull request from godot 4: Rework NavigationMeshGenerator
Reworks NavigationMeshGenerator and navigation mesh parse and bake process. Adds navigation mesh baking for 2D.
- smix8
https://github.com/godotengine/godot/pull/70724
38699a8259
2023-06-03 18:22:12 +02:00
2114b2239b Split NavigationPolygon and NavigationPolygonInstance into 2 files. Also renamedNavigationPolygonInstance to NavigationRegion2D. 2023-06-03 16:54:48 +02:00
6b15eb053c Fix property bind inconsistency. 2023-06-02 12:17:16 +02:00
f4a4956b7a Ported: Fix Polygon2D skinned bounds (for culling)
The bound Rect2 was previously incorrect because bone transforms need to be applied to verts in bone space, rather than local space. This was previously resulting in skinned Polygon2Ds being incorrectly culled.
- lawnjelly
dd6c213dac
2023-05-01 13:34:35 +02:00
BimDav
ad6e504a5b Add option in VisibilityEnabler2D to hide the parent for better performance 2023-05-01 12:22:39 +02:00
Fredia Huya-Kouadio
0947677049 Make tab's close button responsive to touch taps 2023-05-01 12:10:43 +02:00
3a1b2954f1 Ported: [3.x] Don't apply scale to autohide theme property
- AThousandShips
1c66257568
2023-04-20 23:47:14 +02:00
dd5ad408e8 Ported: SurfaceTool - efficiency improvements
Changed to use LocalVector rather than linked lists.
- lawnjelly
ff714fbe02
2023-04-20 23:44:12 +02:00
1263101396 Ported: 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.

- lawnjelly

910ddd13c4
2023-04-20 23:09:37 +02:00
kobewi
381aa1a140 Add set_value_no_signal() to Range 2023-04-15 10:56:26 +02:00
Richard Adenling
689a7340f3 Fix for 2D viewport not updating in the editor when the camera moves
This fixes a problem with 2D viewports not taking the camera position
into consideration when previewed in the editor.

Fixes #40441
2023-04-15 10:44:38 +02:00
40a9b72afb Ported from godot-plus: Add ability to mute AudioServer.
Adds the option to change the audio driver to the Dummy driver and back at runtime, with a set of MuteState flags - Disabled (user control), Silence (period of silence), Focus Loss (when app is not in focus), and Paused (when app is paused).
Control for the flags is added for the editor in EditorSettings, and for the project in ProjectSettings.
Editor defaults to muted (Dummy driver) when there is no audio output, and automatically switches to active on output. This significantly reduces CPU usage.
- lawnjelly
cedb01fb84
2023-04-10 19:42:23 +02:00
8ab1998fcb Ported from godot 4: Optimize Node::add_child validation
Adding 10k nodes is almost twice as fast.
- reduz
223ce4fcb9
2023-04-10 18:10:22 +02:00
a14b058dc4 Ported from godot 4: Optimize Node children management
* Adding and removing child nodes is now constant time, speed up should be huge.
* Searching for node paths as in ("path/to/node") should be far faster too.
This changes the children management and makes it a hashmap, optimizing most StringName based operations.
Most operations should be severe speed up without breaking compatibility.
This should fix many issues regarding to node access performance, and may also speed up editor start/end, but benchmarks are needed. So if you want to test, please make some benchmarks!
- reduz
ab5fc22f67
2023-04-10 17:32:42 +02:00
32e9927ac8 Ported from godot 4: Remove NOTIFICATION_MOVED_IN_PARENT
* This notification makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILDREN_CHANGED (and children_changed signal).
* Changed Canvas code (and similar) to use the above signal, to perform more efficiently.
This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
It is required for the changes in #75627 to be entirely effective.
- reduz
Note that I removed NOTIFICATION_MOVED_IN_PARENT, as keeping it, but making it just not work is worse in my opinion.
104392ef4e
2023-04-10 15:55:34 +02:00
7d2667830d Ported from godot 4: Fix Viewport root order after Node2D raise
- Sauermann
022d24a9ae
2023-04-10 11:42:15 +02:00
Ninni Pipping
e8216d9ad1 Backport Tree::set_selected
Backport function from godotengine#68448

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-03-12 14:25:47 +01:00
smix8
90f81c0013 Add error messages for collision exception functions
Adds error messages to collision exception functions when used with the wrong object/node instead of failing silently.
2023-03-12 14:24:56 +01:00
stmSi
9b65e9df6a Fix Editor hanging if audiostream's pitch_scale is NaN 2023-03-12 14:14:29 +01:00
Marius Hanl
1be818c478 Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
Each BBCode tag is drawn individually, so we have to add the character spacing manually.
2023-03-12 13:11:00 +01:00
Brian Semrau
2b7327e014 Fix Line2D UVs when using BOX end cap mode 2023-03-12 12:45:31 +01:00
15bf4aefd0 Ported: Rework how current Camera2D is determined
7e2a8afb57
- KoBeWi
and
Fix Camera2D crashes
724d6581d6
- KoBeWi
From godot4.
Also fixed issues with active Camera2D switching.
2023-03-04 21:29:49 +01:00
e42c604bc3 Ported: Switch from recursion to iterative for backfilling colour regions.
- Paulb23
ee4a1c99a7
2023-02-21 13:11:37 +01:00
a79792ee67 Ported: Fix color region end key seach and start key order.
- Paulb23
6cdcdbc242
2023-02-21 13:08:49 +01:00