more method channel work on linux
This commit is contained in:
@@ -347,6 +347,23 @@ static FlMethodResponse* _animate_weights(PolyvoxFilamentPlugin* self, FlMethodC
|
|||||||
return FL_METHOD_RESPONSE(fl_method_success_response_new(result));
|
return FL_METHOD_RESPONSE(fl_method_success_response_new(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FlMethodResponse* _get_target_names(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) {
|
||||||
|
FlValue* args = fl_method_call_get_args(method_call);
|
||||||
|
auto assetPtr = (void*)fl_value_get_int(fl_value_get_list_value(args, 0));
|
||||||
|
auto meshName = fl_value_get_string(fl_value_get_list_value(args, 1));
|
||||||
|
g_autoptr(FlValue) result = fl_value_new_list();
|
||||||
|
|
||||||
|
auto numNames = get_target_name_count(assetPtr, meshName);
|
||||||
|
|
||||||
|
for(int i = 0; i < numNames; i++) {
|
||||||
|
gchar out[255];
|
||||||
|
get_target_name(assetPtr, meshName, out, i);
|
||||||
|
fl_value_append_take (result, fl_value_new_string (out));
|
||||||
|
}
|
||||||
|
|
||||||
|
return FL_METHOD_RESPONSE(fl_method_success_response_new(result));
|
||||||
|
}
|
||||||
|
|
||||||
// Called when a method call is received from Flutter.
|
// Called when a method call is received from Flutter.
|
||||||
static void polyvox_filament_plugin_handle_method_call(
|
static void polyvox_filament_plugin_handle_method_call(
|
||||||
PolyvoxFilamentPlugin* self,
|
PolyvoxFilamentPlugin* self,
|
||||||
@@ -426,6 +443,8 @@ static void polyvox_filament_plugin_handle_method_call(
|
|||||||
response = _apply_weights(self, method_call);
|
response = _apply_weights(self, method_call);
|
||||||
} else if(strcmp(method, "animateWeights") == 0) {
|
} else if(strcmp(method, "animateWeights") == 0) {
|
||||||
response = _animate_weights(self, method_call);
|
response = _animate_weights(self, method_call);
|
||||||
|
} else if(strcmp(method, "getTargetNames") == 0) {
|
||||||
|
response = _get_target_names(self, method_call);
|
||||||
} else {
|
} else {
|
||||||
response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
|
response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user