loadSkeletonDataBinary function
Load skeleton data from binary data
Implementation
SkeletonData loadSkeletonDataBinary(Atlas atlas, Uint8List binaryData, {String? path}) {
final Pointer<Uint8> binaryNative = malloc.allocate(binaryData.lengthInBytes);
binaryNative.asTypedList(binaryData.lengthInBytes).setAll(0, binaryData);
final pathNative = (path ?? '').toNativeUtf8();
final resultPtr = SpineBindings.bindings.spine_skeleton_data_load_binary(
atlas.nativePtr.cast(), binaryNative.cast(), binaryData.lengthInBytes, pathNative.cast<Char>());
malloc.free(binaryNative);
malloc.free(pathNative);
// Check for error
final errorPtr = SpineBindings.bindings.spine_skeleton_data_result_get_error(resultPtr.cast());
if (errorPtr != nullptr) {
final error = errorPtr.cast<Utf8>().toDartString();
SpineBindings.bindings.spine_skeleton_data_result_dispose(resultPtr.cast());
throw Exception("Couldn't load skeleton data: $error");
}
// Get skeleton data
final skeletonDataPtr = SpineBindings.bindings.spine_skeleton_data_result_get_data(resultPtr.cast());
final skeletonData = SkeletonData.fromPointer(skeletonDataPtr);
SpineBindings.bindings.spine_skeleton_data_result_dispose(resultPtr.cast());
return skeletonData;
}