Commit Graph

646 Commits

Author SHA1 Message Date
lawnjelly
c7888ff2da Mesh merging - refactor to be backward compatible for CPU / GPU storage
Allows the old `merge_meshes()` function to work from the editor.
2024-07-14 08:16:10 +02:00
lawnjelly
21f913be43 Fix physics tick counter
The counter is now incremented at the start of a physics tick rather than the end.
2024-07-14 08:12:52 +02:00
kleonc
e5ec234b16 Fix AtlasTexture::draw_rect flipping for non-zero margin 2024-07-14 07:52:01 +02:00
Haoyu Qiu
144e69dc2c Fix TabContainer not updating content rect after toggling tab icon 2024-07-14 07:50:36 +02:00
18335d938c Revert "Ignore a maybe-uninitialized warning in AudioStreamPlayer3D."
This reverts commit 05f19a003b.
2024-06-18 13:44:32 +02:00
05f19a003b Ignore a maybe-uninitialized warning in AudioStreamPlayer3D. 2024-06-18 10:32:33 +02:00
3b84801274 Added a group for the toplevel property in Node2D. 2024-05-11 10:37:52 +02:00
1b14af3a98 Moved the y_sort property from YSort to Node2D. Node2d has it off by default while YSort has it on by default. 2024-05-10 17:23:52 +02:00
f09ab537e0 Clang-format everything. 2024-04-21 15:27:36 +02:00
2c09e8c8af Fix compile error. 2024-04-21 14:58:11 +02:00
789e640b9d Fix build. 2024-04-21 14:54:17 +02:00
Paweł Fertyk
2154c87432 Fix AudioStreamPlayer not paused on pause mode change
Fixes #58543.
2024-04-21 14:27:49 +02:00
lawnjelly
91090ff296 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-04-21 14:22:52 +02:00
lawnjelly
64bbac30ee 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-04-21 14:20:26 +02:00
Haoyu Qiu
b67115fd35 Store ObjectID instead of pointer for KinematicCollision owner 2024-04-21 14:17:59 +02:00
Haoyu Qiu
9f75f7dfc0 Fix SceneTree not respecting virtual process methods
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2024-04-21 14:15:45 +02:00
6faa98c32a Backported from godot4: Save PackedByteArrays as base64 encoded.
- groud
de5073519e
2024-04-14 17:32:05 +02:00
Haoyu Qiu
441bb29fd3 Add is_zero_approx methods to Vector{2,3} 2024-04-14 16:44:38 +02:00
Haoyu Qiu
1d18b076de Add Node.is_node_ready 2024-04-14 16:35:04 +02:00
577376b61f Fix AnimationTree. 2024-04-06 14:00:16 +02:00
f6d9ca069f Fix build. 2024-04-06 13:46:57 +02:00
4f93164401 Backported ORMSpatialMaterial from Godot 3.x without any breaking changes. 2024-04-06 12:57:23 +02:00
A Thousand Ships
240585c58b Fix building with disable_3d 2024-04-06 12:25:17 +02:00
lawnjelly
909acac329 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-04-06 12:06:01 +02:00
lawnjelly
942a304f4e 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-04-06 11:02:42 +02:00
lawnjelly
010b8ba73b Optimize AnimationTree::_process_graph()
Removes redundant lookups on HashMap.
2024-04-06 10:59:29 +02:00
lawnjelly
da78ed110a 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-04-06 10:42:03 +02:00
c0805afa6c Rework the vertex light 3d module to actually be 3d. 2024-03-27 16:02:08 +01:00
cd8f79865e Added a property to World2D for the vertex light 2d map. 2024-03-27 08:16:48 +01:00
d7a54d702d Free vertex_lights_2d_map in World2D's destructor. 2024-03-25 09:17:44 +01:00
3fc75ad15f Set up VertexLight2D maps. 2024-03-24 22:14:26 +01:00
272ae15993 Now tooltips won't get scaled to their original control's scale anymore by default. Added a new gui_scale_tooltips property to Viewport to be able to use the previous behaviour when it's desired. 2024-03-13 16:55:47 +01:00
105115dbb3 Removed clips_input() method and _clips_input() virtual method from Control. Made clip_contents to also have an input clipping effect, since I couldn't think any single instance where keeping them separated would be useful.
This fixes LayeredTileMap's editors clipping input while being invisible, and likely other smaller issues.
2024-03-12 17:29:22 +01:00
b11bd949cc Backported from Godot4: Allow disabling scrolling in Tree.
- groud
b2dddc3c82
2024-03-11 13:46:53 +01:00
60eb59ab19 Backpoered from Godot 4: Add is_built_in() method to Resource.
- KoBeWi
e393c2a734
2024-03-08 21:16:16 +01:00
be0b5b5bdc Backported from Godot4: Implement Tabs minimum size.
- groud
898a2a7cf3
2024-03-07 21:57:49 +01:00
2b85fcdbb5 Backported ViewPanner from Godot4. It also got bindings, now inherited from Resource, and is registered in the ClassDB. 2024-03-01 22:39:19 +01:00
cf7b59b6c8 Fix small formatting inconsistencies. 2024-03-01 16:25:19 +01:00
6a6d3acd96 Clang format everything. 2024-03-01 11:56:19 +01:00
a5d8696021 Ported: Vertex cache optimizer
Optimizes indices to make good use of vertex cache on GPU.
- lawnjelly
0aa22b8f13
2024-02-08 21:35:01 +01:00
c3c6d64a50 Portred: Add MergeGroup node to simplify merging Meshes at runtime.
- lawnjelly
8b79135538
2024-02-08 21:00:07 +01:00
ae7409bf52 Ported: Fix signed distance field font rendering
This fix works in both GLES3 and GLES2.
The rendering formula in the shader was adjusted to further improve the
sharpness/antialiasing quality balance.
- lawnjelly and Calinou
bc607fb607
2024-02-08 19:11:34 +01:00
5d2a594843 Ported: Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling using the BVH takes no account of the camera. This PR adds the highly encapsulated class VisualServerLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
This is used to:
* More accurately defer dirty updates to shadows when the shadow volume does not intersect the camera frustum.
* Tighter cull shadow casters to the view frustum.
Lights dirty state is now automatically managed:
* Continuous (tighter caster culling)
* Static (all casters are rendered)
- lawnjelly
8ca631a466
2024-02-08 18:40:44 +01:00
lawnjelly
61645f36f3 Portals - Improve conversion logging
Logging is now allowed in any TOOLS build (rather than just in the editor), but still prevented in final exports.
Logging can be switched off via project settings.
Autoplacement is now logged.
2024-02-08 15:12:23 +01:00
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
Micky
d1621245e6 Add Editor Description group
Backport from 4.0
2024-02-08 14:56:04 +01:00
kobewi
1a98244aac Preserve selection when focusing SpinBox 2024-02-08 14:44:21 +01:00
Micky
4e68cd0251 Remove unused struct in GradientTexture1D 2024-02-08 13:25:47 +01:00
1d8e1f7065 Fixed TextEdit width calculation after it's font changes. This fixes lines being too long to scroll to in the editor. 2024-01-12 12:43:39 +01:00
8d67178204 Backported from godot4: Fix TextEdit.get_rect_at_line_column returning negative pos even though cursor is in viewable area of the control
- MJacred
6170381bd7
2024-01-12 12:24:09 +01:00