Commit Graph

7753 Commits

Author SHA1 Message Date
c84cf04e95 PopupMenu: Update margins on visibility change
Fixes #96149.

Co-authored-by: Haoyu Qiu <timothyqiu32@gmail.com>
2024-09-04 11:35:41 +02:00
31940c784a Safe Camera::unproject_position()
`unproject_position()` can fail in some circumstances, and this needs to be conveyed to calling code.
2024-08-26 07:55:19 +01:00
1cf50364c1 Fix PopupMenu size calculations not taking into account control/canvas scale 2024-07-20 12:46:33 +01:00
66d1ab0459 [3.x] Fix AtlasTexture::draw_rect flipping for non-zero margin 2024-07-02 11:26:23 +02:00
98e24835ee Merge pull request #92941 from lawnjelly/fix_physics_tickcounter
[3.x] Fix physics tick counter
2024-07-01 12:30:22 +01:00
f137eb3929 Merge pull request #92105 from lawnjelly/merging_storage_refactor
[3.x] Mesh merging - refactor to be backward compatible for CPU / GPU storage
2024-07-01 12:21:23 +01:00
40961d62e2 Fix physics tick counter
The counter is now incremented at the start of a physics tick rather than the end.
2024-07-01 08:58:02 +01:00
49d3161ce0 Physics Interpolation - Fix behaviour on pause 2024-06-20 10:50:30 +01:00
d80b206643 Physics Interpolation - refactor client interpolation pump
* Move client interpolation pump to earlier in the iteration before 3D physics synced
* Allow `get_global_transform_interpolated()` to prime the client interpolation inside a physics tick
2024-06-19 08:44:33 +01:00
12781e4554 Merge pull request #93309 from lawnjelly/fti_skinning
[3.x] Physics Interpolation - Fix 2D skinning
2024-06-19 06:50:44 +01:00
44f6042e6b Physics Interpolation - Fix 2D skinning
2D skinning required the interpolated skeleton base transform to be updated when using interpolation.
2024-06-18 15:01:20 +01:00
0b30d77384 Physics Interpolation - refactor Camera and fix get_camera_transform()
* Moves 3D Camera interpolation scene side.
* Automatically switches `get_camera_transform()` to report interpolated transform during `_process()`.
* Fixes `ClippedCamera` to work with physics interpolation.
2024-06-09 12:08:27 +01:00
d655fc8fed Add range hint for ViewportContainer.stretch_shrink 2024-05-29 09:06:06 +08:00
1bfb788c4f Merge pull request #92438 from lawnjelly/fti_fix_visual_instance_identity
[3.x] Physics Interpolation - Fix `VisualInstance::set_instance_use_identit…
2024-05-28 11:16:23 +01:00
7130c1bebc Physics Interpolation - Fix VisualInstance::set_instance_use_identity_transform()
The logic for updating the `VisualServer` with the transform was the wrong way around.
2024-05-27 19:02:42 +01:00
1f0d9f04d2 Fix theme item parameter completion 2024-05-25 10:28:40 +08:00
0f5cadfb56 Fix Viewport interpolation mode
Viewport interpolation mode is a special case, which should be set to ON instead of INHERIT.
2024-05-20 10:28:58 +01:00
da3c95f325 Mesh merging - refactor to be backward compatible for CPU / GPU storage
Allows the old `merge_meshes()` function to work from the editor.
2024-05-19 07:44:36 +01:00
b045a7c92e Always look for unique node names in owner if not found in owned nodes
(cherry picked from commit 95ced4bbdc)
2024-05-01 12:04:27 +02:00
561a8eaf6e Merge pull request #88207 from lawnjelly/view_mesh_stats
[3.x] Editor 3D view mesh stats
2024-04-21 19:31:57 +01:00
36474d6142 Merge pull request #90928 from timothyqiu/toggle-tab-icon-3.x
[3.x] Fix TabContainer not updating content rect after toggling tab icon
2024-04-21 19:29:38 +01:00
bdf0f78e07 Editor 3D view mesh stats
Similar to information window, add a small optional window to display face count and other stats.
2024-04-21 08:20:18 +01:00
a73715cf55 Merge pull request #58577 from pfertyk/issue_58543_audio_not_paused
[3.x] Fix AudioStreamPlayer not paused on pause mode change
2024-04-20 09:18:46 +01:00
30dead8a5e Fix TabContainer not updating content rect after toggling tab icon 2024-04-20 16:12:45 +08:00
d56d1ff4d2 Deprecate NOTIFICATION_MOVED_IN_PARENT
* NOTIFICATION_MOVED_IN_PARENT makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILD_ORDER_CHANGED (and children_changed signal).
* Most of the previous tasks carried out by NOTIFICATION_MOVED_IN_PARENT are now done not more than a single time per frame.

This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
2024-04-20 07:52:05 +01:00
1869243644 Merge pull request #88807 from lawnjelly/portals_fix_enter_tree_order
[3.x] Portals - defer setting active in `VisualServer` until enter tree
2024-04-19 10:24:37 +02:00
ea68c2bfab Merge pull request #88946 from lawnjelly/fix_physics_on_floor_body
[3.x] Fix physics `on_floor_body` crash
2024-04-16 15:02:00 +01:00
db3fe5e5c3 Merge pull request #90669 from timothyqiu/owner-id-3.x
[3.x] Store `ObjectID` instead of pointer for KinematicCollision owner
2024-04-16 13:49:58 +01:00
33043c63d5 Fix SceneTree not respecting virtual process methods
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2024-04-16 18:49:02 +08:00
43862fbf44 Store ObjectID instead of pointer for KinematicCollision owner 2024-04-15 12:32:17 +08:00
ed952f82bd Add is_zero_approx methods to Vector{2,3} 2024-04-10 19:02:42 +08:00
fe65682937 Add Node.is_node_ready 2024-04-08 17:44:23 +08:00
90cf873979 Fix AudioStreamPlayer not paused on pause mode change
Fixes #58543.
2024-04-05 14:20:44 +02:00
a0f130e23c Optimize AnimationTree::_process_graph()
Removes redundant lookups on HashMap.
2024-03-18 09:01:41 +00:00
f8438601ef Physics Interpolation 2D - fix light and light occluder resetting
It turns out `NOTIFICATION_TRANSFORM_CHANGED` is deferred for these nodes, which can mean the transform is not set in the `VisualServer` until after the reset has been sent, even if the transform is set before the reset in script. This prevented the reset from acting correctly.

Here we explicitly set the transform prior to each reset, to ensure the `VisualServer` is up to date.
2024-03-16 16:02:22 +00:00
0f6d2c3441 Fix building with disable_3d 2024-03-16 11:31:23 +01:00
1ad9e856a0 Merge pull request #88198 from lawnjelly/fix_facecount_bug
[3.x] Fix `Mesh::get_face_count()`
2024-03-08 17:54:04 +01:00
ae7dfd1f13 Merge pull request #85437 from lawnjelly/lod_scene_side
[3.x] Discrete Level of Detail
2024-03-08 17:53:58 +01:00
9a9dccbaa2 Fix physics on_floor_body crash
Physics body previously stored the RID of a collision object and accessed it on the next frame, leading to a crash if the object had been deleted.
This PR stores the ObjectID in addition to the RID, and checks the object still exists prior to access.
2024-02-28 07:54:00 +00:00
788567987a Portals - defer setting active in VisualServer until enter tree
`set_portal_active()` was being called loading packed scenes prior to entering the tree, visual server portals had not been fully created at this point hence the call was being ignored with an error flagged.
This PR defers the call until after entering the tree.
2024-02-25 10:11:06 +00:00
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
a32a2613e9 Fix Mesh::get_face_count()
This fixes a minor bug whereby facecount was actually returning the facecount * 3.
There were no major problems from this, but it did mean the optional threshold poly count used when merging was out by a factor of 3.
2024-02-11 12:19:52 +00:00
1b5fa74e39 Discrete Level of Detail
Add scene side discrete level of detail.

New node `LOD` for UI, and `LODManager` within `World` for automatically updating child visibilities based on distance from cameras.
2024-02-10 18:54:25 +00:00
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
0aa22b8f13 Vertex cache optimizer
Optimizes indices to make good use of vertex cache on GPU.
2024-02-07 09:35:50 +00:00
e96ebf9218 Merge pull request #61568 from lawnjelly/merge_node
[3.x] Add MergeGroup node to simplify merging Meshes at runtime
2024-02-07 09:49:45 +01:00
dc776e46b6 Merge pull request #60246 from Calinou/directional-light-add-fade-start-3.x
[3.x] Backport DirectionalLight `fade_start` property
2024-02-07 09:49:21 +01:00
5eeb4f220d Merge pull request #87713 from lawnjelly/portal_include_in_bound
[3.x] Portals - include in bound and special cases in start room
2024-02-07 09:41:22 +01:00
991e922877 Merge pull request #86786 from lawnjelly/calinou_sdf_fixed
[3.x] Fix signed distance field font rendering
2024-02-07 09:40:59 +01:00
862d63e9f7 Merge pull request #81559 from matorin57/3.x-backport-finished-singal-GPU-particles
[3.x] Backport "Add `finished` signal to GPUParticles"
2024-02-07 09:39:49 +01:00