Commit Graph

49292 Commits

Author SHA1 Message Date
Ignacio Roldán Etcheverry
17b2838f39 C#: Cleanup Variant marshaling code in source/bindings generators
This change aims to reduce the number of places that need to be changed
when adding or editing a Godot type to the bindings.

Since the addition of `Variant.From<T>/As<T>` and
`VariantUtils.CreateFrom<T>/ConvertTo<T>`, we can now replace a lot of
the previous code in the bindings generator and the source generators
that specify these conversions for each type manually.

The only exceptions are the generic Godot collections (`Array<T>` and
`Dictionary<TKey, TValue>`) which still use the old version, as that
one cannot be matched by our new conversion methods (limitation in the
language with generics, forcing us to use delegate pointers).

The cleanup applies to:

- Bindings generator:
  - `TypeInterface.cs_variant_to_managed`
  - `TypeInterface.cs_managed_to_variant`
- Source generators:
  - `MarshalUtils.AppendNativeVariantToManagedExpr`
  - `MarshalUtils.AppendManagedToNativeVariantExpr`
  - `MarshalUtils.AppendVariantToManagedExpr`
  - `MarshalUtils.AppendManagedToVariantExpr`
2022-12-02 14:47:12 +01:00
Ignacio Roldán Etcheverry
f86c6b6ac4 C#: Replace most conversions between Variant and System.Object
This commit replaces most usages of `ConvertManagedObjectToVariant` and
`ConvertVariantToManagedObjectOfType`, by using the `Godot.Variant`
struct instead of `System.Object`.

The most notable change is to the `GetGodotPropertyDefaultValues` method
that's generated for scripts. The dictionary it returns now stores
`Godot.Variant` values.

Remaining usages are:

- The `DelegateUtils` class, for the serialization of closure display
  classes during assembly reloading by the editor. These display classes
  are compiler generated classes to store values captured by a closure.
  Since it's generated by the compiler, the only way we have to access
  the fields is through reflection. This leads to using `System.Object`.
- Converting parameters when invoking constructors from the engine.
  This will be replaced with source generators in the future.
- Legacy support for old `GetGodotPropertyDefaultValues` return values.
  We need to keep supporting the old version of this generated method
  for some time. Otherwise, if loading a project built with the previous
  version, it could lead to the loss of exported property values.
  Ideally, we should remove this legacy support before a stable release.
2022-12-02 14:47:12 +01:00
Ignacio Roldán Etcheverry
3afeb28560 C#: Remove ConvertVariantToManagedObject
Its two usages were:

- The Array `ICollection.CopyTo` implementation.
  It's possible that this class shouldn't be implementing the
  non-generic `ICollection`, but this commit doesn't change that.
  The new implementation stores the elements as boxed `Variant` values.
- The `Variant.Obj` property.
  I'm not sure if this property's existence is justified, but for now
  I rewrote it as a simpler version of `ConvertVariantToManagedObject`.
2022-12-02 03:34:40 +01:00
Ignacio Roldán Etcheverry
bcc061edae
Merge pull request #67023 from raulsntos/dotnet/fix-signal-callback-generation
C#: Fix signature of generated signal callbacks
2022-12-02 03:19:49 +01:00
Yuri Sizov
bf9cf7d034
Merge pull request #69166 from souplamp/icon-annotation-not-working
Update docs to clarify `@icon` only works with global script classes
2022-12-02 03:04:23 +03:00
Rémi Verschelde
1bd7b0b269
Merge pull request #69430 from Rindbee/fix-clip-contents
Fix child nodes still being drawn when the visible area of a control with `clip_contents` enabled is `0`
2022-12-01 23:55:18 +01:00
Rémi Verschelde
d47daf0187
Merge pull request #69344 from DeeJayLSP/update_thorvg
Update thorvg to 0.8.3
2022-12-01 23:51:33 +01:00
Rémi Verschelde
8177e5d7de
Merge pull request #69325 from clayjohn/GLES3-skeletons
Add Skeletons and Blend Shapes to the OpenGL renderer
2022-12-01 23:22:42 +01:00
souplamp
369c7d2422 Update docs to mention @icon only works with global script classes
Update the docs to clarify that the `@icon` annotation does not work
when only attaching a script to a node, and clarify that the script itself
must be a globally accessible script type.
2022-12-01 12:52:58 -06:00
Rémi Verschelde
1e3919c409
Merge pull request #69364 from m4gr3d/add_navigation_controls_main
Add navigation control to the node3d editor viewport
2022-12-01 18:11:14 +01:00
Rémi Verschelde
a7fcfacaa5
Merge pull request #69427 from TokageItLab/remove-wrong-method-root-pos
Remove unneeded calc in root motion
2022-12-01 18:11:07 +01:00
Rémi Verschelde
e5f0a565e2
Merge pull request #67660 from Rindbee/improve-setter-for-Range
Improve validation when setting `max`/`min`/`page` in `Range`
2022-12-01 18:11:01 +01:00
Rémi Verschelde
9ace4949f8
Merge pull request #69443 from KoBeWi/meta_never_dies
Restore metadata to script create dialog
2022-12-01 18:10:37 +01:00
Rémi Verschelde
4821de146e
Merge pull request #69423 from KoBeWi/parenture
Improve parent signature error
2022-12-01 18:10:31 +01:00
Rémi Verschelde
96796c1518
Merge pull request #64427 from touilleMan/gdextension-skip-undefined-field-in-properties
[GDExtension] Skip unset getter/setter/index fields in class property
2022-12-01 18:10:26 +01:00
Rémi Verschelde
fc2241d5d8
Merge pull request #64360 from touilleMan/gdextension-correct-rect2-members-offsets-declaration
[GDExtension] Correct Rect2 members offsets declaration in extension_api.json generator
2022-12-01 18:10:05 +01:00
Rémi Verschelde
86273fcf13
Merge pull request #69401 from IceflowRE/rename_theme_cache_names
Rename Tree theme cache separation names
2022-12-01 18:09:52 +01:00
Rémi Verschelde
60750a1b69
Merge pull request #69403 from KoBeWi/gdrequiredvirutalcallnoif
Simplify GDVIRTUAL_REQUIRED_CALL calls
2022-12-01 18:09:43 +01:00
Rémi Verschelde
92b456beab
Merge pull request #68632 from m4gr3d/fix_input_event_screen_drag_routing_main
Fix routing of InputEventScreenDrag events to Control nodes
2022-12-01 18:09:37 +01:00
Rémi Verschelde
2d96f63e09
Merge pull request #68481 from dalexeev/gds-fix-dyn-arg-def-val
GDScript 2.0: Fix shift due to skip of non-constant default argument values
2022-12-01 18:09:25 +01:00
kobewi
06465e388e Fix invalid metadata names in script create dialog 2022-12-01 15:32:41 +01:00
kobewi
563d67a10d Revert "Fix "Script Create" dialog errors with metadata"
This reverts commit bb5198a5ac.
2022-12-01 15:30:16 +01:00
kobewi
d1e4146462 Improve parent signature error 2022-12-01 15:16:16 +01: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
Rémi Verschelde
eb555d7559
Merge pull request #69303 from Chaosus/gds_fix_loops
Reset unassigned local variables to null in the loops
2022-12-01 10:21:21 +01:00
Silc Renew
c1a29f5ef4 Remove unneeded calc in root motion 2022-12-01 11:11:21 +09:00
Fredia Huya-Kouadio
3ff7dd2aa4 Fix routing of InputEventScreenDrag events to Control nodes 2022-11-30 14:06:41 -08:00
Rémi Verschelde
0ff8742919
Merge pull request #67610 from m4gr3d/add_check_for_min_ndk_target_api_main
Bump the minimum Android target api to 21 (Android Lollipop)
2022-11-30 21:36:55 +01:00
Fredia Huya-Kouadio
2aba13e8fb Updating the minimum Android target api for proper Vulkan support 2022-11-30 11:16:59 -08:00
Rémi Verschelde
0bb1e89fb7
Merge pull request #69408 from TokageItLab/spblend-more-warn
Emphasize the warning about special case blend for animation
2022-11-30 19:11:44 +01:00
Rémi Verschelde
f5dbec2f73
Merge pull request #69392 from dsnopek/openxr-quest-fix
Fix OpenXR on the Meta Quest: XR_KHR_loader_init_android is not reported as available (but it works anyway)
2022-11-30 19:08:55 +01:00
Rémi Verschelde
b355e29b97
Merge pull request #69397 from KoBeWi/eradicate_folding
Make remote inspector groups not foldable
2022-11-30 19:08:44 +01:00
Rémi Verschelde
4ff610dfaa
Merge pull request #69394 from KoBeWi/layin_layout
Display transform properties of contained controls
2022-11-30 19:08:14 +01:00
Rémi Verschelde
fa9d33ac2c
Merge pull request #69393 from DeeJayLSP/update_miniupnpc
Update miniupnpc to 2.2.4
2022-11-30 19:07:27 +01:00
kobewi
9a3960daa5 Simplify GDVIRTUAL_REQUIRED_CALL calls 2022-11-30 18:36:57 +01:00
Ignacio Roldán Etcheverry
6745e199fb
Merge pull request #69278 from rhofour/remove-namespaces
Remove unnecessary namespaces in generated PropertyDefVal files.
2022-11-30 18:31:52 +01:00
Silc Renew
9a3d9c6cae Emphasize the warning about special case blend for animation 2022-12-01 02:13:24 +09:00
Iceflower
908f392af6
Rename theme cache separation names 2022-11-30 16:06:14 +01:00
kobewi
5d2a9a3570 Make remote inspector groups not foldable 2022-11-30 15:31:24 +01:00
kobewi
b65a3a52ac Display transform properties of contained controls 2022-11-30 15:08:39 +01:00
DeeJayLSP
f592f6ba0c Update miniupnpc to 2.2.4 2022-11-30 10:30:23 -03:00
DeeJayLSP
88b7d5c3c5 Update thorvg to 0.8.3 2022-11-30 09:14:34 -03:00
Rémi Verschelde
cd491c6e47
Merge pull request #69376 from zaevi/adjust_dropping_texture
Adjust position and size for dropping texture in canvas editor.
2022-11-30 10:49:15 +01:00
Rémi Verschelde
c868e0b4b9
Merge pull request #69269 from red1939/red1939/master
Acknowledge that a CLASS kind of a DataType might not have an identifier
2022-11-30 10:49:09 +01:00
Rémi Verschelde
3afa207f1a
Merge pull request #69377 from bruvzg/mac_app_pass_nt
[macOS] Fix export button incorrectly disabled when using login/app password for notarization.
2022-11-30 10:49:00 +01:00
Rémi Verschelde
e51d69dda0
Merge pull request #69365 from timothyqiu/invalid-reference
Fix heap-use-after-free when changing alternative tile ID
2022-11-30 10:48:48 +01:00
Rémi Verschelde
3cf2fc9839
Merge pull request #68070 from Geometror/move_z_index_to_canvasitem
Move z_index, z_as_relative and y_sort_enabled from `Node2D` to `CanvasItem`
2022-11-30 10:38:34 +01:00
Rémi Verschelde
65692ce91c
Merge pull request #65759 from nathanfranke/migrate-project-manager
Print each migrated project path instead of always printing "migrating" when there are none
2022-11-30 10:38:22 +01:00
bruvzg
aa117a128e
[macOS] Fix export button incorrectly disabled when using login/app password for notarization. 2022-11-30 10:38:53 +02:00
Zae
a1419f3902 Adjust position and size for dropping texture. 2022-11-30 16:28:49 +08:00