Commit Graph

161 Commits

Author SHA1 Message Date
lawnjelly
f09cdf5954 Portals - include in bound and special cases in start room
* Re-introduces a property for portals to decide whether they are included in room bounds during room conversion.
* Adds a special case for portals that extend into the start room, which may be caused by level design inaccuracies.
2024-02-08 15:10:00 +01:00
Bartłomiej T. Listwon
7101e4aed7 Prevent shuffling custom shader functions (shader cache requires determinism) 2024-02-08 14:48:50 +01:00
562fe84f67 Don't print error when there is no default NavigationMeshGenerator. 2024-01-02 13:05:52 +01:00
Rémi Verschelde
1c70f86950 Fix various GCC 13 warnings
Fixes occurrences of `-Wtype-limits`, `-Wmaybe-uninitialized`,
`-Wduplicated-branches`.
2023-12-20 22:57:54 +01:00
5133ef182d File copyright header updates pt10. 2023-12-18 00:31:04 +01:00
70f749688b Renamed DisplayServer to WindowServer. 2023-12-12 14:51:08 +01:00
a99e07563d Initial DisplayServer method setup. 2023-12-12 14:39:28 +01:00
c11e564b4e Added a new dummy DisplayServer class. 2023-12-12 13:35:51 +01:00
88e9ad04f2 Moved back the servers and resources from core. 2023-12-10 23:11:07 +01:00
11945d7f1d Split material.h. 2023-12-10 21:26:28 +01:00
053f083e17 Moved the Physics 2d server to core. 2023-12-10 19:42:57 +01:00
dbcc6e33da Moved the physics server to core. 2023-12-10 19:36:00 +01:00
238bf1b331 Moved the RenderingServer to core. 2023-12-10 19:04:24 +01:00
0dfba6c552 Moved AudioStreamSample. 2023-12-10 15:26:43 +01:00
deccaed2cc Moved materials into a new subfolder. 2023-12-10 14:59:22 +01:00
4cbc387c53 Moved the navigation relatred resources into subfolders. 2023-12-10 14:23:24 +01:00
59ae5c4662 Ported from godot: add support for 3 dir shadow splits
- Ansraer
54bc6a300e
2023-10-02 18:12:54 +02:00
f4339d2a49 Ported: CPUParticles2D - fix interpolated transforms and culling
1) Physics interpolated particles in global mode are specified in global space. In VisualServer they should therefore ignore local transform.
2) Additionally, the expected final_transform should be passed on to children, rather than the identity transform used on the local item.
3) Local bounds in hierarchical culling are fixed for items using identity transform, by calculating their local bound in local space from the global space particles.
- lawnjelly
723632a76a
2023-10-02 17:32:07 +02:00
Wilson E. Alvarez
8aa9b59eaf Fix AudioEffectRecord circular reference 2023-10-02 16:29:43 +02:00
e3e6e9e231 Bind missing method in NavigationServer. 2023-09-10 08:44:29 +02:00
0ff2bbdf70 Make sure that all parameters are properly set into PathQueryResults. 2023-09-05 11:58:36 +02:00
8880722565 Removed cell height getters and setters from the Navigation2DServer. 2023-09-05 11:57:34 +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
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
e81f25ac7b Added init and finish methods to the NavigationMeshGenerator. Also small tweaks in initialization. 2023-09-03 11:51:09 +02:00
9ae3aa65b7 Added finish method to the NavigationServers. 2023-09-03 11:46:46 +02:00
9fd4b941e2 Backported from godot4: Unbind NavigationServer3D.process()
Unbinds NavigationServer3D.process().
- smix8
f1026450bf
2023-09-03 09:26:48 +02:00
25ac0d8f49 Fix the initial value of _debug_enabled in NavigationServer. 2023-08-30 15:04:11 +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
26bb16d86e Ported: Fix 2D MultiMesh hierarchical culling
Fixes updating local bounds for MultiMeshes used in canvas items by introducing a back link.
- lawnjelly
ad577e3c7e
2023-08-27 21:28:30 +02:00
17fa82ac02 Ported: Add debug_canvas_item_get_local_bound() function to VisualServer
Useful for debugging hierarchical culling.
- lawnjelly
61e41cc9a1
2023-08-27 19:00:01 +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
b223601445 Fix non-tools builds. 2023-08-27 13:06:06 +02:00
5ae44c4746 Ported: SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
- akien-mga
55550da68b
2023-08-27 13:04:04 +02:00
34e2ebe8cc Fix build. 2023-08-27 12:54:44 +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
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
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
de1763d40d Renamed neighbor_dist properties / getters / setters for the navigation server. 2023-06-12 08:37:57 +02:00
6b95f31b70 Also fix method qualifiers. 2023-06-11 18:35:22 +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
552226ab5d Backported: Backport spatial shader built-ins
Backport of this PR: godotengine#63597
This adds these as new Built-Ins to Spatial Shaders
* Object's Position in World Space
* Camera Position in World Space
* Camera Direction in World Space
* Object's Position in View Space
- paddy-exe
be3d331f26
2023-06-11 09:37:10 +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
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