_unbox
Some checks failed
Build Android / Game (Android, Release ARM64) (push) Has been cancelled
Build iOS / Game (iOS, Release ARM64) (push) Has been cancelled
Build Linux / Editor (Linux, Development x64) (push) Has been cancelled
Build Linux / Game (Linux, Release x64) (push) Has been cancelled
Build macOS / Editor (Mac, Development ARM64) (push) Has been cancelled
Build macOS / Game (Mac, Release ARM64) (push) Has been cancelled
Build Windows / Editor (Windows, Development x64) (push) Has been cancelled
Build Windows / Game (Windows, Release x64) (push) Has been cancelled
Cooker / Cook (Mac) (push) Has been cancelled
Tests / Tests (Linux) (push) Has been cancelled
Tests / Tests (Windows) (push) Has been cancelled
Some checks failed
Build Android / Game (Android, Release ARM64) (push) Has been cancelled
Build iOS / Game (iOS, Release ARM64) (push) Has been cancelled
Build Linux / Editor (Linux, Development x64) (push) Has been cancelled
Build Linux / Game (Linux, Release x64) (push) Has been cancelled
Build macOS / Editor (Mac, Development ARM64) (push) Has been cancelled
Build macOS / Game (Mac, Release ARM64) (push) Has been cancelled
Build Windows / Editor (Windows, Development x64) (push) Has been cancelled
Build Windows / Game (Windows, Release x64) (push) Has been cancelled
Cooker / Cook (Mac) (push) Has been cancelled
Tests / Tests (Linux) (push) Has been cancelled
Tests / Tests (Windows) (push) Has been cancelled
This commit is contained in:
@@ -2689,14 +2689,20 @@ namespace Flax.Build.Bindings
|
||||
contents.AppendLine(" }").AppendLine();
|
||||
|
||||
// Unboxing structures from managed object to native data
|
||||
contents.AppendLine(" static void Unbox(void* ptr, MObject* managed)");
|
||||
contents.AppendLine(" static void Unbox(void* ptr, MObject* data)");
|
||||
contents.AppendLine(" {");
|
||||
if (structureInfo.MarshalAs != null)
|
||||
contents.AppendLine($" MISSING_CODE(\"Boxing native type {structureInfo.Name} as {structureInfo.MarshalAs}\");"); // TODO: impl this
|
||||
else if (structureInfo.IsPod)
|
||||
contents.AppendLine($" Platform::MemoryCopy(ptr, MCore::Object::Unbox(managed), sizeof({structureTypeNameNative}));");
|
||||
contents.AppendLine($" MCore::Object::Unbox(data, ptr);");
|
||||
//contents.AppendLine($" Platform::MemoryCopy(ptr, MCore::Object::Unbox(data), sizeof({structureTypeNameNative}));");
|
||||
else
|
||||
contents.AppendLine($" *({structureTypeNameNative}*)ptr = ToNative(*({GenerateCppManagedWrapperName(structureInfo)}*)MCore::Object::Unbox(managed));");
|
||||
{
|
||||
contents.AppendLine($" {GenerateCppManagedWrapperName(structureInfo)} managed;");
|
||||
contents.AppendLine($" MCore::Object::Unbox(data, &managed);");
|
||||
contents.AppendLine($" *({structureTypeNameNative}*)ptr = ToNative(managed);");
|
||||
}
|
||||
//contents.AppendLine($" *({structureTypeNameNative}*)ptr = ToNative(*({GenerateCppManagedWrapperName(structureInfo)}*)MCore::Object::Unbox(data));");
|
||||
contents.AppendLine(" }").AppendLine();
|
||||
}
|
||||
else
|
||||
@@ -3238,9 +3244,10 @@ namespace Flax.Build.Bindings
|
||||
header.AppendFormat(" DLLEXPORT USED void Unbox({0}& result, MObject* data)", fullName).AppendLine();
|
||||
header.Append(" {").AppendLine();
|
||||
//header.AppendFormat(" result = ToNative(*reinterpret_cast<{0}*>(MCore::Object::Unbox(data)));", wrapperName).AppendLine();
|
||||
header.AppendFormat(" auto managed = *reinterpret_cast<{0}*>(MCore::Object::Unbox(data));", wrapperName).AppendLine();
|
||||
header.AppendFormat(" result = ToNative(managed);", wrapperName).AppendLine();
|
||||
header.AppendFormat(" ::FreeManaged(managed);", wrapperName).AppendLine();
|
||||
header.AppendFormat(" {0} managed;", wrapperName).AppendLine();
|
||||
header.Append(" MCore::Object::Unbox(data, &managed);").AppendLine();
|
||||
header.Append(" result = ToNative(managed);").AppendLine();
|
||||
header.Append(" ::FreeManaged(managed);").AppendLine();
|
||||
header.Append(" }").AppendLine();
|
||||
|
||||
header.AppendFormat(" DLLEXPORT USED void ToManagedArray(MArray* result, const Span<{0}>& data)", fullName).AppendLine();
|
||||
|
||||
Reference in New Issue
Block a user