From 06b99e2fa028f217f76833da9451578592a8f476 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Tue, 29 Mar 2022 15:48:39 +0800 Subject: [PATCH] add loop option to playAnimation and fix animation names --- android/src/main/cpp/filament_api.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/android/src/main/cpp/filament_api.cpp b/android/src/main/cpp/filament_api.cpp index e7ac6769..a92495b6 100644 --- a/android/src/main/cpp/filament_api.cpp +++ b/android/src/main/cpp/filament_api.cpp @@ -123,9 +123,9 @@ extern "C" { ((FilamentViewer*)viewer)->animateWeights((float*)data, numWeights, numFrames, frameRate); } - void play_animation(void* viewer, int index) { + void play_animation(void* viewer, int index, bool loop) { __android_log_print(ANDROID_LOG_VERBOSE, "filament_api", "Playing embedded animation %d", index); - ((FilamentViewer*)viewer)->playAnimation(index); + ((FilamentViewer*)viewer)->playAnimation(index, loop); } char** get_animation_names(void* viewer, int* countPtr) { @@ -134,8 +134,10 @@ extern "C" { char** names_c; names_c = new char*[names->size()]; for(int i = 0; i < names->size(); i++) { - names_c[i] = (char*) names->at(i).c_str(); - __android_log_print(ANDROID_LOG_VERBOSE, "filament_api", "Alloced animation name %s ", (char*) names->at(i).c_str()); + __android_log_print(ANDROID_LOG_VERBOSE, "filament_api", "Memcpy %d bytes ", names->at(i).size()); + names_c[i] = (char*) malloc(names->at(i).size() +1); + strcpy(names_c[i], names->at(i).c_str()); + __android_log_print(ANDROID_LOG_VERBOSE, "filament_api", "Alloced animation name %s ", (char*) names_c[i]); } (*countPtr) = names->size(); return names_c;