@@ -240,7 +240,7 @@ class GDExtensionMethodBind : public MethodBind {
240240
241241#ifndef DISABLE_DEPRECATED
242242void GDExtension::_register_extension_class (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo *p_extension_funcs) {
243- const GDExtensionClassCreationInfo4 class_info4 = {
243+ const GDExtensionClassCreationInfo5 class_info5 = {
244244 p_extension_funcs->is_virtual , // GDExtensionBool is_virtual;
245245 p_extension_funcs->is_abstract , // GDExtensionBool is_abstract;
246246 true , // GDExtensionBool is_exposed;
@@ -274,14 +274,14 @@ void GDExtension::_register_extension_class(GDExtensionClassLibraryPtr p_library
274274 p_extension_funcs->get_virtual_func , // GDExtensionClassGetVirtual get_virtual_func;
275275 nullptr ,
276276 };
277- _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info4 , &legacy);
277+ _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info5 , &legacy);
278278}
279279
280280void GDExtension::_register_extension_class2 (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs) {
281- const GDExtensionClassCreationInfo4 class_info4 = {
281+ const GDExtensionClassCreationInfo5 class_info5 = {
282282 p_extension_funcs->is_virtual , // GDExtensionBool is_virtual;
283283 p_extension_funcs->is_abstract , // GDExtensionBool is_abstract;
284- p_extension_funcs-> is_exposed , // GDExtensionBool is_exposed;
284+ true , // GDExtensionBool is_exposed;
285285 false , // GDExtensionBool is_runtime;
286286 nullptr , // GDExtensionConstStringPtr icon_path;
287287 p_extension_funcs->set_func , // GDExtensionClassSet set_func;
@@ -312,14 +312,14 @@ void GDExtension::_register_extension_class2(GDExtensionClassLibraryPtr p_librar
312312 p_extension_funcs->get_virtual_func , // GDExtensionClassGetVirtual get_virtual_func;
313313 p_extension_funcs->get_virtual_call_data_func , // GDExtensionClassGetVirtual get_virtual_func;
314314 };
315- _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info4 , &legacy);
315+ _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info5 , &legacy);
316316}
317317
318318void GDExtension::_register_extension_class3 (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo3 *p_extension_funcs) {
319- const GDExtensionClassCreationInfo4 class_info4 = {
319+ const GDExtensionClassCreationInfo5 class_info5 = {
320320 p_extension_funcs->is_virtual , // GDExtensionBool is_virtual;
321321 p_extension_funcs->is_abstract , // GDExtensionBool is_abstract;
322- p_extension_funcs-> is_exposed , // GDExtensionBool is_exposed;
322+ true , // GDExtensionBool is_exposed;
323323 p_extension_funcs->is_runtime , // GDExtensionBool is_runtime;
324324 nullptr , // GDExtensionConstStringPtr icon_path;
325325 p_extension_funcs->set_func , // GDExtensionClassSet set_func;
@@ -350,16 +350,22 @@ void GDExtension::_register_extension_class3(GDExtensionClassLibraryPtr p_librar
350350 p_extension_funcs->get_virtual_func , // GDExtensionClassGetVirtual get_virtual_func;
351351 p_extension_funcs->get_virtual_call_data_func , // GDExtensionClassGetVirtual get_virtual_func;
352352 };
353- _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info4 , &legacy);
353+ _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info5 , &legacy);
354354}
355355
356+ void GDExtension::_register_extension_class4 (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo4 *p_extension_funcs) {
357+ GDExtensionClassCreationInfo5 class_info5 = *p_extension_funcs;
358+ // Force classes to be exposed, because the behavior of unexposed classes changed in an incompatible (albeit, minor) way.
359+ class_info5.is_exposed = true ;
360+ _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, &class_info5);
361+ }
356362#endif // DISABLE_DEPRECATED
357363
358- void GDExtension::_register_extension_class4 (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo4 *p_extension_funcs) {
364+ void GDExtension::_register_extension_class5 (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo5 *p_extension_funcs) {
359365 _register_extension_class_internal (p_library, p_class_name, p_parent_class_name, p_extension_funcs);
360366}
361367
362- void GDExtension::_register_extension_class_internal (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo4 *p_extension_funcs, const ClassCreationDeprecatedInfo *p_deprecated_funcs) {
368+ void GDExtension::_register_extension_class_internal (GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo5 *p_extension_funcs, const ClassCreationDeprecatedInfo *p_deprecated_funcs) {
363369 GDExtension *self = reinterpret_cast <GDExtension *>(p_library);
364370
365371 StringName class_name = *reinterpret_cast <const StringName *>(p_class_name);
@@ -807,8 +813,9 @@ void GDExtension::initialize_gdextensions() {
807813 register_interface_function (" classdb_register_extension_class" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class);
808814 register_interface_function (" classdb_register_extension_class2" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class2);
809815 register_interface_function (" classdb_register_extension_class3" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class3);
810- #endif // DISABLE_DEPRECATED
811816 register_interface_function (" classdb_register_extension_class4" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class4);
817+ #endif // DISABLE_DEPRECATED
818+ register_interface_function (" classdb_register_extension_class5" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class5);
812819 register_interface_function (" classdb_register_extension_class_method" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_method);
813820 register_interface_function (" classdb_register_extension_class_virtual_method" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_virtual_method);
814821 register_interface_function (" classdb_register_extension_class_integer_constant" , (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_integer_constant);
0 commit comments