diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-03-29 14:44:07 +0300 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-03-30 15:11:28 +0300 |
commit | 057a771fdaa4627f5783224e106447ea4ad81bbb (patch) | |
tree | 2d2079dc05b9789edc71d9987ccdfb273635bb3e /test/src | |
parent | 5eb1c54116a135ac3d7f80b50cbe3cbe137318c6 (diff) | |
download | redot-cpp-057a771fdaa4627f5783224e106447ea4ad81bbb.tar.gz |
Add support for variadic method binds with the typed return. Sync headers.
Diffstat (limited to 'test/src')
-rw-r--r-- | test/src/example.cpp | 25 | ||||
-rw-r--r-- | test/src/example.h | 2 |
2 files changed, 26 insertions, 1 deletions
diff --git a/test/src/example.cpp b/test/src/example.cpp index ce995f8..058b33b 100644 --- a/test/src/example.cpp +++ b/test/src/example.cpp @@ -65,6 +65,20 @@ void Example::_bind_methods() { ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "varargs_func", &Example::varargs_func, mi); } + { + MethodInfo mi; + mi.arguments.push_back(PropertyInfo(Variant::STRING, "some_argument")); + mi.name = "varargs_func_nv"; + ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "varargs_func_nv", &Example::varargs_func_nv, mi); + } + + { + MethodInfo mi; + mi.arguments.push_back(PropertyInfo(Variant::STRING, "some_argument")); + mi.name = "varargs_func_void"; + ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "varargs_func_void", &Example::varargs_func_void, mi); + } + // Properties. ADD_GROUP("Test group", "group_"); ADD_SUBGROUP("Test subgroup", "group_subgroup_"); @@ -129,10 +143,19 @@ Ref<ExampleRef> Example::extended_ref_checks(Ref<ExampleRef> p_ref) const { } Variant Example::varargs_func(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error) { - UtilityFunctions::print("Varargs called with ", String::num((double)arg_count), " arguments"); + UtilityFunctions::print("Varargs (Variant return) called with ", String::num((double)arg_count), " arguments"); return arg_count; } +int Example::varargs_func_nv(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error) { + UtilityFunctions::print("Varargs (int return) called with ", String::num((double)arg_count), " arguments"); + return 42; +} + +void Example::varargs_func_void(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error) { + UtilityFunctions::print("Varargs (no return) called with ", String::num((double)arg_count), " arguments"); +} + void Example::emit_custom_signal(const String &name, int value) { emit_signal("custom_signal", name, value); } diff --git a/test/src/example.h b/test/src/example.h index a15b6f1..fb331a5 100644 --- a/test/src/example.h +++ b/test/src/example.h @@ -87,6 +87,8 @@ public: ExampleRef *return_extended_ref() const; Ref<ExampleRef> extended_ref_checks(Ref<ExampleRef> p_ref) const; Variant varargs_func(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error); + int varargs_func_nv(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error); + void varargs_func_void(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error); void emit_custom_signal(const String &name, int value); Array test_array() const; |