Add metadata for `char16_t` and `char32_t`
We don't seem to expose any API that uses `char16_t` yet, but I added it anyway since we make the type info for it. I didn't add anything for `wchar_t` because we are not making a type info so maybe we don't have a need for it yet, it could be added in the future. To prevent breaking compatibility with the C# bindings, we ignore the `char32_t` metadata and still use `System.Int64`.
This commit is contained in:
parent
97ef3c8372
commit
aaffab8afb
|
@ -88,7 +88,7 @@ static String get_property_info_type_name(const PropertyInfo &p_info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static String get_type_meta_name(const GodotTypeInfo::Metadata metadata) {
|
static String get_type_meta_name(const GodotTypeInfo::Metadata metadata) {
|
||||||
static const char *argmeta[11] = { "none", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float", "double" };
|
static const char *argmeta[13] = { "none", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float", "double", "char16", "char32" };
|
||||||
return argmeta[metadata];
|
return argmeta[metadata];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -421,7 +421,9 @@ typedef enum {
|
||||||
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT32,
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT32,
|
||||||
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT64,
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT64,
|
||||||
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_FLOAT,
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_FLOAT,
|
||||||
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_DOUBLE
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_DOUBLE,
|
||||||
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_CHAR16,
|
||||||
|
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_CHAR32,
|
||||||
} GDExtensionClassMethodArgumentMetadata;
|
} GDExtensionClassMethodArgumentMetadata;
|
||||||
|
|
||||||
typedef void (*GDExtensionClassMethodCall)(void *method_userdata, GDExtensionClassInstancePtr p_instance, const GDExtensionConstVariantPtr *p_args, GDExtensionInt p_argument_count, GDExtensionVariantPtr r_return, GDExtensionCallError *r_error);
|
typedef void (*GDExtensionClassMethodCall)(void *method_userdata, GDExtensionClassInstancePtr p_instance, const GDExtensionConstVariantPtr *p_args, GDExtensionInt p_argument_count, GDExtensionVariantPtr r_return, GDExtensionCallError *r_error);
|
||||||
|
|
|
@ -47,7 +47,9 @@ enum Metadata {
|
||||||
METADATA_INT_IS_UINT32,
|
METADATA_INT_IS_UINT32,
|
||||||
METADATA_INT_IS_UINT64,
|
METADATA_INT_IS_UINT64,
|
||||||
METADATA_REAL_IS_FLOAT,
|
METADATA_REAL_IS_FLOAT,
|
||||||
METADATA_REAL_IS_DOUBLE
|
METADATA_REAL_IS_DOUBLE,
|
||||||
|
METADATA_INT_IS_CHAR16,
|
||||||
|
METADATA_INT_IS_CHAR32,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,8 +106,8 @@ MAKE_TYPE_INFO_WITH_META(uint32_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_
|
||||||
MAKE_TYPE_INFO_WITH_META(int32_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_INT32)
|
MAKE_TYPE_INFO_WITH_META(int32_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_INT32)
|
||||||
MAKE_TYPE_INFO_WITH_META(uint64_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_UINT64)
|
MAKE_TYPE_INFO_WITH_META(uint64_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_UINT64)
|
||||||
MAKE_TYPE_INFO_WITH_META(int64_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_INT64)
|
MAKE_TYPE_INFO_WITH_META(int64_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_INT64)
|
||||||
MAKE_TYPE_INFO(char16_t, Variant::INT)
|
MAKE_TYPE_INFO_WITH_META(char16_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_CHAR16)
|
||||||
MAKE_TYPE_INFO(char32_t, Variant::INT)
|
MAKE_TYPE_INFO_WITH_META(char32_t, Variant::INT, GodotTypeInfo::METADATA_INT_IS_CHAR32)
|
||||||
MAKE_TYPE_INFO_WITH_META(float, Variant::FLOAT, GodotTypeInfo::METADATA_REAL_IS_FLOAT)
|
MAKE_TYPE_INFO_WITH_META(float, Variant::FLOAT, GodotTypeInfo::METADATA_REAL_IS_FLOAT)
|
||||||
MAKE_TYPE_INFO_WITH_META(double, Variant::FLOAT, GodotTypeInfo::METADATA_REAL_IS_DOUBLE)
|
MAKE_TYPE_INFO_WITH_META(double, Variant::FLOAT, GodotTypeInfo::METADATA_REAL_IS_DOUBLE)
|
||||||
|
|
||||||
|
|
|
@ -3448,6 +3448,12 @@ StringName BindingsGenerator::_get_int_type_name_from_meta(GodotTypeInfo::Metada
|
||||||
case GodotTypeInfo::METADATA_INT_IS_UINT64:
|
case GodotTypeInfo::METADATA_INT_IS_UINT64:
|
||||||
return "ulong";
|
return "ulong";
|
||||||
break;
|
break;
|
||||||
|
case GodotTypeInfo::METADATA_INT_IS_CHAR16:
|
||||||
|
return "char";
|
||||||
|
break;
|
||||||
|
case GodotTypeInfo::METADATA_INT_IS_CHAR32:
|
||||||
|
// To prevent breaking compatibility, C# bindings need to keep using `long`.
|
||||||
|
return "long";
|
||||||
default:
|
default:
|
||||||
// Assume INT64
|
// Assume INT64
|
||||||
return "long";
|
return "long";
|
||||||
|
|
Loading…
Reference in New Issue