Merge branch '4.1' into 4.2-beta

This commit is contained in:
Harald Csaszar 2023-07-24 20:46:11 +02:00
commit ea16621fb1
16 changed files with 559 additions and 489 deletions

View File

@ -0,0 +1,26 @@
name: Build spine-godot (All Godot 4.x versions)
on:
push:
paths:
- ".github/workflows/spine-godot.yml"
- 'spine-godot/**'
- 'spine-cpp/**'
workflow_dispatch:
jobs:
build-versions:
strategy:
matrix:
version:
[
{"tag": "4.0-stable", "version": "4.0.stable", "mono": false},
{"tag": "4.1-stable", "version": "4.1.stable", "mono": false},
{"tag": "4.1-stable", "version": "4.1.stable", "mono": true},
]
uses: ./.github/workflows/spine-godot-v4.yml
with:
godot_tag: ${{ matrix.version.tag }}
godot_version: ${{ matrix.version.version }}
godot_mono: ${{ matrix.version.mono }}
secrets: inherit

View File

@ -1,368 +0,0 @@
name: Build and Publish Godot 4.1 editor and templates
on:
push:
paths:
- ".github/workflows/spine-godot.yml"
- 'spine-godot/**'
- 'spine-cpp/**'
workflow_dispatch:
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
EM_VERSION: 3.1.18
GODOT_TAG: 4.1-stable
GODOT_VERSION: 4.1.stable
jobs:
godot-editor-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-windows.zip
path: spine-godot/godot/bin/godot.windows.editor.x86_64.exe
godot-editor-linux:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
shell: bash
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-linux.zip
path: spine-godot/godot/bin/godot.linuxbsd.editor.x86_64
godot-editor-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/install-macos-vulkan-sdk.sh
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
pushd spine-godot/godot/bin
zip -r godot-editor-macos.zip Godot.app
popd
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-macos.zip
path: spine-godot/godot/bin/godot-editor-macos.zip
godot-template-ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
run: |
./spine-godot/build/install-macos-vulkan-sdk.sh
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh ios
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-template-ios.zip
path: spine-godot/godot/bin/ios.zip
godot-template-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
run: |
./spine-godot/build/install-macos-vulkan-sdk.sh
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh macos
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-template-macos.zip
path: spine-godot/godot/bin/macos.zip
godot-template-linux:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh linux
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-linux-debug.zip
path: spine-godot/godot/bin/linux_x11_64_debug
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-linux-release.zip
path: spine-godot/godot/bin/linux_x11_64_release
godot-template-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh windows
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-windows-debug.zip
path: spine-godot/godot/bin/windows_debug_x86_64.exe
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-windows-release.zip
path: spine-godot/godot/bin/windows_release_x86_64.exe
godot-template-android:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
# Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories
run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f spine-godot/build/sources.lst /etc/apt/sources.list
sudo apt-get update
- name: Set up Java 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh android
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-android-debug.zip
path: spine-godot/godot/bin/android_debug.apk
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-android-release.zip
path: spine-godot/godot/bin/android_release.apk
- name: Upload artifacts source
uses: actions/upload-artifact@v3
with:
name: godot-template-android-source.zip
path: spine-godot/godot/bin/android_source.zip
godot-template-web:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v11
with:
version: ${{env.EM_VERSION}}
- name: Verify Emscripten setup
run: |
emcc -v
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps
- name: Build Godot artifact
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh web
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-web-debug.zip
path: spine-godot/godot/bin/web_debug.zip
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-web-release.zip
path: spine-godot/godot/bin/web_release.zip
upload-to-s3:
needs: [godot-editor-windows, godot-editor-linux, godot-editor-macos, godot-template-ios, godot-template-macos, godot-template-windows, godot-template-linux, godot-template-android, godot-template-web]
runs-on: ubuntu-latest
steps:
- name: Download godot-editor-windows artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-windows.zip
- name: Download godot-editor-linux artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-linux.zip
- name: Download godot-editor-macos artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-macos.zip
- name: Download godot-template-ios artifact
uses: actions/download-artifact@v2
with:
name: godot-template-ios.zip
- name: Download godot-template-macos artifact
uses: actions/download-artifact@v2
with:
name: godot-template-macos.zip
- name: Download godot-template-windows-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-windows-release.zip
- name: Download godot-template-windows-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-windows-debug.zip
- name: Download godot-template-linux-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-linux-release.zip
- name: Download godot-template-linux-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-linux-debug.zip
- name: Download godot-template-android-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-android-release.zip
- name: Download godot-template-android-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-android-debug.zip
- name: Download godot-template-android-source artifact
uses: actions/download-artifact@v2
with:
name: godot-template-android-source.zip
- name: Download godot-template-web-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-web-release.zip
- name: Download godot-template-web-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-web-debug.zip
- name: Upload artifacts to S3
shell: bash
if: env.AWS_ACCESS_KEY_ID != null
run: |
BRANCH=${GITHUB_REF#refs/heads/}
echo "branch: $BRANCH"
mv godot.windows.editor.x86_64.exe godot-$BRANCH-$GODOT_TAG.exe
mv godot.linuxbsd.editor.x86_64 godot-$BRANCH-$GODOT_TAG
zip godot-editor-windows.zip godot-$BRANCH-$GODOT_TAG.exe
zip godot-editor-linux.zip godot-$BRANCH-$GODOT_TAG
aws s3 cp godot-editor-windows.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
aws s3 cp godot-editor-linux.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
aws s3 cp godot-editor-macos.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
echo "$GODOT_VERSION" > version.txt
ls -lah
zip spine-godot-templates-$BRANCH-$GODOT_TAG.zip ios.zip macos.zip windows_debug_x86_64.exe windows_release_x86_64.exe linux_x11_64_debug linux_x11_64_release web_debug.zip web_release.zip android_release.apk android_debug.apk android_source.zip version.txt
aws s3 cp spine-godot-templates-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/spine-godot-templates-$BRANCH-$GODOT_TAG.tpz

View File

@ -1,20 +1,44 @@
name: Build and Publish Godot 4.0 editor and templates
name: Build spine-godot (Godot 4.x)
on:
push:
paths:
- ".github/workflows/spine-godot.yml"
- 'spine-godot/**'
- 'spine-cpp/**'
workflow_call:
inputs:
godot_tag:
required: true
type: string
default: "Godot tag not specified!"
godot_version:
required: true
type: string
default: "Godot version not specified!"
godot_mono:
required: true
type: boolean
default: false
workflow_dispatch:
inputs:
godot_tag:
required: true
type: string
default: "Godot tag not specified!"
godot_version:
required: true
type: string
default: "Godot version not specified!"
godot_mono:
required: true
type: boolean
default: false
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
EM_VERSION: 3.1.18
GODOT_TAG: 4.0.3-stable
GODOT_VERSION: 4.0.3.stable
GODOT_TAG: ${{ inputs.godot_tag }}
GODOT_VERSION: ${{ inputs.godot_version }}
GODOT_MONO: ${{ inputs.godot_mono }}
GODOT_MONO_UPLOAD_SUFFIX: ${{ inputs.godot_mono == true && '-mono' || '' }}
jobs:
@ -31,14 +55,14 @@ jobs:
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-v4.sh $GODOT_MONO
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-windows.zip
path: spine-godot/godot/bin/godot.windows.editor.x86_64.exe
name: ${{ format('{0}{1}.zip', 'godot-editor-windows', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/**/*
godot-editor-linux:
runs-on: ubuntu-20.04
@ -55,14 +79,14 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-v4.sh $GODOT_MONO
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-linux.zip
path: spine-godot/godot/bin/godot.linuxbsd.editor.x86_64
name: ${{ format('{0}{1}.zip', 'godot-editor-linux', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/**/*
godot-editor-macos:
runs-on: macos-latest
@ -78,8 +102,8 @@ jobs:
shell: bash
run: |
./spine-godot/build/install-macos-vulkan-sdk.sh
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-v4.sh
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-v4.sh $GODOT_MONO
pushd spine-godot/godot/bin
zip -r godot-editor-macos.zip Godot.app
popd
@ -87,11 +111,13 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-editor-macos.zip
name: ${{ format('{0}{1}.zip', 'godot-editor-macos', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/godot-editor-macos.zip
godot-template-ios:
runs-on: macos-latest
if: ${{ inputs.godot_mono == false }}
steps:
- uses: actions/checkout@v3
with:
@ -109,7 +135,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-template-ios.zip
name: ${{ format('{0}{1}.zip', 'godot-template-ios', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/ios.zip
godot-template-macos:
@ -125,13 +151,13 @@ jobs:
- name: Build Godot artifact
run: |
./spine-godot/build/install-macos-vulkan-sdk.sh
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh macos
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-templates-v4.sh macos $GODOT_MONO
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: godot-template-macos.zip
name: ${{ format('{0}{1}.zip', 'godot-template-macos', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/macos.zip
godot-template-linux:
@ -148,20 +174,20 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh linux
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-templates-v4.sh linux $GODOT_MONO
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-linux-debug.zip
path: spine-godot/godot/bin/linux_x11_64_debug
name: ${{ format('{0}{1}.zip', 'godot-template-linux-debug', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/linux_debug.x86_64
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-linux-release.zip
path: spine-godot/godot/bin/linux_x11_64_release
name: ${{ format('{0}{1}.zip', 'godot-template-linux-release', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/linux_release.x86_64
godot-template-windows:
runs-on: windows-latest
@ -176,23 +202,24 @@ jobs:
- name: Build Godot artifact
shell: bash
run: |
./spine-godot/build/setup.sh $GODOT_TAG false
./spine-godot/build/build-templates-v4.sh windows
./spine-godot/build/setup.sh $GODOT_TAG false $GODOT_MONO
./spine-godot/build/build-templates-v4.sh windows $GODOT_MONO
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-windows-debug.zip
name: ${{ format('{0}{1}.zip', 'godot-template-windows-debug', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/windows_debug_x86_64.exe
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-windows-release.zip
name: ${{ format('{0}{1}.zip', 'godot-template-windows-release', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/windows_release_x86_64.exe
godot-template-android:
runs-on: ubuntu-20.04
if: ${{ inputs.godot_mono == false }}
steps:
- uses: actions/checkout@v3
with:
@ -222,23 +249,25 @@ jobs:
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-android-debug.zip
name: ${{ format('{0}{1}.zip', 'godot-template-android-debug', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/android_debug.apk
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-android-release.zip
name: ${{ format('{0}{1}.zip', 'godot-template-android-release', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/android_release.apk
- name: Upload artifacts source
uses: actions/upload-artifact@v3
with:
name: godot-template-android-source.zip
name: ${{ format('{0}{1}.zip', 'godot-template-android-source', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/android_source.zip
godot-template-web:
runs-on: ubuntu-20.04
if: ${{ inputs.godot_mono == false }}
steps:
- uses: actions/checkout@v3
with:
@ -264,18 +293,20 @@ jobs:
- name: Upload artifacts debug
uses: actions/upload-artifact@v3
with:
name: godot-template-web-debug.zip
name: ${{ format('{0}{1}.zip', 'godot-template-web-debug', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/web_debug.zip
- name: Upload artifacts release
uses: actions/upload-artifact@v3
with:
name: godot-template-web-release.zip
name: ${{ format('{0}{1}.zip', 'godot-template-web-release', env.GODOT_MONO_UPLOAD_SUFFIX) }}
path: spine-godot/godot/bin/web_release.zip
upload-to-s3:
needs: [godot-editor-windows, godot-editor-linux, godot-editor-macos, godot-template-ios, godot-template-macos, godot-template-windows, godot-template-linux, godot-template-android, godot-template-web]
runs-on: ubuntu-latest
if: ${{ inputs.godot_mono == false }}
steps:
- name: Download godot-editor-windows artifact
uses: actions/download-artifact@v2
@ -362,7 +393,72 @@ jobs:
aws s3 cp godot-editor-macos.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
echo "$GODOT_VERSION" > version.txt
ls -lah
zip spine-godot-templates-$BRANCH-$GODOT_TAG.zip ios.zip macos.zip windows_debug_x86_64.exe windows_release_x86_64.exe linux_x11_64_debug linux_x11_64_release web_debug.zip web_release.zip android_release.apk android_debug.apk android_source.zip version.txt
zip spine-godot-templates-$BRANCH-$GODOT_TAG.zip ios.zip macos.zip windows_debug_x86_64.exe windows_release_x86_64.exe linux_debug.x86_64 linux_release.x86_64 web_debug.zip web_release.zip android_release.apk android_debug.apk android_source.zip version.txt
aws s3 cp spine-godot-templates-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/spine-godot-templates-$BRANCH-$GODOT_TAG.tpz
upload-to-s3-mono:
needs: [godot-editor-windows, godot-editor-linux, godot-editor-macos, godot-template-macos, godot-template-windows, godot-template-linux]
runs-on: ubuntu-latest
if: ${{ inputs.godot_mono == true }}
steps:
- name: Download godot-editor-windows artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-windows-mono.zip
- name: Download godot-editor-linux artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-linux-mono.zip
- name: Download godot-editor-macos artifact
uses: actions/download-artifact@v2
with:
name: godot-editor-macos-mono.zip
- name: Download godot-template-macos artifact
uses: actions/download-artifact@v2
with:
name: godot-template-macos-mono.zip
- name: Download godot-template-windows-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-windows-release-mono.zip
- name: Download godot-template-windows-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-windows-debug-mono.zip
- name: Download godot-template-linux-release artifact
uses: actions/download-artifact@v2
with:
name: godot-template-linux-release-mono.zip
- name: Download godot-template-linux-debug artifact
uses: actions/download-artifact@v2
with:
name: godot-template-linux-debug-mono.zip
- name: Upload artifacts to S3
shell: bash
if: env.AWS_ACCESS_KEY_ID != null
run: |
BRANCH=${GITHUB_REF#refs/heads/}
echo "branch: $BRANCH"
mv godot.windows.editor.x86_64.mono.exe godot-$BRANCH-$GODOT_TAG-mono.exe
mv godot.linuxbsd.editor.x86_64.mono godot-$BRANCH-$GODOT_TAG-mono
zip godot-editor-windows-mono.zip godot-$BRANCH-$GODOT_TAG-mono.exe GodotSharp
zip godot-editor-linux-mono.zip godot-$BRANCH-$GODOT_TAG-mono GodotSharp
aws s3 cp godot-editor-windows-mono.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
aws s3 cp godot-editor-linux-mono.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
aws s3 cp godot-editor-macos-mono.zip s3://spine-godot/$BRANCH/$GODOT_TAG/
echo "$GODOT_VERSION.mono" > version.txt
ls -lah
zip spine-godot-templates-$BRANCH-$GODOT_TAG-mono.zip macos.zip windows_debug_x86_64.exe windows_release_x86_64.exe linux_debug.x86_64 linux_release.x86_64 version.txt
aws s3 cp spine-godot-templates-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/spine-godot-templates-$BRANCH-$GODOT_TAG.tpz

View File

@ -1,5 +1,4 @@
name: Build and Publish Godot 3.5 editor and templates
name: Build spine-godot (Godot 3.5)
on:
push:
paths:
@ -17,7 +16,6 @@ env:
GODOT_VERSION: 3.5.2.stable
jobs:
godot-editor-windows:
runs-on: windows-latest
steps:

4
.gitignore vendored
View File

@ -192,4 +192,6 @@ spine-godot/build/compile_commands.json
spine-flutter/ios/Classes/spine-cpp
spine-flutter/macos/Classes/spine-cpp
spine-flutter/src/spine-cpp
spine-flutter/src/spine-cpp
spine-godot/godot-nuget
spine-godot/godot-spine-csharp

View File

@ -54,6 +54,31 @@
"program": "${workspaceFolder}/godot/bin/godot.macos.editor.dev.arm64",
},
},
{
"type": "cppvsdbg",
"request": "launch",
"name": "debug editor v4 c#",
"program": "godot/bin/godot.windows.editor.dev.x86_64.mono.exe",
"args": [
"-e",
"--path",
"example-v4",
],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build-v4",
"linux": {
"type": "lldb",
"request": "launch",
"name": "debug editor v4",
"program": "${workspaceFolder}/godot/bin/godot.linux.editor.dev.x86_64",
},
"osx": {
"type": "lldb",
"request": "launch",
"name": "debug editor v4",
"program": "${workspaceFolder}/godot/bin/godot.macos.editor.dev.arm64.mono",
},
},
{
"type": "cppvsdbg",
"request": "launch",

View File

@ -4,8 +4,8 @@ set -e
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
pushd "$dir" > /dev/null
if [ ! "$#" -eq 1 ]; then
echo "Usage: ./build-templates.sh <platform>"
if [ "$#" -lt 1 ]; then
echo "Usage: ./build-templates.sh <platform> <mono:true|false>?"
echo
echo "e.g.:"
echo " ./build-templates.sh windows"
@ -14,7 +14,7 @@ if [ ! "$#" -eq 1 ]; then
echo " ./build-templates.sh ios"
echo " ./build-templates.sh android"
echo " ./build-templates.sh web"
echo
echo
exit 1
fi
@ -24,6 +24,28 @@ if [ ! -d ../godot ]; then
fi
platform=${1%/}
mono=false
if [[ $# -eq 2 ]]; then
mono=${2%/}
if [ "$platform" != "windows" ] && [ "$platform" != "linux" ] && [ "$platform" != "macos" ]; then
echo "C# is only supported for Windows, Linux, and macOS"
exit 1
fi
echo "Building Godot template with C# support"
else
echo "Building Godot template without C# support"
fi
mono_module=""
mono_extension=""
if [ $mono == "true" ]; then
mono_module="module_mono_enabled=yes"
mono_extension=".mono"
echo "Building Godot with C# support"
else
echo "Building Godot without C# support"
fi
cpus=2
if [ "$OSTYPE" = "msys" ]; then
@ -38,10 +60,10 @@ pushd ../godot
if [ "$platform" = "windows" ]; then
# --- Windows ---
#generates windows_64_debug.exe and windows_64_release.exe
scons platform=windows tools=no target=template_release custom_modules="../spine_godot" --jobs=$cpus
scons platform=windows tools=no target=template_debug custom_modules="../spine_godot" --jobs=$cpus
cp bin/godot.windows.template_release.x86_64.exe bin/windows_release_x86_64.exe
cp bin/godot.windows.template_debug.x86_64.exe bin/windows_debug_x86_64.exe
scons platform=windows tools=no target=template_release custom_modules="../spine_godot" $mono_module --jobs=$cpus
scons platform=windows tools=no target=template_debug custom_modules="../spine_godot" $mono_module --jobs=$cpus
cp bin/godot.windows.template_release.x86_64$mono_extension.exe bin/windows_release_x86_64.exe
cp bin/godot.windows.template_debug.x86_64$mono_extension.exe bin/windows_debug_x86_64.exe
elif [ "$platform" = "macos" ]; then
# --- macOS ---
@ -51,8 +73,8 @@ elif [ "$platform" = "macos" ]; then
scons platform=macos tools=no target=template_debug arch=x86_64 custom_modules="../spine_godot" --jobs=$cpus
scons platform=macos tools=no target=template_release arch=arm64 custom_modules="../spine_godot" --jobs=$cpus
scons platform=macos tools=no target=template_debug arch=arm64 custom_modules="../spine_godot" --jobs=$cpus
lipo -create bin/godot.macos.template_release.x86_64 bin/godot.macos.template_release.arm64 -output bin/godot.macos.universal
lipo -create bin/godot.macos.template_debug.x86_64 bin/godot.macos.template_debug.arm64 -output bin/godot.macos.debug.universal
lipo -create "bin/godot.macos.template_release.x86_64$mono_extension" "bin/godot.macos.template_release.arm64$mono_extension" -output bin/godot.macos.universal
lipo -create "bin/godot.macos.template_debug.x86_64$mono_extension" "bin/godot.macos.template_debug.arm64$mono_extension" -output bin/godot.macos.debug.universal
strip -S -x bin/godot.macos.universal
pushd bin
@ -60,10 +82,21 @@ elif [ "$platform" = "macos" ]; then
mkdir -p macos_template.app/Contents/MacOS
cp godot.macos.universal macos_template.app/Contents/MacOS/godot_macos_release.universal
cp godot.macos.debug.universal macos_template.app/Contents/MacOS/godot_macos_debug.universal
chmod +x macos_template.app/Contents/MacOS/godot_macos*
chmod +x macos_template.app/Contents/MacOS/godot_macos*
rm -rf macos.zip
zip -q -9 -r macos.zip macos_template.app
popd
elif [ "$platform" = "linux" ]; then
# --- Linux ---
# generates linux_x11_64_release, linux_x11_64_debug
scons platform=linuxbsd tools=no target=template_release bits=64 custom_modules="../spine_godot" --jobs=$cpus
scons platform=linuxbsd tools=no target=template_debug bits=64 custom_modules="../spine_godot" --jobs=$cpus
strip bin/godot.linuxbsd.template_release.x86_64$mono_extension
strip bin/godot.linuxbsd.template_debug.x86_64$mono_extension
chmod a+x bin/godot.linuxbsd.template_release.x86_64$mono_extension
chmod a+x bin/godot.linuxbsd.template_debug.x86_64$mono_extension
cp bin/godot.linuxbsd.template_release.x86_64$mono_extension bin/linux_release.x86_64
cp bin/godot.linuxbsd.template_debug.x86_64$mono_extension bin/linux_debug.x86_64
elif [ "$platform" = "ios" ]; then
# --- iOS --
# generates ios.zip
@ -77,19 +110,19 @@ elif [ "$platform" = "ios" ]; then
lipo -create bin/libgodot.ios.template_release.arm64.simulator.a bin/libgodot.ios.template_release.x86_64.simulator.a -output bin/libgodot.ios.template_release.simulator.a
lipo -create bin/libgodot.ios.template_debug.arm64.simulator.a bin/libgodot.ios.template_debug.x86_64.simulator.a -output bin/libgodot.ios.template_debug.simulator.a
strip -S -x bin/libgodot.ios.template_release.arm64.a
strip -S -x bin/libgodot.ios.template_release.simulator.a
strip -S -x bin/libgodot.ios.template_release.simulator.a
pushd bin
cp -r ../misc/dist/ios_xcode .
cp -r ../misc/dist/ios_xcode .
cp libgodot.ios.template_release.arm64.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
cp libgodot.ios.template_release.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp libgodot.ios.template_release.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
cp libgodot.ios.template_debug.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp libgodot.ios.template_debug.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
rm -rf ios.zip
pushd ios_xcode
zip -q -9 -r ../ios.zip *
popd
popd
popd
elif [ "$platform" = "web" ]; then
# --- WEB ---
# generates webassembly_debug.zip, webassembly_release.zip
@ -109,17 +142,6 @@ elif [ "$platform" = "android" ]; then
chmod a+x gradlew
./gradlew generateGodotTemplates
popd
elif [ "$platform" = "linux" ]; then
# --- Linux ---
# generates linux_x11_64_release, linux_x11_64_debug
scons platform=linuxbsd tools=no target=template_release bits=64 custom_modules="../spine_godot" --jobs=$cpus
scons platform=linuxbsd tools=no target=template_debug bits=64 custom_modules="../spine_godot" --jobs=$cpus
strip bin/godot.linuxbsd.template_release.x86_64
strip bin/godot.linuxbsd.template_debug.x86_64
chmod a+x bin/godot.linuxbsd.template_release.x86_64
chmod a+x bin/godot.linuxbsd.template_debug.x86_64
cp bin/godot.linuxbsd.template_release.x86_64 bin/linux_x11_64_release
cp bin/godot.linuxbsd.template_debug.x86_64 bin/linux_x11_64_debug
else
echo "Unknown platform: $platform"
exit 1

View File

@ -11,47 +11,103 @@ fi
target=""
dev="false"
mono="false"
if [ $# -gt 0 ]; then
if [ $# -gt 1 ]; then
echo "Usage: $0 <mono:true|false>"
exit 1
else
if [ "$1" == "true" ] || [ "$1" == "false" ]; then
mono="$1"
else
echo "Invalid value for the 'mono' argument. It should be either 'true' or 'false'."
exit 1
fi
fi
fi
if [ -f "../godot/custom.py" ]; then
dev="true"
fi
cpus=2
if [ "$OSTYPE" = "msys" ]; then
cpus=$NUMBER_OF_PROCESSORS
elif [[ "$OSTYPE" = "darwin"* ]]; then
cpus=$(sysctl -n hw.logicalcpu)
if [ -f "../godot/custom.py" ]; then
dev="true"
fi
mono_module=""
mono_extension=""
if [ $mono == "true" ]; then
mono_module="module_mono_enabled=yes"
mono_extension=".mono"
echo "Building Godot with C# support"
else
echo "Building Godot without C# support"
fi
dev_extension=""
if [ $dev == "true" ]; then
dev_extension=".dev"
target="$target dev_build=true"
fi
cpus=2
if [ "$OSTYPE" == "msys" ]; then
os="windows"
cpus=$NUMBER_OF_PROCESSORS
target="vsproj=yes livepp=$LIVEPP"
godot_exe="godot.windows.editor$dev_extension.x86_64$mono_extension.exe"
godot_exe_host=$godot_exe
elif [[ "$OSTYPE" == "darwin"* ]]; then
os="macos"
cpus=$(sysctl -n hw.logicalcpu)
godot_exe="godot.macos.editor$dev_extension.x86_64$mono_extension"
godot_exe_arm="godot.macos.editor$dev_extension.arm64$mono_extension"
godot_exe_host=$godot_exe
if [ `uname -m` == "arm64" ]; then
godot_exe_host=$godot_exe_arm
fi
else
os="linux"
cpus=$(grep -c ^processor /proc/cpuinfo)
godot_exe="godot.linuxbsd.editor$dev_extension.x86_64$mono_extension"
godot_exe_host=$godot_exe
fi
echo "CPUS: $cpus"
pushd ../godot
if [ `uname` == 'Darwin' ] && [ $dev = "false" ]; then
scons $target arch=x86_64 compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
scons $target arch=arm64 compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
if [ "$os" == "macos" ] && [ $dev == "false" ]; then
scons $target $mono_module arch=x86_64 compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
scons $target $mono_module arch=arm64 compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
if [ $mono == "true" ]; then
echo "Building C# glue and assemblies."
"./bin/$godot_exe_host" --generate-mono-glue modules/mono/glue
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin --push-nupkgs-local ../godot-spine-csharp
fi
pushd bin
cp -r ../misc/dist/macos_tools.app .
mv macos_tools.app Godot.app
mkdir -p Godot.app/Contents/MacOS
lipo -create godot.macos.editor.arm64 godot.macos.editor.x86_64 -output Godot
lipo -create $godot_exe_arm $godot_exe -output Godot
strip -S -x Godot
cp Godot Godot.app/Contents/MacOS/Godot
chmod +x Godot.app/Contents/MacOS/Godot
if [ $mono == "true" ]; then
cp -r GodotSharp Godot.app/Contents/Resources
fi
popd
else
if [ "$OSTYPE" = "msys" ]; then
target="vsproj=yes livepp=$LIVEPP"
scons $target $mono_module compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
if [ $mono == "true" ]; then
echo "Building C# glue and assemblies."
"./bin/$godot_exe_host" --generate-mono-glue modules/mono/glue
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin --push-nupkgs-local ../godot-nuget
fi
if [ "$dev" = "true" ]; then
target="$target dev_build=true"
fi
scons $target compiledb=yes custom_modules="../spine_godot" opengl3=yes --jobs=$cpus
cp compile_commands.json ../build
if [ -f "bin/godot.linuxbsd.editor.x86_64" ]; then
strip bin/godot.linuxbsd.editor.x86_64
chmod a+x bin/godot.linuxbsd.editor.x86_64
if [ -f "bin/godot.linuxbsd.editor.x86_64$mono_extension" ]; then
strip bin/godot.linuxbsd.editor.x86_64$mono_extension
chmod a+x bin/godot.linuxbsd.editor.x86_64$mono_extension
fi
fi
popd

View File

@ -4,18 +4,36 @@ set -e
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
pushd "$dir" > /dev/null
if [ ! "$#" -eq 2 ]; then
echo "Usage: ./setup.sh <Godot branch or tag> <dev:true|false>"
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
echo "Usage: ./setup.sh <Godot branch or tag> <dev:true|false> <mono:true|false>?"
echo
echo "e.g.:"
echo " ./setup.sh 3.4.4-stable true"
echo " ./setup.sh master false"
echo
echo " ./setup.sh 3.5.2-stable true"
echo " ./setup.sh master false true"
echo
echo "Note: the 'mono' parameter only works for Godot 4.x+!"
exit 1
fi
branch=${1%/}
dev=${2%/}
mono=false
if [[ $# -eq 3 && "$branch" != 3* ]]; then
mono=${3%/}
fi
if [ "$dev" != "true" ] && [ "$dev" != "false" ]; then
echo "Invalid value for the 'dev' argument. It should be either 'true' or 'false'."
exit 1
fi
if [ "$mono" != "true" ] && [ "$mono" != "false" ]; then
echo "Invalid value for the 'mono' argument. It should be either 'true' or 'false'."
exit 1
fi
pushd ..
rm -rf godot
@ -23,6 +41,10 @@ git clone --depth 1 https://github.com/godotengine/godot.git -b $branch
if [ $dev = "true" ]; then
cp -r .idea godot
cp build/custom.py godot
if [ "$mono" = "true" ]; then
echo "" >> godot/custom.py
echo "module_mono_enabled=\"yes\"" >> godot/custom.py
fi
cp ../formatters/.clang-format .
rm -rf example/.import
rm -rf example/.godot

View File

@ -0,0 +1,74 @@
#ifndef SPRITES_DEPTH_NORMALS_PASS_URP_INCLUDED
#define SPRITES_DEPTH_NORMALS_PASS_URP_INCLUDED
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct AttributesSpine
{
float4 positionOS : POSITION;
float3 normalOS : NORMAL;
float4 vertexColor : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VaryingsSpine
{
float3 normalWS : NORMAL;
float4 positionCS : SV_POSITION;
float4 texcoordAndAlpha: TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
VaryingsSpine DepthNormalsVertex(AttributesSpine input)
{
VaryingsSpine output = (VaryingsSpine)0;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
half3 fixedNormal = half3(0, 0, -1);
half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal));
#ifdef _DOUBLE_SIDED_LIGHTING
// unfortunately we have to compute the sign here in the vertex shader
// instead of using VFACE in fragment shader stage.
half3 viewDirWS = UNITY_MATRIX_V[2].xyz;
half faceSign = sign(dot(viewDirWS, normalWS));
normalWS *= faceSign;
#endif
output.normalWS = normalWS;
output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0);
output.texcoordAndAlpha.a = input.vertexColor.a;
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
return output;
}
void DepthNormalsFragment(VaryingsSpine input,
out half4 outNormalWS : SV_Target0
#ifdef _WRITE_RENDERING_LAYERS
, out float4 outRenderingLayers : SV_Target1
#endif
)
{
fixed4 texureColor = tex2D(_MainTex, input.texcoordAndAlpha.xy);
clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff);
float3 normalWS = input.normalWS;
#if defined(_GBUFFER_NORMALS_OCT)
float2 octNormalWS = PackNormalOctQuadEncode(normalWS); // values between [-1, +1], must use fp32 on some platforms.
float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5); // values between [ 0, 1]
half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS); // values between [ 0, 1]
outNormalWS = half4(packedNormalWS, 0.0);
#else
outNormalWS = half4(normalWS, 0.0);
#endif
#ifdef USE_WRITE_RENDERING_LAYERS
uint renderingLayers = GetMeshRenderingLayerBackwardsCompatible();
outRenderingLayers = float4(EncodeMeshRenderingLayer(renderingLayers), 0, 0, 0);
#endif
}
#endif

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 803855a1999ecce4081f5e0fb18c6475
ShaderIncludeImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2,44 +2,87 @@
#define SPRITES_DEPTH_NORMALS_PASS_URP_INCLUDED
#include "Include/Spine-Sprite-Common-URP.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "SpineCoreShaders/SpriteLighting.cginc"
#include "SpineCoreShaders/Spine-Common.cginc"
#include "Spine-Common-URP.hlsl"
struct AttributesSprite
{
float4 positionOS : POSITION;
float3 normalOS : NORMAL;
float4 vertexColor : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
//#include "Include/Spine-Sprite-Common-URP.hlsl"
//#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct VaryingsSprite
{
float4 positionCS : SV_POSITION;
float4 texcoordAndAlpha: TEXCOORD0;
float3 normalWS : TEXCOORD1;
float4 pos : SV_POSITION;
fixed4 vertexColor : COLOR;
float3 texcoord : TEXCOORD0;
#if defined(_NORMALMAP)
half4 normalWorld : TEXCOORD4;
half4 tangentWorld : TEXCOORD5;
half4 binormalWorld : TEXCOORD6;
#else
half3 normalWorld : TEXCOORD4;
#endif
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
VaryingsSprite DepthNormalVertexSprite(AttributesSprite input)
VaryingsSprite DepthNormalsVertexSprite(VertexInput input)
{
VaryingsSprite output = (VaryingsSprite)0;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0);
output.texcoordAndAlpha.a = input.vertexColor.a * _Color.a;
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
output.normalWS = NormalizeNormalPerVertex(input.normalOS);
output.pos = calculateLocalPos(input.vertex);
output.vertexColor = calculateVertexColor(input.color);
output.texcoord = float3(calculateTextureCoord(input.texcoord), 0);
float backFaceSign = 1;
#if defined(FIXED_NORMALS_BACKFACE_RENDERING)
backFaceSign = calculateBackfacingSign(positionWS.xyz);
#endif
half3 normalWS = calculateSpriteWorldNormal(input, -backFaceSign);
output.normalWorld.xyz = normalWS;
#if defined(_NORMALMAP)
output.tangentWorld.xyz = calculateWorldTangent(input.tangent);
output.binormalWorld.xyz = calculateSpriteWorldBinormal(input, output.normalWorld.xyz, output.tangentWorld.xyz, backFaceSign);
#endif
return output;
}
half4 DepthNormalFragmentSprite(VaryingsSprite input) : SV_TARGET
void DepthNormalsFragmentSprite(VaryingsSprite input,
out half4 outNormalWS : SV_Target0
#ifdef _WRITE_RENDERING_LAYERS
, out float4 outRenderingLayers : SV_Target1
#endif
)
{
fixed4 texureColor = tex2D(_MainTex, input.texcoordAndAlpha.xy);
clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff);
return half4(PackNormalOctRectEncode(TransformWorldToViewDir(input.normalWS, true)), 0.0, 0.0);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
fixed4 texureColor = calculateTexturePixel(input.texcoord.xy);
ALPHA_CLIP(texureColor, input.vertexColor)
#if defined(PER_PIXEL_LIGHTING) && defined(_NORMALMAP)
half3 normalWS = calculateNormalFromBumpMap(input.texcoord.xy, input.tangentWorld.xyz, input.binormalWorld.xyz, input.normalWorld.xyz);
#else
half3 normalWS = input.normalWorld.xyz;
#endif
#if defined(_GBUFFER_NORMALS_OCT)
float2 octNormalWS = PackNormalOctQuadEncode(normalWS); // values between [-1, +1], must use fp32 on some platforms.
float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5); // values between [ 0, 1]
half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS); // values between [ 0, 1]
outNormalWS = half4(packedNormalWS, 0.0);
#else
outNormalWS = half4(normalWS, 0.0);
#endif
#ifdef USE_WRITE_RENDERING_LAYERS
uint renderingLayers = GetMeshRenderingLayerBackwardsCompatible();
outRenderingLayers = float4(EncodeMeshRenderingLayer(renderingLayers), 0, 0, 0);
#endif
}
#endif

View File

@ -1,10 +1,7 @@
fileFormatVersion: 2
guid: d056e751c0a21b446bd1120602271812
ShaderImporter:
guid: 5070c54df4a943a438cfe0a199b55657
ShaderIncludeImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -123,7 +123,7 @@
ENDHLSL
}
Pass
Pass
{
Name "DepthOnly"
Tags{"LightMode" = "DepthOnly"}
@ -157,6 +157,40 @@
#include "Include/Spine-DepthOnlyPass-URP.hlsl"
ENDHLSL
}
// This pass is used when drawing to a _CameraNormalsTexture texture
Pass
{
Name "DepthNormals"
Tags{"LightMode" = "DepthNormals"}
ZWrite On
HLSLPROGRAM
#pragma vertex DepthNormalsVertex
#pragma fragment DepthNormalsFragment
// -------------------------------------
// Material Keywords
#pragma shader_feature _ALPHATEST_ON
#pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#define USE_URP
#define fixed4 half4
#define fixed3 half3
#define fixed half
#include "Include/Spine-Input-URP.hlsl"
#include "Include/Spine-DepthNormalsPass-URP.hlsl"
ENDHLSL
}
}
FallBack "Hidden/InternalErrorShader"

View File

@ -248,6 +248,42 @@ Shader "Universal Render Pipeline/Spine/Sprite"
ENDHLSL
}
// This pass is used when drawing to a _CameraNormalsTexture texture
Pass
{
Name "DepthNormals"
Tags{"LightMode" = "DepthNormals"}
ZWrite On
Cull[_Cull]
HLSLPROGRAM
#pragma vertex DepthNormalsVertexSprite
#pragma fragment DepthNormalsFragmentSprite
// -------------------------------------
// Material Keywords
#pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
#pragma shader_feature _NORMALMAP
#pragma shader_feature _ALPHA_CLIP
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#define USE_URP
#define fixed4 half4
#define fixed3 half3
#define fixed half
#include "Include/Spine-Input-Sprite-URP.hlsl"
#include "Include/Spine-Sprite-DepthNormalsPass-URP.hlsl"
ENDHLSL
}
Pass
{
Name "Unlit"

View File

@ -2,7 +2,7 @@
"name": "com.esotericsoftware.spine.urp-shaders",
"displayName": "Spine Universal RP Shaders",
"description": "This plugin provides universal render pipeline (URP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 4.2.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
"version": "4.2.17",
"version": "4.2.18",
"unity": "2019.3",
"author": {
"name": "Esoteric Software",