diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..8f14beb75 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1 @@ +* [ ] I confirm this contribution is made under the Esoteric Software LLC [CLA](http://esotericsoftware.com/licenses/cla.txt). diff --git a/.github/workflows/spine-godot-extension-v4.yml b/.github/workflows/spine-godot-extension-v4.yml index 8f3f781b2..9ca8f4421 100644 --- a/.github/workflows/spine-godot-extension-v4.yml +++ b/.github/workflows/spine-godot-extension-v4.yml @@ -49,7 +49,7 @@ jobs: path: spine-godot/example-v4-extension/bin/windows/*.dll build-linux-x86_64: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/spine-godot-v4.yml b/.github/workflows/spine-godot-v4.yml index 2f0fe69bf..31a50b493 100644 --- a/.github/workflows/spine-godot-v4.yml +++ b/.github/workflows/spine-godot-v4.yml @@ -65,7 +65,7 @@ jobs: path: spine-godot/godot/bin/**/* godot-editor-linux: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: @@ -161,7 +161,7 @@ jobs: path: spine-godot/godot/bin/macos.zip godot-template-linux: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: diff --git a/.gitignore b/.gitignore index cc177705e..1140eb43a 100644 --- a/.gitignore +++ b/.gitignore @@ -221,3 +221,4 @@ spine-godot/build/version.txt spine-godot/vc140.pdb spine-godot/example-v4-extension/bin spine-godot/example-v4-extension/MoltenVK.xcframework +spine-flutter/example/android/app/.cxx diff --git a/CHANGELOG.md b/CHANGELOG.md index e9e286bed..228a65e57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -175,6 +175,7 @@ 2. Add a `RenderExistingMeshGraphic` component. 3. In the `RenderExistingMeshGraphic` component Inspector at `Reference Skeleton Graphic` assign the original `SkeletonGraphic` object. 4. At `Replacement Material` assign e.g. the included _SkeletonGraphicDefaultOutline_ material to replace all materials with this material. Alternatively, if `Multiple CanvasRenderers` is enabled at the reference SkeletonGraphic, you can add entries to the `Replacement Materials` list and at each entry assign the original SkeletonGraphic material (e.g. _SkeletonGraphicDefault_) to be replaced and the respective `Replacement Material` (e.g. _SkeletonGraphicDefaultOutline_). + - Added option for unsafe direct data loading when loading skeleton binary data to avoid some allocations, enabled via build define `SPINE_ALLOW_UNSAFE`. This define can be set via Spine Preferences, setting `Unsafe Build Defines - Direct data access`. The define is disabled by default to maintain existing behaviour. Changed asmdef setting for spine-unity assembly to allow unsafe code, has no effect other than allowing setting the `SPINE_ALLOW_UNSAFE` define. - **Breaking changes** diff --git a/spine-flutter/CHANGELOG.md b/spine-flutter/CHANGELOG.md index 28a8b3e04..784703f53 100644 --- a/spine-flutter/CHANGELOG.md +++ b/spine-flutter/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.2.36 +- Support for 16KB page alignement on Android. You must specify the NDK version in the build.gradle file of your app's Android project. See https://github.com/EsotericSoftware/spine-runtimes/issues/2849 + # 4.2.35 - Port of commit f1e0f0f: Fixed animation not being mixed out in some cases. diff --git a/spine-flutter/android/build.gradle b/spine-flutter/android/build.gradle index 5e618a3be..6aac6715a 100644 --- a/spine-flutter/android/build.gradle +++ b/spine-flutter/android/build.gradle @@ -11,7 +11,7 @@ buildscript { dependencies { // The Android Gradle Plugin knows how to build native code with the NDK. - classpath 'com.android.tools.build:gradle:7.1.2' + classpath 'com.android.tools.build:gradle:8.5.1' } } @@ -33,7 +33,7 @@ android { // Bumping the plugin ndkVersion requires all clients of this plugin to bump // the version in their app and to download a newer version of the NDK. - ndkVersion "21.1.6352462" + ndkVersion "28.1.13356709" // Invoke the shared CMake build with the Android Gradle Plugin. externalNativeBuild { @@ -56,6 +56,6 @@ android { } defaultConfig { - minSdkVersion 16 + minSdkVersion 21 } } diff --git a/spine-flutter/example/.gitignore b/spine-flutter/example/.gitignore index 1eab1a228..13f41015a 100644 --- a/spine-flutter/example/.gitignore +++ b/spine-flutter/example/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/spine-flutter/example/android/app/build.gradle b/spine-flutter/example/android/app/build.gradle index 672a97c81..5da267aea 100644 --- a/spine-flutter/example/android/app/build.gradle +++ b/spine-flutter/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,13 +22,11 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion + // ndkVersion flutter.ndkVersion + ndkVersion "28.1.13356709" + namespace "com.esotericsoftware.spine.android" compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -44,7 +43,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.spine_flutter_example" + applicationId "com.esotericsoftware.spine.android" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion flutter.minSdkVersion @@ -65,7 +64,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/spine-flutter/example/android/app/src/debug/AndroidManifest.xml b/spine-flutter/example/android/app/src/debug/AndroidManifest.xml index cf5d5093b..399f6981d 100644 --- a/spine-flutter/example/android/app/src/debug/AndroidManifest.xml +++ b/spine-flutter/example/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - +