Commit Graph

83 Commits

Author SHA1 Message Date
cosparks 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
kleonc 983cdb2f54 Fix transform of Y-sorted branch-root 2024-04-16 14:26:47 +02:00
Ricardo Buring 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
Thaddeus Crews 9903e6779b
Enforce template syntax `typename` over `class` 2024-03-07 22:39:09 -06:00
markdibarry a62870956a Add new Parallax2D node 2024-03-03 15:46:40 -05:00
Rémi Verschelde dc2d1e3f47
Merge pull request #79452 from /ysort-update-first-item-position 2024-02-20 23:59:17 +01:00
Adam Scott 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
Rémi Verschelde 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
Yaohua Xiong 795fe74143 unify parameter names for 'RendererCanvasCull' 2023-12-24 10:18:34 +08:00
Yuri Sizov 34ecfff672 Avoid crashes when engine leaks canvas items and friends 2023-12-20 13:19:46 +01:00
Wilson E. Alvarez 80fb8db31f
Remove unnecessary assignments
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-12-13 11:06:26 -05:00
Rémi Verschelde 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
ShirenY 27f71c4e78 Transform mesh's AABB to skeleton's space when calculate mesh's bounds. 2023-12-09 11:41:15 +08:00
clayjohn 528b4a3283 Implement render info counters for the 2D renderer
This provides information for the debug monitors
2023-12-06 14:39:33 -07:00
kobewi 41fa6c32b4 Disable update spinner when debug redraw is active 2023-10-11 13:21:29 +02:00
Rémi Verschelde 4b7cc99bc1
Merge pull request #79169 from reduz/debug-canvas-item-redraw
Debug CanvasItem redraw
2023-10-11 08:40:05 +02:00
kobewi 09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
A Thousand Ships fdd3d36c6d [Servers] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-25 18:45:30 +02:00
Juan Linietsky 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
kleonc b7e5ea8a39 Update Y-sort position of the first item in the sorted subtree 2023-07-14 02:18:05 +02:00
kleonc bbb2a889d8 Fix Y-sort modulate for top-most Y-sorted CanvasItem 2023-06-12 13:33:26 +02:00
lawnjelly 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
Rémi Verschelde 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
Rémi Verschelde 6d88c83611
Merge pull request #71684 from kleonc/draw_polyline_simplify_antialiased
`RendererCanvasCull` Simplify drawing antialiased polyline
2023-05-24 08:44:19 +02:00
kleonc 5d8219b4fd Fix modulation propagation for Y-sorted CanvasItems 2023-05-15 01:32:41 +02:00
Danil Alexeev ba985ecf3f
Fix `draw_multiline_colors()` for `width < 0` 2023-03-14 09:43:56 +03:00
kleonc 728c51e362 CanvasItem::draw_polyline Support thin polylines drawn using line strip 2023-01-19 21:08:25 +01:00
kleonc f29e39cfd6 RendererCanvasCull Simplify drawing antialiased polyline 2023-01-19 17:08:39 +01:00
kleonc 43fc483e6c CanvasItem::draw_arc Clamp angle difference so arc won't overlap itself 2023-01-18 15:16:22 +01:00
Rémi Verschelde 2156250471
Merge pull request #62236 from MinusKube/master
Fix polyline not supporting closed polygons and not having a uniform width
2023-01-16 22:13:07 +01:00
MinusKube 01af885e69 Fix draw_polyline not supporting closed polygons and not having a uniform offset 2023-01-16 20:27:30 +01:00
Danil Alexeev a8cbb6245b
Fix scaling issue in `draw_line` and similar methods 2023-01-16 12:49:58 +03:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
bruvzg 20d9457f9d
Scale MSDF font outline with the font size and MSDF source size to match dynamic font behavior. 2022-12-17 22:47:54 +02:00
Yaohua Xiong 9bdc0cb16f draw fish bones for Path2D and Path3D
These fish bones are add to indicate the direction and local transforms alone the path.
2022-12-05 15:39:14 +08:00
Rindbee 7129718dc5 Fix child nodes still being drawn when the visible area of a control with `clip_contents` enabled is `0` 2022-12-01 19:47:33 +08:00
kobewi 1778301cd0 Add call_deferred() method to Callable 2022-11-04 17:24:34 +01:00
BimDav fcb9be66a2 Viewport canvas cull mask feature
Co-authored-by: Valentin Zagura <puthre@gmail.com>
2022-10-31 14:09:49 +01:00
bruvzg 0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
Hendrik Brucker e235bca995 Fix/restore BackBufferCopy 2022-09-15 02:36:39 +02:00
bruvzg bcc3643989
Add font LCD sub-pixel anti-aliasing support. 2022-08-23 08:47:21 +03:00
Rémi Verschelde f450f242b9
Merge pull request #62639 from Calinou/line-antialiasing-decrease-feather-width 2022-08-02 21:00:01 +02:00
Juan Linietsky d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
Xentripetal f514b82fd3 Account for relative z-indexes when y-sorting 2022-07-08 09:18:00 -05:00
Hugo Locurcio cf1ce8494d
Improve antialiased line drawing sharpness and respect of original width
Antialiased lines with a width of 2 pixels or more now use a smaller
feather width of 1.25 instead of 2.0. This makes them look sharper
and better preserves their original shape while still having good
antialiasing quality.

This also improves the appearance of thin antialiased lines by
slightly increasing their feather size (from 1.0 to 1.25). It
makes them appear a tad thicker, but the antialiasing quality is
much improved by doing this.
2022-07-02 18:45:42 +02:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Aaron Franke b831fb0a54
Rename Transform2D "elements" to "columns" 2022-04-29 08:02:39 -05:00
Bastiaan Olij 0b4fd92a17 Moved particles into ParticlesStorage 2022-04-17 13:13:22 +10:00