mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
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`
This commit is contained in:
parent
f86c6b6ac4
commit
17b2838f39
10 changed files with 83 additions and 415 deletions
|
@ -162,7 +162,8 @@ namespace Godot.SourceGenerators
|
|||
source.Append(" info.AddProperty(PropertyName.")
|
||||
.Append(propertyName)
|
||||
.Append(", ")
|
||||
.AppendManagedToVariantExpr(string.Concat("this.", propertyName), property.Type)
|
||||
.AppendManagedToVariantExpr(string.Concat("this.", propertyName),
|
||||
property.PropertySymbol.Type, property.Type)
|
||||
.Append(");\n");
|
||||
}
|
||||
|
||||
|
@ -175,7 +176,8 @@ namespace Godot.SourceGenerators
|
|||
source.Append(" info.AddProperty(PropertyName.")
|
||||
.Append(fieldName)
|
||||
.Append(", ")
|
||||
.AppendManagedToVariantExpr(string.Concat("this.", fieldName), field.Type)
|
||||
.AppendManagedToVariantExpr(string.Concat("this.", fieldName),
|
||||
field.FieldSymbol.Type, field.Type)
|
||||
.Append(");\n");
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue