Merge pull request #117160 from Naros/gdextension-expose-get-type-by-name

Add `Variant::get_type_by_name` to GDExtension Interface
This commit is contained in:
Thaddeus Crews
2026-04-10 10:32:14 -05:00
2 changed files with 28 additions and 0 deletions
+6
View File
@@ -547,6 +547,11 @@ static void gdextension_variant_get_type_name(GDExtensionVariantType p_type, GDE
memnew_placement(r_ret, String(name));
}
static GDExtensionVariantType gdextension_variant_get_type_by_name(GDExtensionConstStringPtr p_type) {
const String *type = (const String *)p_type;
return static_cast<GDExtensionVariantType>(Variant::get_type_by_name(*type));
}
static GDExtensionBool gdextension_variant_can_convert(GDExtensionVariantType p_from, GDExtensionVariantType p_to) {
return Variant::can_convert((Variant::Type)p_from, (Variant::Type)p_to);
}
@@ -1743,6 +1748,7 @@ void gdextension_setup_interface() {
REGISTER_INTERFACE_FUNC(variant_has_key);
REGISTER_INTERFACE_FUNC(variant_get_object_instance_id);
REGISTER_INTERFACE_FUNC(variant_get_type_name);
REGISTER_INTERFACE_FUNC(variant_get_type_by_name);
REGISTER_INTERFACE_FUNC(variant_can_convert);
REGISTER_INTERFACE_FUNC(variant_can_convert_strict);
REGISTER_INTERFACE_FUNC(get_variant_from_type_constructor);
+22
View File
@@ -4978,6 +4978,28 @@
],
"since": "4.1"
},
{
"name": "variant_get_type_by_name",
"return_value": {
"type": "GDExtensionVariantType",
"description": [
"The variant type for the given name; otherwise VARIANT_MAX if name is invalid."
]
},
"arguments": [
{
"name": "p_type_name",
"type": "GDExtensionConstStringPtr",
"description": [
"The variant type name."
]
}
],
"description": [
"Gets the Variant type by name."
],
"since": "4.7"
},
{
"name": "variant_can_convert",
"return_value": {