Commit Graph

7753 Commits

Author SHA1 Message Date
lawnjelly
bc607fb607 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.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-02-05 17:50:33 +00:00
lawnjelly
7f3800ece2 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-01-31 09:22:33 +00:00
lawnjelly
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
Rémi Verschelde
e9949a6db7
Merge pull request #87702 from lawnjelly/portal_export_logging
[3.x] Portals - Improve conversion logging
2024-01-29 23:30:11 +01:00
Rémi Verschelde
721eba5d5d
Merge pull request #87539 from SysError99/3.x-get_first_node_in_group
[3.x] Add `SceneTree::get_first_node_in_group` following 4.x
2024-01-29 23:29:04 +01:00
Rémi Verschelde
6f3c5e63f3
Merge pull request #82584 from lawnjelly/lightcull_23
[3.x] Shadow volume culling and tighter shadow caster culling
2024-01-29 23:27:56 +01:00
Rémi Verschelde
4e741ec2ba
Merge pull request #64493 from Mickeon/3.x-editor-group
[3.x] Add Node editor description group
2024-01-29 23:27:07 +01:00
lawnjelly
5e0b298d50 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-01-29 14:21:22 +00:00
SysError99
99284482bc [3.x] Add SceneTree::get_first_node_in_group following 4.x 2024-01-26 21:26:40 +07:00
kobewi
c377bffaa1 Preserve selection when focusing SpinBox 2024-01-18 16:38:05 +01:00
Rémi Verschelde
e653473646
Merge pull request #86725 from Mickeon/3-x-remove-unused
[3.x] Remove unused struct in GradientTexture1D
2024-01-05 11:07:44 +01:00
Aaron Franke
ab9ed3245d
[3.x] Add "position" as an alias for "translation" in Spatial 2023-12-05 17:25:48 -06:00
Hugo Locurcio
4fefb136ea
Backport DirectionalLight fade_start property to 3.x
- Implement shadow fading when using the Orthogonal shadow mode
  (like in `master`).

This allows customizing the distance at which directional shadows
start to fade away. Shadow fading will also always start at the same
distance now, regardless of the current shadow mode in use.

This is useful for enclosed levels to prevent shadows from fading
at all with a well-tuned maximum distance.

The default fade start value (0.8) results in fading happening later
in the distance compared to the previous behavior, where fading started
from the last shadow split distance (0.6 in PSSM 4 Splits and
0.1 in PSSM 2 Splits).
2023-11-20 12:41:55 +01:00
lawnjelly
8ca631a466 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)
2023-11-14 14:17:57 +00:00
Rémi Verschelde
010f53a0b6
Merge pull request #84115 from Chubercik/item_list_separator_fix
[3.x] Remove the separator from `ItemList`'s thumbnails mode
2023-11-14 11:37:33 +01:00
Jakub Marcowski
6637dc28f6 Remove the separator from ItemList's thumbnail mode 2023-10-28 20:20:34 +02:00
kleonc
0cde6800e7 Make gizmo plugin handle SpriteBase3D instead of Sprite3D 2023-10-06 10:43:07 +02:00
Rémi Verschelde
5f9cbe514d
Merge pull request #75468 from Ansraer/four_is_overkill
[3.x] Add support for 3 dir shadow splits
2023-10-01 22:50:57 +02:00
lawnjelly
1f4a6e43df Fix zero scale in particle shader
Fixes the lower bounding of scale when given zero input.

The previous bug was due to `sign` returning 0 with 0.0 input, rather than 1.
2023-09-19 08:30:50 +01:00
lawnjelly
3e19cf834a CPUParticles2D - Add ability to follow physics interpolated target
Allows a non-interpolated particle system to closely follow an interpolated target without tracking ahead of the target, by performing fixed timestep interpolation on the particle system global transform, and using this for emission.
2023-09-18 16:05:03 +01:00
lawnjelly
bc1426dd70 CPUParticles2D - non-interpolated global mode use global space
Changes the implementation of non-interpolated global mode particles so that the vertices are specified in proper global space instead of local space (vertices were previously back transformed by the inverse of the parent transform).
2023-09-18 16:05:03 +01:00
Rémi Verschelde
1b4bae595e
Merge pull request #80955 from lawnjelly/fti2d_more_resets
[3.x] Physics Interpolation - automatic resets for Camera2D and TileMap
2023-09-18 17:00:05 +02:00
Rémi Verschelde
cc48c1825f
Merge pull request #80887 from lawnjelly/cpuparticles2d_fix_double_xform
[3.x] CPUParticles2D - fix interpolated transforms and culling
2023-09-18 17:00:00 +02:00
Rémi Verschelde
9eb4d5d5de
Merge pull request #80827 from lawnjelly/fix_cpu_particles_notif_transform
[3.x] CPUParticles - fix non-interpolated `NOTIFICATION_TRANSFORM`
2023-09-18 16:59:57 +02:00
Rémi Verschelde
d6c2a4bf68
Merge pull request #81352 from MJacred/3.x
[3.x] Fix cursor after last character INDEX in line counting as a character outside of the viewing area
2023-09-18 11:36:12 +02:00
DESKTOP-UT43QTQ\Garrigan-Desktop
2a319ab6fc Backporting #76859 to 3.x
Co-authored-by: HolonProduction <holonproduction@gmail.com>
2023-09-12 09:45:23 -05:00
Rémi Verschelde
4461f38c0b
Merge pull request #81409 from timothyqiu/social-distance
[3.x] Fix PopupMenu icon and text not having separation
2023-09-07 13:24:34 +02:00
Haoyu Qiu
78a11ea48c Fix PopupMenu icon and text not having separation 2023-09-07 18:14:44 +08:00
A Thousand Ships
d0a98e1ddc Make TextureButton and Button update on texture change 2023-09-06 16:44:12 +02:00
MJacred
55cdaebdf9 Fix cursor after last character in line counting as a character outside of the viewing area
The cursor column can be after the last_visible_char index and still be visible.
2023-09-05 19:36:17 +02:00
Haoyu Qiu
aea0c1235d Fix TouchScreenButton not redrawn when texture changes
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-08-29 18:08:28 +08:00
Paweł
268f83e07f
Fix scrolling behaviour with low page value
(cherry picked from commit 1608bea188)
2023-08-28 17:27:13 +02:00
Haoyu Qiu
d6221bd614
Notify child controls when BackBufferCopy's rect changed
(cherry picked from commit 602a0d2fbc)
2023-08-28 17:27:13 +02:00
lawnjelly
09b79ead80 Physics Interpolation - automatic resets for Camera2D and TileMap.
Extra reset required for Camera2D. TileMaps require resetting by quadrant.
2023-08-24 10:18:12 +01:00
lawnjelly
65f72c8c02 CPUParticles - fix non-interpolated NOTIFICATION_TRANSFORM
Updates global particle transforms immediately on receiving notification, to match legacy behaviour.
2023-08-22 18:35:00 +01:00
lawnjelly
723632a76a 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.
2023-08-22 12:57:54 +01:00
Rémi Verschelde
cf4ccdfb09
Merge pull request #79598 from TokageItLab/orderdhashmap-blendtree
[3.x] Make AnimationNodeBlendTree use `OrderedHashMap` insteads `Map`
2023-08-18 17:52:15 +02:00
Rémi Verschelde
21ab700f2d
Merge pull request #80406 from lawnjelly/animated_sprite_normal_fix
[3.x] Fix AnimatedSprite normal map loading
2023-08-15 09:04:35 +02:00
Rémi Verschelde
95877b8e1f
Merge pull request #80289 from lawnjelly/fti_2d_reset_on_enter
[3.x] Physics Interpolation 2D - reset on NOTIFICATION_ENTER_TREE
2023-08-08 14:28:23 +02:00
lawnjelly
d02b319ec4 Fix AnimatedSprite normal map loading
Normal map names are now correctly set up during loading.
2023-08-08 09:42:55 +01:00
lawnjelly
bcfca5ec86 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.
2023-08-05 08:33:19 +01:00
lawnjelly
a117a3307a Physics Interpolation - add support for CPUParticles2D
Similar to the existing 3D CPUParticles physics interpolation.
2023-08-03 14:44:08 +01:00
Rémi Verschelde
078e1b9f45
Merge pull request #79498 from lawnjelly/multirect_fix_flushing
[3.x] MultiRect - Fix flushing in TextEdit
2023-08-02 17:27:35 +02:00
lawnjelly
5162efbfe9 2D Fixed Timestep Interpolation
Adds support to canvas items and Camera2D.
2023-08-01 16:07:48 +01:00
Silc Lizard (Tokage) Renew
06a98b809a [3.x] Make AnimationNodeBlendTree use OrderedHashMap insteads Map 2023-07-18 17:56:24 +09:00
lawnjelly
8814578ceb 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-07-15 14:02:21 +01:00
lawnjelly
43e181a00a Single Compilation Unit build.
Adds support for simple SCU build.
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-07-02 20:13:16 +01:00
Rémi Verschelde
29eeb461f2
Merge pull request #68738 from lawnjelly/faster_canvas_item
[3.x] Canvas item hierarchical culling
2023-06-27 08:40:22 +02:00
Maganty Rushyendra
7958ceaab8
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-19 16:18:51 +02:00
Rémi Verschelde
9ba9a41766
Merge pull request #78220 from raulsntos/dotnet/reserved-assembly-name-3.x
[3.x] C#: Avoid GodotSharp as project assembly name
2023-06-15 15:55:19 +02:00
Rémi Verschelde
3b3c5f413e
Merge pull request #77979 from paddy-exe/video-loop-fix
[3.x] Backport video loop property and fix for initial black frame
2023-06-15 15:55:14 +02:00
Rémi Verschelde
b91d8d49fa
Merge pull request #78182 from godotengine/revert-63193-visibility_enabler2
Revert "Add option in VisibilityEnabler2D to hide the parent for better performance"
2023-06-13 16:03:30 +02:00
Rémi Verschelde
eaca9a17c3
Revert "Add option in VisibilityEnabler2D to hide the parent for better performance" 2023-06-13 14:25:19 +02:00
wareya
a40ecc71e6 move autotile fallback helper functions + fix comments and docs 2023-06-10 12:17:57 -04:00
wareya
73ad6517e4 make autotiles fall back to the most similar bitmask using heuristics 2023-06-09 22:27:19 -04:00
Patrick
58d76c117e [3.x] Backport VideoLooping and fix for initial black frame 2023-06-07 21:36:37 +02:00
Rémi Verschelde
b15f7c1319
Merge pull request #77691 from rsubtil/fix_popupmenu_auto_height
[3.x] Fix `PopupMenu`'s automatic max height
2023-06-07 14:46:30 +02:00
Rémi Verschelde
450902ad3f
Merge pull request #77403 from KoBeWi/RichHackLabel
[3.x] Cache text property when toggling BBCode
2023-06-07 14:46:27 +02:00
Rémi Verschelde
f742d98679
Merge pull request #75959 from ShadyChibinko/tab_metadata_3x
[3.x] Add tab Metadata to Tabs & TabContainer
2023-06-07 14:46:21 +02:00
Ricardo Subtil
7fdfed2a9e Fix PopupMenu's maximum height not being automatically set 2023-05-31 10:53:09 +01:00
Rémi Verschelde
894739109d
Merge pull request #77245 from novalis/slider-3.5
[3.x] Stop dragging when Slider changes editability
2023-05-23 19:05:29 +02:00
Rémi Verschelde
f1fa69a58d
Merge pull request #76753 from Calinou/itemlist-tree-add-allow-search-property-3.x
Add allow_search property to ItemList and Tree (3.x)
2023-05-23 19:05:25 +02:00
kobewi
95feb6bb82 Cache text property when toggling BBCode 2023-05-23 19:04:39 +02:00
David Turner
f6b918a1ca Stop dragging when a slider changes editability 2023-05-19 11:31:34 -04:00
lawnjelly
6f8e632848 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-05-11 09:51:44 +01:00
lawnjelly
43b6205887 Multirect - Fix refining regions for all derived Textures
Fixes allowing all derived texture types to modify region prior to rendering.
2023-05-08 14:48:46 +01:00
Rémi Verschelde
627a2909c2
Merge pull request #76833 from kleonc/gridcontainer-max-row-column-calculations-fix
[3.x] Fix `GridContainer` max row/column calculations not skipping hidden children
2023-05-08 15:06:28 +02:00
Rémi Verschelde
e250950760
Merge pull request #76703 from kleonc/tilemap-nested-atlas-texture-rendering-fix
[3.x] Fix rendering tiles using nested AtlasTextures
2023-05-08 14:58:07 +02:00
kleonc
0ce6ef7215 Fix GridContainer max row/column calculations not skipping hidden children 2023-05-08 12:51:28 +02:00
needleful
aac5558760
Add allow_search property to ItemList and Tree 2023-05-05 18:02:49 +02:00
kleonc
12c923cb8b Fix rendering tiles using nested AtlasTextures 2023-05-03 18:29:28 +02:00
Ninni Pipping
48347499c2 Fix size error in BitMap.opaque_to_polygons
Previous estimate of upper limit on size was incorrect
2023-04-28 19:03:49 +02:00
Rémi Verschelde
83e91ab818
Merge pull request #76323 from aaronfranke/3.x-t2d-basis-det
[3.x] Expose `determinant` in Transform2D, rename internal method
2023-04-26 12:17:00 +02:00
lawnjelly
b777a9e5f9 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.
2023-04-25 20:17:33 +01:00
Rémi Verschelde
bfb6877b3c
Merge pull request #75612 from lawnjelly/fix_skele2d_bounds2
[3.x] Fix Polygon2D skinned bounds (for culling)
2023-04-25 16:24:59 +02:00
Rémi Verschelde
54e293bfcb
Merge pull request #69952 from lawnjelly/canvas_layer_ordering
Consistent render ordering for CanvasLayers
2023-04-25 16:24:57 +02:00
Rémi Verschelde
31224276ee
Merge pull request #63193 from BimDav/visibility_enabler2
Add option in VisibilityEnabler2D to hide the parent for better performance
2023-04-25 16:24:54 +02:00
Fredia Huya-Kouadio
de20011cbe Make tab's close button responsive to touch taps 2023-04-22 20:31:18 -07:00
Aaron Franke
141783d90f
[3.x] Expose determinant in Transform2D, rename internal method 2023-04-22 13:47:47 -05:00
Rémi Verschelde
a6b01ca69d
Merge pull request #75995 from AThousandShips/3_x_autohide_theme
[3.x] Don't apply scale to autohide theme property
2023-04-17 17:25:35 +02:00
Rémi Verschelde
e3656745cc
Merge pull request #69723 from lawnjelly/surface_tool_revamp
SurfaceTool - efficiency improvements
2023-04-17 17:25:30 +02:00
Rémi Verschelde
4c5a934408
Merge pull request #68960 from lawnjelly/multirect
Batching - Add MultiRect command
2023-04-17 17:25:20 +02:00
Ninni Pipping
1c66257568 [3.x] Don't apply scale to autohide theme property 2023-04-12 17:45:27 +02:00
lawnjelly
dd6c213dac 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.
2023-04-12 10:17:02 +01:00
ShadyChibinko
7af43733e1 Add Tab Metadata 2023-04-11 20:36:48 -04:00
Rémi Verschelde
baf2fe8771
Merge pull request #74870 from rsubtil/range_value_no_signal
[3.x] Add `set_value_no_signal()` to Range
2023-04-11 10:53:30 +02:00
Rémi Verschelde
564622af51
Merge pull request #69645 from radenling/backport-fix-viewport-update-in-editor
[3.x] Fix for 2D viewport not updating in the editor when the camera moves
2023-04-11 10:53:20 +02:00
Ansraer
54bc6a300e add support for 3 dir shadow splits 2023-03-29 13:40:17 +02:00
Richard Adenling
3cfbabfa59 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-03-26 20:49:59 +02:00
kobewi
fdae01de10 Add set_value_no_signal() to Range 2023-03-13 16:36:18 +00:00
lawnjelly
1730fab22a Consistent render ordering for CanvasLayers
Maintains scene tree ordering for CanvasLayers that share identical layer ID.
2023-03-12 05:00:13 +00:00
lawnjelly
57306bf0e3 Fix TextEdit color_region_cache bug
Due to a single error, _is_line_in_region was previously iterating over the color highlighting for the entire document repeatedly for each line in the script.

This is now fixed, which should make the editor much faster with large scripts.
2023-03-11 16:18:29 +00:00
lawnjelly
910ddd13c4 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.
2023-03-10 10:58:04 +00:00
Rémi Verschelde
d627f4f80d
Merge pull request #74085 from AThousandShips/tree_set_selected_3_x
[3.x] Backport Tree::set_selected
2023-03-06 12:36:56 +01:00
Ninni Pipping
8185fa8e2a [3.x] Backport Tree::set_selected
Backport function from godotengine#68448

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-02-27 20:26:15 +01:00
smix8
c7a92f68a1 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-02-24 00:36:30 +01:00
Rémi Verschelde
89788cdcc2
Merge pull request #70514 from stmSi/fix-editor-hanging-audio-pitch-scale-nan
[3.x] Fix hanging if audiostream's pitch_scale is NaN
2023-02-17 12:15:27 +01:00
Rémi Verschelde
b53302891a
Merge pull request #73206 from akien-mga/3.x-rtl-custom_effects-fix-hint
RichTextLabel: Fix hint string for custom_effects property
2023-02-13 13:08:36 +01:00
Rémi Verschelde
48217503c5
Merge pull request #68576 from Maran23/rich-text-label-bbcode-color-tag-fix
[3.x] Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
2023-02-13 13:08:13 +01:00
Rémi Verschelde
32b3ef7727
RichTextLabel: Fix hint string for custom_effects property
Fixes #73190.
2023-02-13 09:26:32 +01:00