1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- ///
- /// Spine Runtimes License Agreement
- /// Last updated April 5, 2025. Replaces all prior versions.
- ///
- /// Copyright (c) 2013-2025, Esoteric Software LLC
- ///
- /// Integration of the Spine Runtimes into software or otherwise creating
- /// derivative works of the Spine Runtimes is permitted under the terms and
- /// conditions of Section 2 of the Spine Editor License Agreement:
- /// http://esotericsoftware.com/spine-editor-license
- ///
- /// Otherwise, it is permitted to integrate the Spine Runtimes into software
- /// or otherwise create derivative works of the Spine Runtimes (collectively,
- /// "Products"), provided that each user of the Products must obtain their own
- /// Spine Editor license and redistribution of the Products in any form must
- /// include this license and copyright notice.
- ///
- /// THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- /// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- /// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- /// DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- /// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- /// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- /// BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- /// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- /// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- /// THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ///
- import 'dart:ffi';
- import 'dart:io';
- import 'package:ffi/ffi.dart';
- const String _libName = 'spine_flutter';
- final DynamicLibrary _dylib = () {
- if (Platform.isMacOS || Platform.isIOS) {
- return DynamicLibrary.open('$_libName.framework/$_libName');
- }
- if (Platform.isAndroid || Platform.isLinux) {
- return DynamicLibrary.open('lib$_libName.so');
- }
- if (Platform.isWindows) {
- return DynamicLibrary.open('$_libName.dll');
- }
- throw UnsupportedError('Unknown platform: ${Platform.operatingSystem}');
- }();
- class SpineFlutterFFI {
- DynamicLibrary dylib;
- Allocator allocator;
- SpineFlutterFFI(this.dylib, this.allocator);
- }
- Future<SpineFlutterFFI> initSpineFlutterFFI(bool useStaticLinkage) async {
- if (useStaticLinkage) {
- return SpineFlutterFFI(DynamicLibrary.process(), malloc);
- } else {
- return SpineFlutterFFI(_dylib, malloc);
- }
- }
|