Fix missing Int2/Int3/Int4 in Variant support implementation parts

#4114
This commit is contained in:
2026-05-27 17:23:22 +02:00
parent 7c1df5c980
commit ab6b5927f8
10 changed files with 293 additions and 92 deletions
@@ -609,6 +609,12 @@ MObject* MUtils::BoxVariant(const Variant& value)
return MCore::Object::Box((void*)&value.AsData, Double3::TypeInitializer.GetClass());
case VariantType::Double4:
return MCore::Object::Box((void*)&value.AsData, Double4::TypeInitializer.GetClass());
case VariantType::Int2:
return MCore::Object::Box((void*)&value.AsData, Int2::TypeInitializer.GetClass());
case VariantType::Int3:
return MCore::Object::Box((void*)&value.AsData, Int3::TypeInitializer.GetClass());
case VariantType::Int4:
return MCore::Object::Box((void*)&value.AsData, Int4::TypeInitializer.GetClass());
case VariantType::Color:
return MCore::Object::Box((void*)&value.AsData, stdTypes.ColorClass);
case VariantType::Guid:
@@ -889,6 +895,12 @@ MClass* MUtils::GetClass(const VariantType& value)
return Double3::TypeInitializer.GetClass();
case VariantType::Double4:
return Double4::TypeInitializer.GetClass();
case VariantType::Int2:
return Int2::TypeInitializer.GetClass();
case VariantType::Int3:
return Int3::TypeInitializer.GetClass();
case VariantType::Int4:
return Int4::TypeInitializer.GetClass();
case VariantType::Color:
return Color::TypeInitializer.GetClass();
case VariantType::Guid:
@@ -979,6 +991,12 @@ MClass* MUtils::GetClass(const Variant& value)
return Double3::TypeInitializer.GetClass();
case VariantType::Double4:
return Double4::TypeInitializer.GetClass();
case VariantType::Int2:
return Int2::TypeInitializer.GetClass();
case VariantType::Int3:
return Int3::TypeInitializer.GetClass();
case VariantType::Int4:
return Int4::TypeInitializer.GetClass();
case VariantType::Color:
return stdTypes.ColorClass;
case VariantType::Guid:
@@ -1148,6 +1166,9 @@ void* MUtils::VariantToManagedArgPtr(Variant& value, MType* type, bool& failed)
CASE_IN_BUILD_TYPE(Double2, AsData);
CASE_IN_BUILD_TYPE(Double3, AsData);
CASE_IN_BUILD_TYPE(Double4, AsBlob.Data);
CASE_IN_BUILD_TYPE(Int2, AsData);
CASE_IN_BUILD_TYPE(Int3, AsData);
CASE_IN_BUILD_TYPE(Int4, AsData);
#undef CASE_IN_BUILD_TYPE
if (klass->IsValueType())
{