Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
f77ab3f
Add native texture pipeline for rlottie plugin
gindemit Sep 17, 2025
efa1e82
Guard OpenGL path from Apple builds
gindemit Sep 17, 2025
c85d70e
Fix per-instance texture management and Android BGRA handling
gindemit Sep 17, 2025
52218d0
Implement asynchronous scheduling and profiler support (#56)
gindemit Sep 19, 2025
7fe4825
Enable Unity PluginAPI support in CI builds (#57)
gindemit Sep 19, 2025
8358032
Fix Unity plugin API usage and rename exports (#58)
gindemit Sep 19, 2025
4150b73
Fix Unity interface macro availability in header (#59)
gindemit Sep 19, 2025
55d215e
Improve concurrent render scheduling and uploads (#60)
gindemit Sep 19, 2025
1dc837f
~ Windows native libraries. And compilation fix in LottieAnimation
gindemit Sep 20, 2025
918abbb
~ Added header file for Unity native plugins API for 2022.3.48f1 vers…
gindemit Sep 21, 2025
3e9c4c6
Fix Lottie disposal and prevent native array leaks (#61)
gindemit Sep 21, 2025
93b2547
Merge branch 'codex/remove-texture.apply-and-move-updates-to-native' …
gindemit Sep 21, 2025
8ad9ad8
~ Updated the project to the 2022.3.62f1 version.
gindemit Sep 21, 2025
d9468f6
Merge remote-tracking branch 'remotes/origin/dev' into codex/remove-t…
gindemit Sep 21, 2025
2f68c7e
Merge branch 'dev' into codex/remove-texture.apply-and-move-updates-t…
gindemit Sep 21, 2025
de12028
Add Direct3D 12 backend to Unity rlottie plugin (#62)
gindemit Sep 21, 2025
a46cba0
~ Refactor CMakeLists.txt for improved readability and organization.
gindemit Sep 21, 2025
98998a6
~ Refactor GPU header inclusion for Windows platform in LottiePlugin.cpp
gindemit Sep 21, 2025
6a75f3f
~ Remove unused UnityGfxDeviceEventType enum and update event type ch…
gindemit Sep 21, 2025
4ece330
~ Update paths for Linux plugin artifacts in build workflow
gindemit Sep 21, 2025
8c53a3b
~ Update path for Linux plugin artifacts in build workflow
gindemit Sep 21, 2025
be49579
[skip ci] New native libraries version: 0.5.0-dev.161
gindemit Sep 21, 2025
9a56856
Polish D3D12 upload helpers (#63)
gindemit Sep 21, 2025
629d518
~ Trying to fix the #ifdef issues
gindemit Sep 21, 2025
1a7a08d
~ The Unity plugin api header files are available
gindemit Sep 21, 2025
cc2ed3e
~ Added include directories for the unity plugins headers.
gindemit Sep 21, 2025
8851ec5
~ Trying to fix the native build
gindemit Sep 21, 2025
703fbe9
Add fallback D3D12 command list path (#68)
gindemit Nov 22, 2025
1d3b0e6
~ To trigger the build
gindemit Nov 22, 2025
c44c37f
Merge branch 'codex/remove-texture.apply-and-move-updates-to-native' …
gindemit Nov 22, 2025
695fff1
~ Updated the workflow file.
gindemit Nov 22, 2025
dbcb479
~ To trigger the build
gindemit Nov 22, 2025
4de8e60
~ Checking the device for initialization.
gindemit Nov 23, 2025
d4d96ae
~ Added native logs
gindemit Nov 23, 2025
e49cc93
~ Fixes for creating render buffer in DX12
gindemit Nov 23, 2025
d1e4bf9
~ Removed LottieAnimationsAtlas.cs
gindemit Nov 23, 2025
051b40b
~ Ability to change the log level from C# and Unity inspector.
gindemit Nov 23, 2025
2a8607d
~ Got rid of the old logger functionality.
gindemit Nov 23, 2025
080f514
~ Got rid of the lottie_animation_wrapper* gBoundAnimation = nullptr;…
gindemit Nov 23, 2025
268e2ea
~ Ability to change the global logger level
gindemit Nov 23, 2025
ef53c6d
~ Fixed the log formatted strings.
gindemit Nov 23, 2025
0a4eb59
~ Added a monobeh to change the global logger level setting. Updates …
gindemit Nov 23, 2025
398fc14
~ Attempt to fix the Linux build.
gindemit Nov 23, 2025
151bd47
~ Attempt to fix Linux build.
gindemit Nov 23, 2025
e7341d9
~ Trying to fix webgl build
gindemit Nov 23, 2025
85c46d6
~ Attempt to fix WebGL build
gindemit Nov 23, 2025
0605717
[skip ci] New native libraries version: 0.5.0-dev.174
gindemit Nov 23, 2025
c4ddbd0
~ Added Vulkan support.
gindemit Nov 25, 2025
ec59367
[skip ci] New native libraries version: 0.5.0-dev.175
gindemit Nov 25, 2025
a588e44
~ Trying to fix Vulkan rendering problems.
gindemit Nov 25, 2025
531681c
[skip ci] New native libraries version: 0.5.0-dev.176
gindemit Nov 25, 2025
4fc31e9
~ Added OpenGLCore support on windows.
gindemit Nov 25, 2025
3221865
~ Attempt to fix compilation on windows.
gindemit Nov 25, 2025
f35d71a
[skip ci] New native libraries version: 0.5.0-dev.178
gindemit Nov 25, 2025
6a596d7
~ Trying to fix the OpenGLCore rendering.
gindemit Nov 25, 2025
282260f
[skip ci] New native libraries version: 0.5.0-dev.179
gindemit Nov 25, 2025
99e2345
~ Fixing the OpenGlCore render freeze on windows.
gindemit Nov 25, 2025
ea7d475
[skip ci] New native libraries version: 0.5.0-dev.180
gindemit Nov 25, 2025
10dd278
~ Added logging
gindemit Nov 25, 2025
7cb839d
[skip ci] New native libraries version: 0.5.0-dev.181
gindemit Nov 25, 2025
7888e75
~ Trying to fix the OpenGLCore render problems.
gindemit Nov 25, 2025
764576d
[skip ci] New native libraries version: 0.5.0-dev.182
gindemit Nov 25, 2025
83e4ed0
~ Update global log level to Info for improved debugging verbosity
gindemit Nov 30, 2025
3e76f4a
[skip ci] New native libraries version: 0.5.0-dev.183
gindemit Nov 30, 2025
10189d7
Revert "~ Update global log level to Info for improved debugging verb…
gindemit Nov 30, 2025
5824b39
[skip ci] New native libraries version: 0.5.0-dev.184
gindemit Nov 30, 2025
8c42ee0
# Update global log level to Info for improved debugging verbosity an…
gindemit Nov 30, 2025
27950c8
[skip ci] New native libraries version: 0.5.0-dev.185
gindemit Nov 30, 2025
0c1f0d7
# Enhance OpenGL support for Android and Windows by detecting extensi…
gindemit Nov 30, 2025
caed7fa
# Define GL_BGRA as an alias to GL_BGRA_EXT for consistency in OpenGL…
gindemit Nov 30, 2025
872dfeb
[skip ci] New native libraries version: 0.5.0-dev.187
gindemit Nov 30, 2025
a81f83f
# Refactor texture format handling for OpenGL ES and desktop OpenGL
gindemit Nov 30, 2025
755eb60
[skip ci] New native libraries version: 0.5.0-dev.188
gindemit Nov 30, 2025
d17c122
# Enhance logging for Android platform in Lottie plugin
gindemit Nov 30, 2025
a62bfb2
# Move Android logging includes to the top of the file for better org…
gindemit Nov 30, 2025
0461b49
[skip ci] New native libraries version: 0.5.0-dev.190
gindemit Nov 30, 2025
7d17b09
# Add Metal graphics support and enhance logging in Lottie plugin
gindemit Dec 1, 2025
6473d46
[skip ci] New native libraries version: 0.5.0-dev.191
gindemit Dec 1, 2025
4813965
# Update texture handling for non-WebGL platforms
gindemit Dec 1, 2025
d91f1e7
# Update Emscripten version to 3.1.8 in build workflow
gindemit Dec 1, 2025
7adcd15
# Add lottie_render_try_get_future_result function for synchronous re…
gindemit Dec 1, 2025
369cfb0
# Update logging support to be conditional for non-WebGL builds
gindemit Dec 1, 2025
104e9e2
~ Update WebGL plugin binaries for RLottie
gindemit Dec 1, 2025
e9609cf
~ Update package versions and settings for improved compatibility
gindemit Dec 1, 2025
b7aca6f
# Disable threading support for WebGL builds in CMake configuration
gindemit Dec 1, 2025
3b56987
# Enhance WebGL logging and add BGRA to RGBA conversion for rendering
gindemit Dec 1, 2025
6e320cf
~ Update WebGL plugin binaries for RLottie
gindemit Dec 1, 2025
5fbf1e7
# Update texture format handling for WebGL compatibility
gindemit Dec 1, 2025
1052cc4
[skip ci] New native libraries version: 0.5.0-dev.192
gindemit Dec 1, 2025
afd7f4d
~ Removed unused native library
gindemit Dec 1, 2025
873d7c5
# Update Lottie rendering functions to include optional BGRA to RGBA …
gindemit Dec 1, 2025
31b8373
# Add BGRA to RGBA shader for texture processing
gindemit Dec 1, 2025
edaf16f
# Implement BGRA to RGBA conversion for WebGL rendering
gindemit Dec 1, 2025
061df50
~ Add Shaders.meta file for LottiePlugin runtime assets
gindemit Dec 1, 2025
b724e8d
[skip ci] New native libraries version: 0.5.0-dev.193
gindemit Dec 1, 2025
1e45b07
# Refactor LottieAnimation class to improve platform-specific texture…
gindemit Dec 1, 2025
b61f5d8
Implement lazy initialization for graphics device and register event …
konstantingindemit-homa Dec 4, 2025
4eb0965
Fix extern "C" declaration for graphics device event callback in Lott…
konstantingindemit-homa Dec 4, 2025
97ffcdf
[skip ci] New native libraries version: 0.5.0-dev.195
gindemit Dec 4, 2025
91b29fa
Add detailed logging for texture creation and plugin loading in Lotti…
konstantingindemit-homa Dec 4, 2025
457a933
[skip ci] New native libraries version: 0.5.0-dev.196
gindemit Dec 4, 2025
921b8ac
Add iOS static library registration helpers for Unity plugin
konstantingindemit-homa Dec 4, 2025
119756b
Implement iOS plugin registration in LottiePlugin for automatic loading
konstantingindemit-homa Dec 4, 2025
755f6c4
[skip ci] New native libraries version: 0.5.0-dev.197
gindemit Dec 4, 2025
15db85f
Refactor logging into dedicated module (#69)
gindemit Dec 7, 2025
a178f82
Add OpenGL, Vulkan, and texture management backends for Lottie animat…
konstantingindemit-homa Dec 7, 2025
436dbdc
Refactor UnityIntegration to ensure platform headers are included bef…
konstantingindemit-homa Dec 7, 2025
1b44f09
Refactor function declarations for consistency in UnityExports.cpp
konstantingindemit-homa Dec 7, 2025
4e8c8b5
[skip ci] New native libraries version: 0.5.0-dev.202
gindemit Dec 7, 2025
86f6248
Improve texture management in Metal backend by releasing retained tex…
konstantingindemit-homa Dec 10, 2025
a54b924
[skip ci] New native libraries version: 0.5.0-dev.203
gindemit Dec 10, 2025
eab15e2
Refactor Metal device acquisition logic to defer initialization until…
konstantingindemit-homa Dec 10, 2025
a8bd4cb
[skip ci] New native libraries version: 0.5.0-dev.204
gindemit Dec 10, 2025
24b3534
Implement EndUnityCommandEncoder to ensure safe texture access before…
konstantingindemit-homa Dec 10, 2025
4e9f904
[skip ci] New native libraries version: 0.5.0-dev.205
gindemit Dec 10, 2025
aecf019
Enhance texture upload process by implementing command buffer synchro…
konstantingindemit-homa Dec 10, 2025
852c2c6
Refactor texture storage mode handling for improved synchronization o…
konstantingindemit-homa Dec 10, 2025
2fe49eb
[skip ci] New native libraries version: 0.5.0-dev.206
gindemit Dec 10, 2025
3ba8ca7
Improve texture upload process by adding a staging buffer for pixel d…
konstantingindemit-homa Dec 10, 2025
1abb601
[skip ci] New native libraries version: 0.5.0-dev.207
gindemit Dec 10, 2025
5ebf5e1
Refactor texture upload process to use replaceRegion for direct updat…
konstantingindemit-homa Dec 15, 2025
0b8f0ed
[skip ci] New native libraries version: 0.5.0-dev.208
gindemit Dec 15, 2025
c14f64c
Merge branch 'codex/remove-texture.apply-and-move-updates-to-native' …
gindemit Jan 8, 2026
342d15f
# Enhance AnimatedButton and AnimatedImage to support loading animati…
gindemit Jan 17, 2026
72b78a1
# Update LottieAnimation loading to include CreateOptions for better …
gindemit Jan 17, 2026
5e2125e
~ Refactor code structure for improved readability and maintainability.
gindemit Jan 17, 2026
39af78c
~ Update Unity version badge in README.md for accuracy.
gindemit Jan 17, 2026
8fdac01
[skip ci] New native libraries version: 0.5.0-dev.209
gindemit Jan 17, 2026
bc16522
~ Update resource path handling in Lottie animation loading methods.
gindemit Jan 17, 2026
0054033
~ Simplified the sample
gindemit Jan 17, 2026
29ea65f
Merge branch 'codex/remove-texture.apply-and-move-updates-to-native' …
gindemit Jan 17, 2026
bc54a17
~ To trigger the pipeline
gindemit Jan 17, 2026
1da16b2
[skip ci] New native libraries version: 0.5.0-dev.210
gindemit Jan 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 28 additions & 21 deletions .github/workflows/build_native_libraries.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ name: Build and Test

on:
push:
branches: [dev]
branches:
- dev
- codex/remove-texture.apply-and-move-updates-to-native
paths:
- 'dependency/**'
- 'projects/**'
- 'src/**'
pull_request:
branches: [dev]
branches:
- dev
- codex/remove-texture.apply-and-move-updates-to-native
paths:
- 'dependency/**'
- 'projects/**'
Expand All @@ -26,8 +30,8 @@ jobs:
- name: Build
run: |
cd projects/CMake
cmake -S . -B ./build_x86 -A Win32 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
cmake -S . -B ./build_x86_64 -A x64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
cmake -S . -B ./build_x86 -A Win32 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="${{ github.workspace }}/dependency/unity-pluginapi"
cmake -S . -B ./build_x86_64 -A x64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="${{ github.workspace }}/dependency/unity-pluginapi"
cmake --build ./build_x86 --config Release
cmake --build ./build_x86_64 --config Release

Expand Down Expand Up @@ -100,15 +104,15 @@ jobs:
cd projects/CMake

# 1) Build universal (optional, kept because it’s already there)
cmake -S . -B ./buildOSX -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmake -S . -B ./buildOSX -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="$GITHUB_WORKSPACE/dependency/unity-pluginapi"
cmake --build ./buildOSX --config Release

# 2) Build arm64 only
cmake -S . -B ./buildOSX_arm64 -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES=arm64
cmake -S . -B ./buildOSX_arm64 -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES=arm64 -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="$GITHUB_WORKSPACE/dependency/unity-pluginapi"
cmake --build ./buildOSX_arm64 --config Release

# 3) Build x86_64 only
cmake -S . -B ./buildOSX_x86_64 -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES=x86_64
cmake -S . -B ./buildOSX_x86_64 -G Xcode -DRLOTTIE_OSX=1 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="$GITHUB_WORKSPACE/dependency/unity-pluginapi"
cmake --build ./buildOSX_x86_64 --config Release

# 4) Find actual outputs produced by Xcode/CMake
Expand Down Expand Up @@ -166,7 +170,7 @@ jobs:
- name: Build
run: |
cd projects/CMake
cmake -S . -B ./buildIOS -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../dependency/cmake-ios-toolchain/ios.toolchain.cmake -DPLATFORM=OS64 -DRLOTTIE_IOS=1
cmake -S . -B ./buildIOS -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../dependency/cmake-ios-toolchain/ios.toolchain.cmake -DPLATFORM=OS64 -DRLOTTIE_IOS=1 -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="$GITHUB_WORKSPACE/dependency/unity-pluginapi"
cmake --build ./buildIOS --config Release --target LottiePlugin
brew install tree
tree ../../out
Expand Down Expand Up @@ -203,7 +207,9 @@ jobs:
-DCMAKE_TOOLCHAIN_FILE=../../dependency/cmake-ios-toolchain/ios.toolchain.cmake \
-DPLATFORM=SIMULATOR64 \
-DARCHS=x86_64 \
-DRLOTTIE_IOS=1
-DRLOTTIE_IOS=1 \
-DUSE_UNITY_PLUGINAPI=ON \
-DUNITY_PLUGINAPI_DIR="$GITHUB_WORKSPACE/dependency/unity-pluginapi"
cmake --build ./buildIOSSim_x64 --config Release --target LottiePlugin
brew install tree
tree ../../out || true
Expand All @@ -225,22 +231,23 @@ jobs:
with:
submodules: recursive

- name: Install CMake
run: sudo apt-get install cmake
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install -y cmake build-essential mesa-common-dev libgl1-mesa-dev tree

- name: Build
run: |
cd projects/CMake
cmake -S . -B ./buildLinux -G "Unix Makefiles" -DRLOTTIE_LINUX=1
cmake -S . -B ./buildLinux -G "Unix Makefiles" -DRLOTTIE_LINUX=1 -DCMAKE_BUILD_TYPE=Release -DUSE_UNITY_PLUGINAPI=ON -DUNITY_PLUGINAPI_DIR="${GITHUB_WORKSPACE}/dependency/unity-pluginapi"
cmake --build ./buildLinux --config Release
tree ../../out
tree ../../out || true

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: LottiePluginLinuxArtifacts
path: |
out/Plugins/Linux/x86_64/libLottiePlugin.so
path: out/Release/Plugins/Linux/x86_64/

build_webgl:
runs-on: ubuntu-latest
Expand All @@ -254,12 +261,12 @@ jobs:
run: |
sed -i '/add_subdirectory[[:space:]]*(example)/d' dependency/rlottie/CMakeLists.txt

- name: Install Emscripten 3.1.39
- name: Install Emscripten 3.1.8
run: |
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install 3.1.39
./emsdk activate 3.1.39
./emsdk install 3.1.8
./emsdk activate 3.1.8
source ./emsdk_env.sh
emcc -v || true

Expand Down Expand Up @@ -401,7 +408,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: LottiePluginLinuxArtifacts
path: out/Plugins/Linux
path: out/Plugins/Linux/x86_64

- name: Download artifacts webgl
uses: actions/download-artifact@v4
Expand All @@ -412,7 +419,7 @@ jobs:
- name: Commit and push native libraries
env:
MY_SECRET: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
TARGET_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || (github.ref_name == 'dev' && 'development' || github.ref_name) }}
TARGET_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref_name }}
TARGET_REPOSITORY: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }}
run: |
cp -f out/Plugins/Windows/x86/LottiePlugin.dll unity/RLottieUnity/Assets/LottiePlugin/Plugins/Windows/x86/LottiePlugin.dll
Expand All @@ -428,7 +435,7 @@ jobs:
mkdir -p unity/RLottieUnity/Assets/LottiePlugin/Plugins/iOS/x86_64
cp -f out/Plugins/iOS/x86_64/libLottiePlugin.a unity/RLottieUnity/Assets/LottiePlugin/Plugins/iOS/x86_64/libLottiePlugin.a
cp -f out/Plugins/iOS/x86_64/librlottie.a unity/RLottieUnity/Assets/LottiePlugin/Plugins/iOS/x86_64/librlottie.a
cp -f out/Plugins/Linux/libLottiePlugin.so unity/RLottieUnity/Assets/LottiePlugin/Plugins/Linux/x86_64/libLottiePlugin.so
cp -f out/Plugins/Linux/x86_64/libLottiePlugin.so unity/RLottieUnity/Assets/LottiePlugin/Plugins/Linux/x86_64/libLottiePlugin.so
mkdir -p unity/RLottieUnity/Assets/LottiePlugin/Plugins/WebGL
cp -f out/Plugins/WebGL/libLottiePlugin.a unity/RLottieUnity/Assets/LottiePlugin/Plugins/WebGL/libLottiePlugin.a
cp -f out/Plugins/WebGL/librlottie.a unity/RLottieUnity/Assets/LottiePlugin/Plugins/WebGL/librlottie.a
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Unity Lottie Animation Plugin
![GitHub release](https://img.shields.io/github/release/gindemit/unity-rlottie.svg)
![Unity version](https://img.shields.io/badge/unity-2019.4%2B-green.svg)
![Unity version](https://img.shields.io/badge/unity-2022.3+-green.svg)
![License](https://img.shields.io/github/license/gindemit/unity-rlottie.svg)

Welcome to the **Unity Lottie Animation** plugin! This Unity library enables you to play Lottie animations as Texture2D in your Unity projects. It's a powerful and easy-to-use solution that leverages Samsung's [rlottie](https://github.com/Samsung/rlottie) library to bring smooth Lottie animations to your games and applications.
Expand Down
Loading