From de6254b5a533da04e0bccf645849cf515de9b7ba Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 19 Aug 2023 17:00:05 +0200 Subject: [PATCH] Various fixes for scripting bindings codegen --- .../Flax.Build/Bindings/BindingsGenerator.CSharp.cs | 9 ++++++++- .../Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs | 6 ++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.CSharp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.CSharp.cs index c6f4c37ef..1414629cc 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.CSharp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.CSharp.cs @@ -375,6 +375,13 @@ namespace Flax.Build.Bindings // Find API type info var apiType = FindApiTypeInfo(buildData, typeInfo, caller); var typeName = typeInfo.Type.Replace("::", "."); + if (typeInfo.GenericArgs != null) + { + typeName += '<'; + foreach (var arg in typeInfo.GenericArgs) + typeName += arg.Type.Replace("::", "."); + typeName += '>'; + } if (apiType != null) { // Add reference to the namespace @@ -1320,7 +1327,7 @@ namespace Flax.Build.Bindings contents.AppendLine(string.Join("\n" + indent, (indent + $$""" /// /// Marshaller for type . - /// "); + /// #if FLAX_EDITOR [HideInEditor] #endif diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs index 3aee2cedc..0acab326a 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs @@ -849,14 +849,12 @@ namespace Flax.Build.Bindings if (typeInfo.GenericArgs != null) { type += '<'; - for (var i = 0; i < typeInfo.GenericArgs.Count; i++) { if (i != 0) type += ", "; type += typeInfo.GenericArgs[i]; } - type += '>'; } return string.Empty; @@ -1074,6 +1072,10 @@ namespace Flax.Build.Bindings { convertOutputParameter = true; } + else if (apiType.Name == "Variant") + { + convertOutputParameter = true; + } } // BytesContainer else if (parameterInfo.Type.Type == "BytesContainer" && parameterInfo.Type.GenericArgs == null)