Markus Sauermann
7f317ef1bf
Remove `CanvasItem::_invalidate_global_transform`
...
The only use of that function can be replaced by `_notify_transform`,
which makes the `propagate_call` unnecessary.
As far as I can tell, the `data.blocked`-checks of `propagate_call`
are not needed in this case, because `_invalidate_global_transform`
causes no user-noticeable changes.
2023-08-30 00:29:42 +02:00
Markus Sauermann
152572ac38
Fix global transform validity for `Node2D` and `Control`
...
Set global transform to invalid when changing transform
2023-08-08 12:22:55 +02:00
kleonc
edba45ec8b
Fix click-selecting Sprites with repeated texture
2023-06-22 16:37:08 +02:00
Ninni Pipping
dcd2b883eb
Use NULL instead of COND checks when appropriate
...
Restricted to scene
2023-06-10 08:56:30 +02:00
Pedro J. Estébanez
50cf3d6966
Optimize threading-sensitive node data for single-threaded processing
2023-05-17 02:04:41 +02:00
Rémi Verschelde
59c19a7172
Merge pull request #75250 from bruvzg/lbl_rtl_jst_flags
...
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification.
2023-05-16 10:48:45 +02:00
bruvzg
9163d8c336
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification.
2023-05-15 19:23:54 +03:00
Juan Linietsky
0a9f72d5a8
Make more base nodes thread safe
...
Ongoing work to make more of the base nodes thread safe.
2023-05-15 16:54:10 +02:00
Rémi Verschelde
bbe05b60c8
Merge pull request #57179 from spacechase0/notify-world2d-changed-master
...
Propagate previously unused NOTIFICATION_WORLD_2D_CHANGED, make CanvasItem/CollisionObject2D use it
2023-05-08 16:40:00 +02:00
Max Hilbrunner
fa451ead91
Merge pull request #74883 from dalexeev/fix-thin-multiline-colors
2023-05-05 14:26:37 +02:00
Chase Warrington
46e06ee1e6
Propogate previously unused NOTIFICATION_WORLD_2D_CHANGED, make CanvasItem/CollisionObject2D use it
2023-05-01 18:26:55 -04:00
kobewi
727a4ed79a
Fix invalid global position when read outside tree
2023-04-18 22:14:01 +02:00
Yuri Sizov
377d8845da
Merge pull request #75890 from YuriSizov/gui-remember-window-state
...
Always cache parent visibility in `CanvasItem`
2023-04-18 13:07:41 +02:00
angel-721
e347d7d64d
Rename internal root canvas group to start with underscore
2023-04-16 17:42:21 -06:00
Yuri Sizov
fd6a743823
Always cache parent visibility in CanvasItem
2023-04-10 16:18:46 +02:00
Juan Linietsky
104392ef4e
Remove NOTIFICATION_MOVED_IN_PARENT
...
* This notification makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILDREN_CHANGED (and children_changed signal).
* Changed Canvas code (and similar) to use the above signal, to perform more efficiently.
This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
It is required for the changes in #75627 to be entirely effective.
2023-04-06 13:57:13 +02:00
kleonc
6e3820fd4d
CanvasItem Fix ENTER_CANVAS / VISIBILITY_CHANGED notifications order when entering tree
2023-03-22 20:01:22 +01:00
Danil Alexeev
ba985ecf3f
Fix `draw_multiline_colors()` for `width < 0`
2023-03-14 09:43:56 +03:00
bruvzg
7246b229e1
Set RTL minimal dash size to 2.0, add invalid dash size error to the `draw_dashed_line`.
2023-02-17 08:53:08 +02:00
bruvzg
4dfa161120
Add dash and step size checks to draw_dashed_line.
2023-02-16 17:49:18 +02:00
Danil Alexeev
b8eda519d0
Optimize `draw_dashed_line()` and `draw_rect()`
2023-02-08 10:44:12 +03:00
Rémi Verschelde
82ff7b4bce
Merge pull request #68492 from Sauermann/fix-picking-sort
...
Fix propagation order for 2D physics picking events
2023-02-06 15:38:38 +01:00
Markus Sauermann
6e855e3820
Fix propagation order for 2D physics picking events
...
This patch adds a viewport-configuration-option for sorting
physics-picking events by the Z-Index and the scene tree position
of the collision objects.
2023-02-04 22:44:36 +01:00
Markus Sauermann
3bc426c9d8
Fix toplevel nomenclature
...
toplevel was 3.x
top_level is 4.x
2023-02-02 17:37:41 +01:00
Rémi Verschelde
394bb0ee2b
Fix various typos with codespell
...
Finally do the childs -> children rename too.
2023-02-01 08:45:41 +01:00
Rémi Verschelde
4cfdd25384
Merge pull request #67507 from Sauermann/fix-toplevel-root-control-node
...
Fix event propagation to child after set_as_toplevel
2023-01-31 15:55:46 +01:00
Rémi Verschelde
2e0d9efb72
Merge pull request #72115 from AThousandShips/clip_children_fix
...
Hide `clip_children` for some non-drawn CanvasItems
2023-01-30 10:02:54 +01:00
Ninni Pipping
bbf203bc32
Hide clip_children for non-drawn CanvasItems
2023-01-30 08:22:06 +01:00
Rémi Verschelde
13e20fed99
Merge pull request #68627 from Sauermann/fix-tooltip-position
...
Fix position of Tooltips
2023-01-26 16:00:14 +01:00
Markus Sauermann
c4ed247f5f
Fix position of Tooltips
...
CanvasItem::get_screen_transform returns a transform from the CanvasItem
to the coordinate system, where a Popup - created as a child of the
CanvasItem - should be opened.
get_screen_transform makes some simplifications, that work well, when used
in the editor, but not in general cases.
Since Popups like Tooltips are now used more commonly in projects,
it becomes necessary to correct these simplifications.
This solution introduces Viewport::get_popup_base_transform, which makes
the necessary calculations.
2023-01-26 15:15:14 +01:00
Rémi Verschelde
229c82690d
Merge pull request #70294 from KoBeWi/treedulate
...
Add a method to get global modulate
2023-01-21 20:51:42 +01:00
Rémi Verschelde
9fc40123ab
Merge pull request #71679 from kleonc/draw_polyline_line_strip
...
`CanvasItem::draw_polyline` Support thin polylines drawn using line strip
2023-01-20 08:48:56 +01:00
Rémi Verschelde
360b61084a
Merge pull request #41239 from dalexeev/fix_draw_rect
...
Fix `CanvasItem.draw_rect` function with `filled = false`
2023-01-19 22:49:23 +01:00
kleonc
728c51e362
CanvasItem::draw_polyline Support thin polylines drawn using line strip
2023-01-19 21:08:25 +01:00
kleonc
43fc483e6c
CanvasItem::draw_arc Clamp angle difference so arc won't overlap itself
2023-01-18 15:16:22 +01:00
Danil Alexeev
c046bb8389
Fix `CanvasItem.draw_rect` function with `filled = false`
2023-01-17 09:15:47 +03:00
Danil Alexeev
a8cbb6245b
Fix scaling issue in `draw_line` and similar methods
2023-01-16 12:49:58 +03:00
bruvzg
9b2843f14f
Improve dashed line alignment and make it optional.
2023-01-13 10:30:12 +02:00
Yuri Sizov
0ca5a72e90
Clarify some parent item checks in CanvasItem
2023-01-09 19:59:55 +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
Adam Scott
ea33001b95
Add safety-checks before some servers `free()`
2022-12-29 16:23:38 -05:00
Aaron Franke
3161647dab
Fix CanvasItem Z-index referring to Node2D
2022-12-19 20:59:14 -06:00
Rémi Verschelde
adc1096b19
Merge pull request #70219 from bruvzg/msdf_outline_scaling
...
Scale MSDF font outline with the font size and MSDF source size to match dynamic font behavior.
2022-12-19 16:26:56 +01:00
Rémi Verschelde
f29f3db419
Merge pull request #59682 from Sauermann/fix-following-viewport-transform
...
Include the follow-viewport-transform into CanvasLayer transform calculations
2022-12-19 16:26:19 +01:00
kobewi
32b0770a73
Add a method to get global modulate
2022-12-19 11:51:37 +01:00
Markus Sauermann
2da2220da7
Include the following-viewport-transform into CanvasLayer transforms
...
The following-viewport-transform was missing from several calculations
2022-12-18 22:44:34 +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
Hendrik Brucker
e84f45fc93
Move z_index, z_as_relative and y_sort_enabled from Node2D to CanvasItem
2022-11-29 17:11:22 +01:00
Rémi Verschelde
d4bf7f4458
Fixup Clang -Wtype-limits warnings introduced by #52350
2022-11-02 22:36:01 +01:00
Rémi Verschelde
604abb434f
Merge pull request #52350 from BimDav/viewport_canvas_cull
...
Added Viewport canvas cull mask feature
2022-11-02 17:14:24 +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
Rémi Verschelde
71a6aba3d7
Merge pull request #67710 from KoBeWi/a_bit_local_global_transform
...
Remove error condition from get_global_transform()
2022-10-31 11:59:08 +01:00
Micky
0e0a233859
Fix spacing of few PROPERTY_HINT_ENUM hint_strings
2022-10-28 14:51:26 +02:00
Clay John
e1caa8797b
Merge pull request #67043 from clayjohn/clip_children
...
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
2022-10-27 09:59:27 -07:00
kobewi
2ff676a696
Remove error condition from get_global_transform()
2022-10-21 14:52:43 +02:00
kobewi
4efa851d7f
Add methods to get target filter and repeat
2022-10-19 14:41:42 +02:00
Markus Sauermann
13b87c13c7
Fix set_as_toplevel event propagation to child
...
In certain conditions events did not get propagated to Control childs of
Node2D nodes when setting a parent of the Node2D to toplevel.
This patch makes sure that such Control nodes become root control in the
viewport.
2022-10-16 21:42:16 +02:00
clayjohn
b6f44859d7
Implement multiple clip_children modes for CanvasItems
2022-10-14 08:02:28 -07:00
kobewi
31e62ca827
Allow negative indices in move_child()
2022-09-10 03:54:04 +02:00
kobewi
b218727599
Rename raise() to move_to_front()
2022-09-06 22:13:06 +02:00
Rindbee
621b9a1bfe
Fix getting an error message when repeatedly entering and exiting the tree
2022-09-02 10:48:20 +08:00
kobewi
cd01f695d5
Change _redraw_callback to callable_mp
2022-08-30 15:21:48 +02:00
Micky
e31bb5ffeb
Rename `CanvasItem.update()` to `queue_redraw()`
...
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.
Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.
Just a few comments have also been changed to say "redraw".
In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02:00
Rémi Verschelde
7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0
2022-08-26 11:59:07 +02:00
skyace65
64061678c6
Spell out "anisotropic" fully in filter options
2022-08-23 19:19:56 -04:00
bruvzg
bcc3643989
Add font LCD sub-pixel anti-aliasing support.
2022-08-23 08:47:21 +03:00
Rindbee
fc17d3563d
Remove `first_draw` and reset visibility when entering tree
2022-07-28 12:35:47 +08:00
kleonc
57ff4032d0
Fix `CanvasItem` not exiting its canvas group on canvas exit
2022-07-20 21:35:31 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API.
2022-07-15 08:49:50 +03:00
bruvzg
344ba0ffaf
Refactor Font configuration and import UI, and Font resources.
2022-07-06 14:12:36 +03:00
markdibarry
459228cdb3
Add explicit deferred flags
2022-06-19 10:04:53 -04:00
FireForge
3073b85de9
Rename theme properties to include underscores
...
- check_vadjust -> check_v_adjust
- close_h_ofs -> close_h_offset
- close_v_ofs -> close_v_offset
- commentfocus -> comment_focus
- hseparation -> h_separation
- ofs -> offset
- selectedframe -> selected_frame
- state_machine_selectedframe -> state_machine_selected_frame
- table_hseparation -> table_h_separation
- table_vseparation -> table_v_separation
- vseparation -> v_separation
2022-04-23 11:16:18 -05:00
Yuri Roubinsky
6e9535a9c8
Restore antialiasing for `draw_line`
2022-04-12 13:03:56 +03:00
Vitika9
ff75b30e6e
Removed show_on_top property in CanvasItem
2022-04-01 18:40:40 +05:30
Jason Knight
640099cce5
Bind NOTIFICATION_LOCAL_TRANFORM_CHANGED
2022-03-20 11:34:01 -06:00
Rémi Verschelde
19950076b1
Merge pull request #58394 from bruvzg/rtl_hint
2022-03-18 14:49:13 +01:00
Markus Sauermann
7451fa63f2
Simplify always true conditional
...
get_viewport() is always true, because is_inside_tree() is true.
2022-03-16 16:28:11 +01:00
kobewi
bcf13dc175
Expose methods for screen-space transforms
2022-03-13 16:05:08 +01:00
Markus Sauermann
dce6cb7393
Fix invisible CanvasItem visibility issue
2022-02-22 10:13:02 +01:00
bruvzg
7385c3602d
Add RichTextLabel "hint" tag.
2022-02-21 19:34:16 +02:00
kobewi
3a77484f70
Fix CanvasItem visibility propagation
2022-02-19 22:40:53 +01:00
Rémi Verschelde
0f5455230c
Use `switch` consistently in `_notification` (`scene` folder)
2022-02-15 18:44:55 +01:00
kobewi
ab5b5e1577
Rework CanvasItem visibility propagation
2022-02-06 00:26:28 +01:00
kobewi
189dab2d76
Add visibility to CanvasLayer
2022-02-05 14:02:21 +01:00
lawnjelly
b411a731fe
Add nodiscard to core math classes to catch c++ errors.
...
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 13:07:49 +00:00
Stijn Hinlopen
fb1cd9e446
Refactor CanvasItem show/hide/set_visible
2022-01-12 23:13:41 +01:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
...
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Nathan Franke
41a20171eb
align to horizontal_alignment, valign to vertical_alignment, related
2021-12-09 01:38:46 -06:00
Haoyu Qiu
f18de71b56
Fix crash when update() is called inside _draw()
2021-12-06 14:20:26 +08:00
Rémi Verschelde
b99792b5d9
Merge pull request #54167 from brunosxs/fix-game-crash-when-sending-a-notification-from-a-camera-class
2021-11-16 14:11:14 +01:00
bruvzg
ebbc25e89c
Ignore empty Font resources as theme override.
...
Add range hint to font_size properties.
Remove excessive `base_size` Font property.
2021-10-25 14:05:37 +03:00
BrunoSXS
eb2deabffe
Fixes a game crash caused by instantiating Camera2D and sending a notification from it before adding it to the tree.
2021-10-23 17:30:18 -03:00
bruvzg
0c0b5c84b0
Implement TextServer GDExtension interface, remove TextServer GDNative interface.
2021-10-01 15:13:29 +03:00
bruvzg
4c3f7d1290
Makes FontData importable resource.
...
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
reduz
3682978aee
Replace BIND_VMETHOD by new GDVIRTUAL syntax
...
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.
Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.
Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
Aaron Franke
eb4902a455
Fix some unnecessary includes
2021-08-13 00:27:38 -05:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations
2021-07-23 17:38:28 -04:00
Rémi Verschelde
693f9b4e20
Merge pull request #50655 from JFonS/sname_opt
...
Editor StringName and Viewport optimizations
2021-07-20 21:49:32 +02:00
Joan Fons
a6adb58493
Editor StringName and Viewport optimizations
...
* Added explicit return type to the SNAME macro.
* Add some extra SNAME usages.
* Change some ClassDB methods to use const StringName & arguments.
* Cache the Window parent in Control because it's used in
is_layout_rtl(), which is called often.
* Only enable internal processing for viewports that need it.
* Change CanvasItem::group to be a StringName because it's only used as
that.
2021-07-20 20:35:41 +02:00
Hugo Locurcio
abc38b8d66
Use C++11 raw literals for shader code to improve readability
...
In files that have lots of branching, `\t` was replaced with a
tab character instead.
2021-07-19 08:19:50 +02:00