Commit Graph

110 Commits

Author SHA1 Message Date
594fd1da49 FTI - Optimize non-interpolated 2D items 2025-10-03 08:38:46 +01:00
c62356fcaa Merge pull request #85080 from Cykyrios/draw-ellipse
Add methods to draw ellipses
2025-09-23 12:08:51 -05:00
89503e387a fixed tile map tiles displaying incorrectly based on visibility layer 2025-09-21 19:03:21 -04:00
9f7c3d00dd Add methods to draw ellipses 2025-09-19 10:45:16 +02:00
101dc9868f Implement the count parameter in RenderingServer.canvas_item_add_triangle_array() 2025-05-14 22:52:30 +09:00
3947cbe3b2 Merge pull request #104386 from Repiteo/core/cpp-math
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
1a70a06a43 Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
b676944dcf Ensure instance uniforms are freed by updating dirty items before freeing. 2025-02-06 14:45:55 -08:00
24b502b13a Fix Y-sorted root item having modulation applied twice 2025-01-28 14:21:36 +01:00
56fc0fd175 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.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2025-01-24 14:13:20 +01:00
62c17911ea Add more property hint ranges for project settings
- Tweak property hint ranges for some networking settings to ensure
  the minimum values don't break the debugger entirely.
- Ensure shader time rollover is set to at least 1, as 0 causes a division by
  zero to occur.

All relevant project settings are now covered by a range hint.
2024-12-23 18:22:32 +01:00
ceefc0d38a Implement 2D instance shader parameters
Co-authored-by: kobewi <kobewi4e@gmail.com>
Co-authored-by: yesfish <huwpascoe@users.noreply.github.com>
Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
2024-12-17 23:59:16 +01:00
3ded11d0bc Merge pull request #85359 from miv391/faster-exit-from-cull_canvas_item
Faster exit from `_cull_canvas_item` if alpha is zero
2024-11-18 09:23:51 -06:00
39423d99fa Faster exit from _cull_canvas_item if alpha is zero 2024-11-16 13:27:45 +02:00
bb5f390fb9 Style: Apply clang-tidy fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
8d3e9aa7ae Revert incorrect rounding when 2D transform snapping 2024-10-15 10:43:42 +02:00
c170f1afd2 Don't recalculate final render transforms for Y-sorted canvas items 2024-09-05 17:45:38 +02:00
029045bcb6 Account for physics interpolation and transform snapping when Y-sorting 2024-09-05 17:45:37 +02:00
1bd8372813 Fix Parallax2D repeats being not relative to its transform 2024-08-19 11:43:16 +02:00
6b17d51425 Add alternative pixel rounding 2024-06-29 10:33:39 -04:00
95813793b4 Add repeats in ysort child collection 2024-06-15 10:53:32 -04:00
f0983f1b1c Add cull fix for scale repeat 2024-06-04 11:52:34 -04:00
ed3d311687 Add antialias support for CanvasItem draw primitives
including
- rect, circle; both filled and unfilled.
- polyline, multiline
2024-05-13 19:03:31 +08:00
31e7ee63f2 Fix unsafe uses of Callable.is_null()
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
6d0dca76c0 Fixes SDF Collision Enable/Disable
- sets LightOccluderInstance field when sdf collision is updated
- adds check for light occluder sdf_collision field in 2d renderers
2024-04-22 20:27:56 -07:00
983cdb2f54 Fix transform of Y-sorted branch-root 2024-04-16 14:26:47 +02:00
2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
9903e6779b Enforce template syntax typename over class 2024-03-07 22:39:09 -06:00
a62870956a Add new Parallax2D node 2024-03-03 15:46:40 -05:00
dc2d1e3f47 Merge pull request #79452 from /ysort-update-first-item-position 2024-02-20 23:59:17 +01:00
35b640107f Stabilize snapping 2D transforms to pixel
Co-authored-by: Danni <34800072+KeyboardDanni@users.noreply.github.com>
2024-02-12 11:04:01 -05:00
673102ffd8 Merge pull request #85520 from YuriSizov/rendering-gracefully-leak-canvas-items
Avoid crashes when engine leaks canvas items and friends
2024-01-09 15:30:55 +01:00
795fe74143 unify parameter names for 'RendererCanvasCull' 2023-12-24 10:18:34 +08:00
34ecfff672 Avoid crashes when engine leaks canvas items and friends 2023-12-20 13:19:46 +01:00
80fb8db31f Remove unnecessary assignments
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-12-13 11:06:26 -05:00
342531597b Merge pull request #85811 from clayjohn/2D-render-info
Implement render info counters for the 2D renderer
2023-12-12 10:41:06 +01:00
27f71c4e78 Transform mesh's AABB to skeleton's space when calculate mesh's bounds. 2023-12-09 11:41:15 +08:00
528b4a3283 Implement render info counters for the 2D renderer
This provides information for the debug monitors
2023-12-06 14:39:33 -07:00
41fa6c32b4 Disable update spinner when debug redraw is active 2023-10-11 13:21:29 +02:00
4b7cc99bc1 Merge pull request #79169 from reduz/debug-canvas-item-redraw
Debug CanvasItem redraw
2023-10-11 08:40:05 +02:00
09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
fdd3d36c6d [Servers] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-25 18:45:30 +02:00
407b16ab00 Debug CanvasItem redraw
I wanted to add this tool for years and always forget. This command line option:

```
$ godot.exe -e --debug-canvas-item-redraw
```

Allows to see when a canvas item is redrawn. This helps find out if something
in the UI is refreshing in a way it should not. Examples as such:

* Signals causing more of the UI to redraw.
* Container resizing causes more UI elements to redraw.
* Something using a timer is redrawing all time time, which can go unnoticed.

To my surprise, the editor UI is redrawing very efficiently. There is some
weird stuff with the scene tabs, redrawing when the inspector changes but most
things for the most part are fine.
2023-08-28 12:53:56 +02:00
b7e5ea8a39 Update Y-sort position of the first item in the sorted subtree 2023-07-14 02:18:05 +02:00
bbb2a889d8 Fix Y-sort modulate for top-most Y-sorted CanvasItem 2023-06-12 13:33:26 +02:00
b69c8b4791 Single Compilation Unit build.
Adds support for simple SCU build (DEV_ENABLED only).
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-06-06 15:36:51 +01:00
0821262167 Merge pull request #77079 from kleonc/y_sort_fix_modulation_propagation
Fix modulation propagation for Y-sorted CanvasItems
2023-05-24 08:47:50 +02:00