diff options
Diffstat (limited to 'core/variant/variant.h')
-rw-r--r-- | core/variant/variant.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/core/variant/variant.h b/core/variant/variant.h index ee08373b27..d3e2f84357 100644 --- a/core/variant/variant.h +++ b/core/variant/variant.h @@ -267,6 +267,8 @@ private: static void _unregister_variant_setters_getters(); static void _register_variant_constructors(); static void _unregister_variant_constructors(); + static void _register_variant_builtin_funcs(); + static void _unregister_variant_builtin_funcs(); public: _FORCE_INLINE_ Type get_type() const { @@ -523,6 +525,7 @@ public: Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error); Variant call(const StringName &p_method, const Variant &p_arg1 = Variant(), const Variant &p_arg2 = Variant(), const Variant &p_arg3 = Variant(), const Variant &p_arg4 = Variant(), const Variant &p_arg5 = Variant()); + static String get_call_error_text(const StringName &p_method, const Variant **p_argptrs, int p_argcount, const Callable::CallError &ce); static String get_call_error_text(Object *p_base, const StringName &p_method, const Variant **p_argptrs, int p_argcount, const Callable::CallError &ce); static String get_callable_error_text(const Callable &p_callable, const Variant **p_argptrs, int p_argcount, const Callable::CallError &ce); @@ -619,6 +622,32 @@ public: void get_property_list(List<PropertyInfo> *p_list) const; + static void call_builtin_func(const StringName &p_name, Variant *r_ret, const Variant **p_args, int p_argcount, Callable::CallError &r_error); + static bool has_builtin_func(const StringName &p_name); + + typedef void (*BuiltinFunctionValidatedCall)(Variant *r_ret, const Variant **p_args, int p_argcount); + typedef void (*BuiltinFunctionPTRCall)(void *r_ret, const void **p_args, int p_argcount); + + static BuiltinFunctionValidatedCall get_builtin_validated_caller(const StringName &p_name); + static BuiltinFunctionPTRCall get_builtin_ptr_caller(const StringName &p_name); + + enum BuiltInFunctionType { + BUILTIN_FUNC_TYPE_MATH, + BUILTIN_FUNC_TYPE_RANDOM, + BUILTIN_FUNC_TYPE_UTILITY, + }; + + static BuiltInFunctionType get_builtin_func_type(const StringName &p_name); + + static int get_builtin_func_argument_count(const StringName &p_name); + static Variant::Type get_builtin_func_argument_type(const StringName &p_name, int p_arg); + static String get_builtin_func_argument_name(const StringName &p_name, int p_arg); + static bool has_builtin_func_return_value(const StringName &p_name); + static Variant::Type get_builtin_func_return_type(const StringName &p_name); + static bool is_builtin_func_vararg(const StringName &p_name); + + static void get_builtin_function_list(List<StringName> *r_functions); + //argsVariant call() bool operator==(const Variant &p_variant) const; |