Merge pull request #1397 from dsnopek/script-free-lists
Load new `script_instance_create3` GDExtension interface functionpull/1413/head
commit
ec166295ba
|
@ -515,7 +515,8 @@ typedef void *GDExtensionScriptInstanceDataPtr; // Pointer to custom ScriptInsta
|
||||||
typedef GDExtensionBool (*GDExtensionScriptInstanceSet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value);
|
typedef GDExtensionBool (*GDExtensionScriptInstanceSet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value);
|
||||||
typedef GDExtensionBool (*GDExtensionScriptInstanceGet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret);
|
typedef GDExtensionBool (*GDExtensionScriptInstanceGet)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret);
|
||||||
typedef const GDExtensionPropertyInfo *(*GDExtensionScriptInstanceGetPropertyList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count);
|
typedef const GDExtensionPropertyInfo *(*GDExtensionScriptInstanceGetPropertyList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count);
|
||||||
typedef void (*GDExtensionScriptInstanceFreePropertyList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list);
|
typedef void (*GDExtensionScriptInstanceFreePropertyList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list); // Deprecated. Use GDExtensionScriptInstanceFreePropertyList2 instead.
|
||||||
|
typedef void (*GDExtensionScriptInstanceFreePropertyList2)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionPropertyInfo *p_list, uint32_t p_count);
|
||||||
typedef GDExtensionBool (*GDExtensionScriptInstanceGetClassCategory)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionPropertyInfo *p_class_category);
|
typedef GDExtensionBool (*GDExtensionScriptInstanceGetClassCategory)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionPropertyInfo *p_class_category);
|
||||||
|
|
||||||
typedef GDExtensionVariantType (*GDExtensionScriptInstanceGetPropertyType)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionBool *r_is_valid);
|
typedef GDExtensionVariantType (*GDExtensionScriptInstanceGetPropertyType)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionBool *r_is_valid);
|
||||||
|
@ -529,7 +530,8 @@ typedef void (*GDExtensionScriptInstancePropertyStateAdd)(GDExtensionConstString
|
||||||
typedef void (*GDExtensionScriptInstanceGetPropertyState)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionScriptInstancePropertyStateAdd p_add_func, void *p_userdata);
|
typedef void (*GDExtensionScriptInstanceGetPropertyState)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionScriptInstancePropertyStateAdd p_add_func, void *p_userdata);
|
||||||
|
|
||||||
typedef const GDExtensionMethodInfo *(*GDExtensionScriptInstanceGetMethodList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count);
|
typedef const GDExtensionMethodInfo *(*GDExtensionScriptInstanceGetMethodList)(GDExtensionScriptInstanceDataPtr p_instance, uint32_t *r_count);
|
||||||
typedef void (*GDExtensionScriptInstanceFreeMethodList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list);
|
typedef void (*GDExtensionScriptInstanceFreeMethodList)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list); // Deprecated. Use GDExtensionScriptInstanceFreeMethodList2 instead.
|
||||||
|
typedef void (*GDExtensionScriptInstanceFreeMethodList2)(GDExtensionScriptInstanceDataPtr p_instance, const GDExtensionMethodInfo *p_list, uint32_t p_count);
|
||||||
|
|
||||||
typedef GDExtensionBool (*GDExtensionScriptInstanceHasMethod)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name);
|
typedef GDExtensionBool (*GDExtensionScriptInstanceHasMethod)(GDExtensionScriptInstanceDataPtr p_instance, GDExtensionConstStringNamePtr p_name);
|
||||||
|
|
||||||
|
@ -589,7 +591,7 @@ typedef struct {
|
||||||
|
|
||||||
GDExtensionScriptInstanceFree free_func;
|
GDExtensionScriptInstanceFree free_func;
|
||||||
|
|
||||||
} GDExtensionScriptInstanceInfo; // Deprecated. Use GDExtensionScriptInstanceInfo2 instead.
|
} GDExtensionScriptInstanceInfo; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GDExtensionScriptInstanceSet set_func;
|
GDExtensionScriptInstanceSet set_func;
|
||||||
|
@ -630,7 +632,48 @@ typedef struct {
|
||||||
|
|
||||||
GDExtensionScriptInstanceFree free_func;
|
GDExtensionScriptInstanceFree free_func;
|
||||||
|
|
||||||
} GDExtensionScriptInstanceInfo2;
|
} GDExtensionScriptInstanceInfo2; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
GDExtensionScriptInstanceSet set_func;
|
||||||
|
GDExtensionScriptInstanceGet get_func;
|
||||||
|
GDExtensionScriptInstanceGetPropertyList get_property_list_func;
|
||||||
|
GDExtensionScriptInstanceFreePropertyList2 free_property_list_func;
|
||||||
|
GDExtensionScriptInstanceGetClassCategory get_class_category_func; // Optional. Set to NULL for the default behavior.
|
||||||
|
|
||||||
|
GDExtensionScriptInstancePropertyCanRevert property_can_revert_func;
|
||||||
|
GDExtensionScriptInstancePropertyGetRevert property_get_revert_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceGetOwner get_owner_func;
|
||||||
|
GDExtensionScriptInstanceGetPropertyState get_property_state_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceGetMethodList get_method_list_func;
|
||||||
|
GDExtensionScriptInstanceFreeMethodList2 free_method_list_func;
|
||||||
|
GDExtensionScriptInstanceGetPropertyType get_property_type_func;
|
||||||
|
GDExtensionScriptInstanceValidateProperty validate_property_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceHasMethod has_method_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceCall call_func;
|
||||||
|
GDExtensionScriptInstanceNotification2 notification_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceToString to_string_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceRefCountIncremented refcount_incremented_func;
|
||||||
|
GDExtensionScriptInstanceRefCountDecremented refcount_decremented_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceGetScript get_script_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceIsPlaceholder is_placeholder_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceSet set_fallback_func;
|
||||||
|
GDExtensionScriptInstanceGet get_fallback_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceGetLanguage get_language_func;
|
||||||
|
|
||||||
|
GDExtensionScriptInstanceFree free_func;
|
||||||
|
|
||||||
|
} GDExtensionScriptInstanceInfo3;
|
||||||
|
|
||||||
/* INITIALIZATION */
|
/* INITIALIZATION */
|
||||||
|
|
||||||
|
@ -2412,7 +2455,7 @@ typedef void (*GDExtensionInterfaceRefSetObject)(GDExtensionRefPtr p_ref, GDExte
|
||||||
/**
|
/**
|
||||||
* @name script_instance_create
|
* @name script_instance_create
|
||||||
* @since 4.1
|
* @since 4.1
|
||||||
* @deprecated in Godot 4.2. Use `script_instance_create2` instead.
|
* @deprecated in Godot 4.2. Use `script_instance_create3` instead.
|
||||||
*
|
*
|
||||||
* Creates a script instance that contains the given info and instance data.
|
* Creates a script instance that contains the given info and instance data.
|
||||||
*
|
*
|
||||||
|
@ -2426,6 +2469,7 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
|
||||||
/**
|
/**
|
||||||
* @name script_instance_create2
|
* @name script_instance_create2
|
||||||
* @since 4.2
|
* @since 4.2
|
||||||
|
* @deprecated in Godot 4.3. Use `script_instance_create3` instead.
|
||||||
*
|
*
|
||||||
* Creates a script instance that contains the given info and instance data.
|
* Creates a script instance that contains the given info and instance data.
|
||||||
*
|
*
|
||||||
|
@ -2436,6 +2480,19 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
|
||||||
*/
|
*/
|
||||||
typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate2)(const GDExtensionScriptInstanceInfo2 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data);
|
typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate2)(const GDExtensionScriptInstanceInfo2 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name script_instance_create3
|
||||||
|
* @since 4.3
|
||||||
|
*
|
||||||
|
* Creates a script instance that contains the given info and instance data.
|
||||||
|
*
|
||||||
|
* @param p_info A pointer to a GDExtensionScriptInstanceInfo3 struct.
|
||||||
|
* @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.
|
||||||
|
*
|
||||||
|
* @return A pointer to a ScriptInstanceExtension object.
|
||||||
|
*/
|
||||||
|
typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate3)(const GDExtensionScriptInstanceInfo3 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name placeholder_script_instance_create
|
* @name placeholder_script_instance_create
|
||||||
* @since 4.2
|
* @since 4.2
|
||||||
|
|
|
@ -171,7 +171,7 @@ extern "C" GDExtensionInterfaceCallableCustomCreate2 gdextension_interface_calla
|
||||||
extern "C" GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata;
|
extern "C" GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata;
|
||||||
extern "C" GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object;
|
extern "C" GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object;
|
||||||
extern "C" GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object;
|
extern "C" GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object;
|
||||||
extern "C" GDExtensionInterfaceScriptInstanceCreate2 gdextension_interface_script_instance_create2;
|
extern "C" GDExtensionInterfaceScriptInstanceCreate3 gdextension_interface_script_instance_create3;
|
||||||
extern "C" GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create;
|
extern "C" GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create;
|
||||||
extern "C" GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update;
|
extern "C" GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update;
|
||||||
extern "C" GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object;
|
extern "C" GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object;
|
||||||
|
|
|
@ -177,7 +177,7 @@ GDExtensionInterfaceCallableCustomCreate2 gdextension_interface_callable_custom_
|
||||||
GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata = nullptr;
|
GDExtensionInterfaceCallableCustomGetUserData gdextension_interface_callable_custom_get_userdata = nullptr;
|
||||||
GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object = nullptr;
|
GDExtensionInterfaceRefGetObject gdextension_interface_ref_get_object = nullptr;
|
||||||
GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object = nullptr;
|
GDExtensionInterfaceRefSetObject gdextension_interface_ref_set_object = nullptr;
|
||||||
GDExtensionInterfaceScriptInstanceCreate2 gdextension_interface_script_instance_create2 = nullptr;
|
GDExtensionInterfaceScriptInstanceCreate3 gdextension_interface_script_instance_create3 = nullptr;
|
||||||
GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create = nullptr;
|
GDExtensionInterfacePlaceHolderScriptInstanceCreate gdextension_interface_placeholder_script_instance_create = nullptr;
|
||||||
GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update = nullptr;
|
GDExtensionInterfacePlaceHolderScriptInstanceUpdate gdextension_interface_placeholder_script_instance_update = nullptr;
|
||||||
GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object = nullptr;
|
GDExtensionInterfaceClassdbConstructObject gdextension_interface_classdb_construct_object = nullptr;
|
||||||
|
@ -417,7 +417,7 @@ GDExtensionBool GDExtensionBinding::init(GDExtensionInterfaceGetProcAddress p_ge
|
||||||
LOAD_PROC_ADDRESS(callable_custom_get_userdata, GDExtensionInterfaceCallableCustomGetUserData);
|
LOAD_PROC_ADDRESS(callable_custom_get_userdata, GDExtensionInterfaceCallableCustomGetUserData);
|
||||||
LOAD_PROC_ADDRESS(ref_get_object, GDExtensionInterfaceRefGetObject);
|
LOAD_PROC_ADDRESS(ref_get_object, GDExtensionInterfaceRefGetObject);
|
||||||
LOAD_PROC_ADDRESS(ref_set_object, GDExtensionInterfaceRefSetObject);
|
LOAD_PROC_ADDRESS(ref_set_object, GDExtensionInterfaceRefSetObject);
|
||||||
LOAD_PROC_ADDRESS(script_instance_create2, GDExtensionInterfaceScriptInstanceCreate2);
|
LOAD_PROC_ADDRESS(script_instance_create3, GDExtensionInterfaceScriptInstanceCreate3);
|
||||||
LOAD_PROC_ADDRESS(placeholder_script_instance_create, GDExtensionInterfacePlaceHolderScriptInstanceCreate);
|
LOAD_PROC_ADDRESS(placeholder_script_instance_create, GDExtensionInterfacePlaceHolderScriptInstanceCreate);
|
||||||
LOAD_PROC_ADDRESS(placeholder_script_instance_update, GDExtensionInterfacePlaceHolderScriptInstanceUpdate);
|
LOAD_PROC_ADDRESS(placeholder_script_instance_update, GDExtensionInterfacePlaceHolderScriptInstanceUpdate);
|
||||||
LOAD_PROC_ADDRESS(classdb_construct_object, GDExtensionInterfaceClassdbConstructObject);
|
LOAD_PROC_ADDRESS(classdb_construct_object, GDExtensionInterfaceClassdbConstructObject);
|
||||||
|
|
Loading…
Reference in New Issue