From 4453453d46b47bd3816ae7decd607350e317c2be Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Tue, 23 Dec 2025 00:36:57 +0200 Subject: [PATCH 1/2] Fix managed wrapper function parameter handling for `BytesContainer` --- Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs index 190036af4..0274ca45b 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs @@ -925,7 +925,7 @@ namespace Flax.Build.Bindings // BytesContainer if (typeInfo.Type == "BytesContainer" && typeInfo.GenericArgs == null) - return "MUtils::ToArray({0})"; + return $"MUtils::ToArray({value})"; // Construct native typename for MUtils template argument var nativeType = new StringBuilder(64); From 35f8051a62fbefbdc260e064b3f424089619a028 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sat, 20 Dec 2025 01:51:37 +0200 Subject: [PATCH 2/2] Fix managed boolean array conversion to native array --- .../Flax.Build/Bindings/BindingsGenerator.Cpp.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs index 0274ca45b..9836d1cb6 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs @@ -770,6 +770,11 @@ namespace Flax.Build.Bindings genericArgs += ", " + typeInfo.GenericArgs[1]; result = $"Array<{genericArgs}>({result})"; } + else if (arrayApiType?.Name == "bool") + { + type = "bool*"; + result = "Array({0}, {1})"; + } return result; } @@ -1244,8 +1249,12 @@ namespace Flax.Build.Bindings callParams += ", "; separator = true; var name = parameterInfo.Name; + var countParamName = $"__{parameterInfo.Name}Count"; if (CppParamsThatNeedConversion[i] && (!FindApiTypeInfo(buildData, parameterInfo.Type, caller)?.IsStruct ?? false)) + { name = '*' + name; + countParamName = '*' + countParamName; + } string param = string.Empty; if (string.IsNullOrWhiteSpace(CppParamsWrappersCache[i])) @@ -1258,7 +1267,7 @@ namespace Flax.Build.Bindings else { // Convert value - param += string.Format(CppParamsWrappersCache[i], name); + param += string.Format(CppParamsWrappersCache[i], name, countParamName); } // Special case for output result parameters that needs additional converting from native to managed format (such as non-POD structures or output array parameter)