Age | Commit message (Collapse) | Author |
|
Godot floats are always 64-bit.
The real_t feature only affects vectors, not scalars.
|
|
Fix C# Solution Directory Project Settings
|
|
C#: Cleanup of Marshaling methods
|
|
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
|
|
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`
|
|
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.
|
|
SCons: Disable openxr module with disable_3d=yes
|
|
Get WebXR fully working in Godot 4!
|
|
ETCPAK expects BGRA data for ETC
|
|
Fixes #69470.
|
|
|
|
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`.
|
|
C#: Fix signature of generated signal callbacks
|
|
Update docs to clarify `@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.
|
|
Improve parent signature error
|
|
GDScript 2.0: Fix shift due to skip of non-constant default argument values
|
|
|
|
|
|
Reset unassigned local variables to null in the loops
|
|
Fix OpenXR on the Meta Quest: XR_KHR_loader_init_android is not reported as available (but it works anyway)
|
|
Remove unnecessary namespaces in generated PropertyDefVal files.
|
|
Acknowledge that a CLASS kind of a DataType might not have an identifier
|
|
|
|
|
|
available (but it works anyway)
|
|
C#: Fix marshaling generic Godot collections
|
|
Add necessary build flags and switch from using a
GLES2 context to a GLES3 one.
This also enables building for OpenXR
Co-authored-by: m4gr3d <fhuyakou@gmail.com>
Co-authored-by: dsnopek <dsnopek@gmail.com>
|
|
Add "Trimming" option to cut un-keyed timeline before first key in glTF animation
|
|
|
|
|
|
|
|
Add `PackedScene::reload_from_file()` override
|
|
|
|
|
|
Fix cyclic reference base being loaded but not valid (which is ok)
|
|
Avoid using `get_global_class_native_base`
|
|
C#: Cleanup and sync StringExtensions with core
|
|
C#: Fix Generated ScriptProperty Error.
|
|
- Removed `UnicodeAt`
- Removed `EndsWith`
- Removed `LPad` and `RPad`
- Deprecated `BeginsWith` in favor of `string.StartsWith`
- Deprecated `LStrip` and `RStrip` in favor of `string.TrimStart` and `string.TrimEnd`
|
|
|
|
1. Add "this." to prevent errors caused by duplicate variable names.
2. Try to find the default value of property getters.
|
|
|
|
C#: Remove VariantSpanDisposer and use constants in stackalloc
|
|
- Remove `VariantSpanDisposer`, no need to dispose of the Variant Spans
since we are now borrowing the Variants instead of copying them.
- Remove `VariantSpanExtensions.Cleared` that was only used so the
Span was initialized for `VariantSpanDisposer` to know what to dispose.
- Fix stackalloc Spans to use constant VarArgsSpanThreshold
and avoid bound checks.
|
|
Fix `VariantUtils.UnsupportedType` method throwing
|
|
C#: Add `global::` namespace to generated source
|
|
This method was not supposed to throw, just return the new constructed
exception so it can be thrown by the caller.
|
|
Adds `global::` to the fully qualified types in source generators to
prevent ambiguity.
|
|
Fix singleton scene cyclic loading
|