summaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2022-03-29 14:44:07 +0300
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2022-03-30 15:11:28 +0300
commit057a771fdaa4627f5783224e106447ea4ad81bbb (patch)
tree2d2079dc05b9789edc71d9987ccdfb273635bb3e /test/src
parent5eb1c54116a135ac3d7f80b50cbe3cbe137318c6 (diff)
downloadredot-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.cpp25
-rw-r--r--test/src/example.h2
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;