@@ -480,7 +480,8 @@ typedef void *GDExtensionScriptInstanceDataPtr; // Pointer to custom ScriptInsta
480480typedef GDExtensionBool (* GDExtensionScriptInstanceSet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionConstVariantPtr p_value );
481481typedef GDExtensionBool (* GDExtensionScriptInstanceGet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionVariantPtr r_ret );
482482typedef const GDExtensionPropertyInfo * (* GDExtensionScriptInstanceGetPropertyList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
483- typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list );
483+ typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreePropertyList2 instead.
484+ typedef void (* GDExtensionScriptInstanceFreePropertyList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list , uint32_t p_count );
484485typedef GDExtensionBool (* GDExtensionScriptInstanceGetClassCategory )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionPropertyInfo * p_class_category );
485486
486487typedef GDExtensionVariantType (* GDExtensionScriptInstanceGetPropertyType )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionBool * r_is_valid );
@@ -494,7 +495,8 @@ typedef void (*GDExtensionScriptInstancePropertyStateAdd)(GDExtensionConstString
494495typedef void (* GDExtensionScriptInstanceGetPropertyState )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionScriptInstancePropertyStateAdd p_add_func , void * p_userdata );
495496
496497typedef const GDExtensionMethodInfo * (* GDExtensionScriptInstanceGetMethodList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
497- typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list );
498+ typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreeMethodList2 instead.
499+ typedef void (* GDExtensionScriptInstanceFreeMethodList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list , uint32_t p_count );
498500
499501typedef GDExtensionBool (* GDExtensionScriptInstanceHasMethod )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name );
500502
@@ -554,7 +556,7 @@ typedef struct {
554556
555557 GDExtensionScriptInstanceFree free_func ;
556558
557- } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo2 instead.
559+ } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
558560
559561typedef struct {
560562 GDExtensionScriptInstanceSet set_func ;
@@ -595,7 +597,48 @@ typedef struct {
595597
596598 GDExtensionScriptInstanceFree free_func ;
597599
598- } GDExtensionScriptInstanceInfo2 ;
600+ } GDExtensionScriptInstanceInfo2 ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
601+
602+ typedef struct {
603+ GDExtensionScriptInstanceSet set_func ;
604+ GDExtensionScriptInstanceGet get_func ;
605+ GDExtensionScriptInstanceGetPropertyList get_property_list_func ;
606+ GDExtensionScriptInstanceFreePropertyList2 free_property_list_func ;
607+ GDExtensionScriptInstanceGetClassCategory get_class_category_func ; // Optional. Set to NULL for the default behavior.
608+
609+ GDExtensionScriptInstancePropertyCanRevert property_can_revert_func ;
610+ GDExtensionScriptInstancePropertyGetRevert property_get_revert_func ;
611+
612+ GDExtensionScriptInstanceGetOwner get_owner_func ;
613+ GDExtensionScriptInstanceGetPropertyState get_property_state_func ;
614+
615+ GDExtensionScriptInstanceGetMethodList get_method_list_func ;
616+ GDExtensionScriptInstanceFreeMethodList2 free_method_list_func ;
617+ GDExtensionScriptInstanceGetPropertyType get_property_type_func ;
618+ GDExtensionScriptInstanceValidateProperty validate_property_func ;
619+
620+ GDExtensionScriptInstanceHasMethod has_method_func ;
621+
622+ GDExtensionScriptInstanceCall call_func ;
623+ GDExtensionScriptInstanceNotification2 notification_func ;
624+
625+ GDExtensionScriptInstanceToString to_string_func ;
626+
627+ GDExtensionScriptInstanceRefCountIncremented refcount_incremented_func ;
628+ GDExtensionScriptInstanceRefCountDecremented refcount_decremented_func ;
629+
630+ GDExtensionScriptInstanceGetScript get_script_func ;
631+
632+ GDExtensionScriptInstanceIsPlaceholder is_placeholder_func ;
633+
634+ GDExtensionScriptInstanceSet set_fallback_func ;
635+ GDExtensionScriptInstanceGet get_fallback_func ;
636+
637+ GDExtensionScriptInstanceGetLanguage get_language_func ;
638+
639+ GDExtensionScriptInstanceFree free_func ;
640+
641+ } GDExtensionScriptInstanceInfo3 ;
599642
600643/* INITIALIZATION */
601644
@@ -2377,7 +2420,7 @@ typedef void (*GDExtensionInterfaceRefSetObject)(GDExtensionRefPtr p_ref, GDExte
23772420/**
23782421 * @name script_instance_create
23792422 * @since 4.1
2380- * @deprecated in Godot 4.2. Use `script_instance_create2 ` instead.
2423+ * @deprecated in Godot 4.2. Use `script_instance_create3 ` instead.
23812424 *
23822425 * Creates a script instance that contains the given info and instance data.
23832426 *
@@ -2391,6 +2434,7 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
23912434/**
23922435 * @name script_instance_create2
23932436 * @since 4.2
2437+ * @deprecated in Godot 4.3. Use `script_instance_create3` instead.
23942438 *
23952439 * Creates a script instance that contains the given info and instance data.
23962440 *
@@ -2401,6 +2445,19 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
24012445 */
24022446typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate2 )(const GDExtensionScriptInstanceInfo2 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
24032447
2448+ /**
2449+ * @name script_instance_create3
2450+ * @since 4.3
2451+ *
2452+ * Creates a script instance that contains the given info and instance data.
2453+ *
2454+ * @param p_info A pointer to a GDExtensionScriptInstanceInfo3 struct.
2455+ * @param p_instance_data A pointer to a data representing the script instance in the GDExtension. This will be passed to all the function pointers on p_info.
2456+ *
2457+ * @return A pointer to a ScriptInstanceExtension object.
2458+ */
2459+ typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate3 )(const GDExtensionScriptInstanceInfo3 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
2460+
24042461/**
24052462 * @name placeholder_script_instance_create
24062463 * @since 4.2
0 commit comments