-
Notifications
You must be signed in to change notification settings - Fork 24
Merge vellottie
#13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Merge vellottie
#13
Changes from 29 commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
def4ff0
fix: licenses
nuzzles b8c83a0
docs: update README
nuzzles 1375b22
docs: authors
nuzzles ce3c007
ci: initial CI
nuzzles b9c439f
refactor: merge vellottie
nuzzles 5df4075
feat: examples
nuzzles 1b4322d
refactor: rename schema `Lottie` to `Animation`
nuzzles c9a3e1c
build: fix copyright headers
nuzzles 86fb77a
fix: wasm compile
nuzzles 7142727
build: ignore example assets
nuzzles 9c0b79b
ci: remove release workflow
nuzzles 47a8a0f
build: switch demo update to push on main
nuzzles 867ca73
build: remove unnecessary items
nuzzles 6409e34
Update .gitignore
nuzzles 15ae080
fix: authors
nuzzles 2682d11
fix: .gitignore
nuzzles b7b5de7
fix: remove trunk
nuzzles 00e32d8
Update .github/workflows/ci.yml
nuzzles 7db7178
fix: authors
nuzzles ee7089d
docs: update badge
nuzzles 9ddcee5
docs: update
nuzzles 6166d6f
docs: update
nuzzles f646342
build: add tiger license
nuzzles 4ace287
Update examples/scenes/Cargo.toml
nuzzles 19c4cc5
feat: remove wgpu badge
nuzzles 0aa52fc
fix: remove RUSTFLAGS
nuzzles 99ecb99
Update examples/with_winit/Cargo.toml
nuzzles a971f1f
docs: remove license
nuzzles e5442a8
docs: update
nuzzles bff269d
Update Cargo.toml
nuzzles 98d33b4
Update Cargo.toml
nuzzles 5437119
docs: update
nuzzles 1c28b1d
fix: newline
nuzzles 446d4cf
build: match text in vello
nuzzles 07fbe42
fix: move tiger to CC-BY dir
nuzzles 4809b9f
feat: google_noto_asset macro
nuzzles 219b546
Update Cargo.toml
nuzzles 36d9937
fix: remove deprecated note
nuzzles 473f118
build: switch logic to f64
nuzzles ca51bd4
refactor: switch to f64
nuzzles 57dd04b
refactor: rename trait to `Tween`
nuzzles a892e5c
refactor: finalize merge comments
nuzzles 78b78cd
fix: skew logic
nuzzles File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| [alias] | ||
| run_wasm = "run --release --package run_wasm --" | ||
| # Other crates use the alias run-wasm, even though crate names should use `_`s not `-`s | ||
| # Allow this to be used | ||
| run-wasm = "run_wasm" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| #!/bin/bash | ||
|
|
||
| # If there are new files with headers that can't match the conditions here, | ||
| # then the files can be ignored by an additional glob argument via the -g flag. | ||
| # For example: | ||
| # -g "!src/special_file.rs" | ||
| # -g "!src/special_directory" | ||
|
|
||
| # Check all the standard Rust source files | ||
| output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Velato Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT$\n\n" --files-without-match --multiline -g "*.rs" .) | ||
|
|
||
| if [ -n "$output" ]; then | ||
| echo -e "The following files lack the correct copyright header:\n" | ||
| echo $output | ||
| echo -e "\n\nPlease add the following header:\n" | ||
| echo "// Copyright $(date +%Y) the Velato Authors" | ||
| echo "// SPDX-License-Identifier: Apache-2.0 OR MIT" | ||
| echo -e "\n... rest of the file ...\n" | ||
| exit 1 | ||
| fi | ||
|
|
||
| echo "All files have correct copyright headers." | ||
| exit 0 | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,171 @@ | ||
| env: | ||
| # We aim to always test with the latest stable Rust toolchain, however we pin to a specific | ||
| # version like 1.70. Note that we only specify MAJOR.MINOR and not PATCH so that bugfixes still | ||
| # come automatically. If the version specified here is no longer the latest stable version, | ||
| # then please feel free to submit a PR that adjusts it along with the potential clippy fixes. | ||
| RUST_STABLE_VER: "1.76" # In quotes because otherwise (e.g.) 1.70 would be interpreted as 1.7 | ||
|
|
||
|
|
||
| # Rationale | ||
| # | ||
| # We don't run clippy with --all-targets because then even --lib and --bins are compiled with | ||
| # dev dependencies enabled, which does not match how they would be compiled by users. | ||
| # A dev dependency might enable a feature of a regular dependency that we need, but testing | ||
| # with --all-targets would not catch that. Thus we split --lib & --bins into a separate step. | ||
|
|
||
| name: CI | ||
|
|
||
| on: | ||
| pull_request: | ||
| merge_group: | ||
|
|
||
| jobs: | ||
| rustfmt: | ||
| runs-on: ubuntu-latest | ||
| name: cargo fmt | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: install stable toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: ${{ env.RUST_STABLE_VER }} | ||
| components: rustfmt | ||
|
|
||
| - name: cargo fmt | ||
| run: cargo fmt --all --check | ||
|
|
||
| - name: install ripgrep | ||
| run: | | ||
| sudo apt update | ||
| sudo apt install ripgrep | ||
|
|
||
| - name: check copyright headers | ||
| run: bash .github/copyright.sh | ||
|
|
||
| test-stable: | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| # We use macos-14 as that is an arm runner. These have the virtgpu support we need | ||
| os: [windows-latest, macos-14, ubuntu-latest] | ||
| include: | ||
| - os: ubuntu-latest | ||
| gpu: 'yes' | ||
| - os: macos-14 | ||
| gpu: 'yes' | ||
| - os: windows-latest | ||
| # TODO: The windows runners theoretically have CPU fallback for GPUs, but | ||
| # this failed in initial testing | ||
| gpu: 'no' | ||
| name: cargo clippy + test | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: install stable toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: ${{ env.RUST_STABLE_VER }} | ||
| components: clippy | ||
|
|
||
| - name: restore cache | ||
| uses: Swatinem/rust-cache@v2 | ||
|
|
||
| - name: Install native dependencies | ||
| if: matrix.os == 'ubuntu-latest' | ||
| run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev | ||
|
|
||
| # Adapted from https://github.com/bevyengine/bevy/blob/b446374392adc70aceb92621b080d1a6cf7a7392/.github/workflows/validation-jobs.yml#L74-L79 | ||
| - name: install xvfb, llvmpipe and lavapipe | ||
| if: matrix.os == 'ubuntu-latest' | ||
| # https://launchpad.net/~kisak/+archive/ubuntu/turtle | ||
| run: | | ||
| sudo apt-get update -y -qq | ||
| sudo add-apt-repository ppa:kisak/turtle -y | ||
| sudo apt-get update | ||
| sudo apt install -y xvfb libegl1-mesa libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers | ||
|
|
||
| - name: cargo clippy (no default features) | ||
| run: cargo clippy --workspace --lib --bins --no-default-features -- -D warnings | ||
|
|
||
| - name: cargo clippy (no default features) (auxiliary) | ||
| run: cargo clippy --workspace --tests --benches --examples --no-default-features -- -D warnings | ||
|
|
||
| - name: cargo clippy (default features) | ||
| run: cargo clippy --workspace --lib --bins -- -D warnings | ||
|
|
||
| - name: cargo clippy (default features) (auxiliary) | ||
| run: cargo clippy --workspace --tests --benches --examples -- -D warnings | ||
|
|
||
| - name: cargo clippy (all features) | ||
| run: cargo clippy --workspace --lib --bins --all-features -- -D warnings | ||
|
|
||
| - name: cargo clippy (all features) (auxiliary) | ||
| run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings | ||
|
|
||
| - name: cargo test | ||
| run: cargo test --workspace --all-features | ||
| env: | ||
| VELLO_CI_GPU_SUPPORT: ${{ matrix.gpu }} | ||
|
|
||
| clippy-stable-wasm: | ||
| runs-on: ubuntu-latest | ||
| name: cargo test (wasm32) | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: restore cache | ||
| uses: Swatinem/rust-cache@v2 | ||
|
|
||
| - name: install stable toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: ${{ env.RUST_STABLE_VER }} | ||
| targets: wasm32-unknown-unknown | ||
| components: clippy | ||
|
|
||
| - name: cargo clippy (wasm) | ||
| run: cargo clippy --all-targets --target wasm32-unknown-unknown --workspace -- -D warnings | ||
|
|
||
| android-stable-check: | ||
| runs-on: ubuntu-latest | ||
| name: cargo check (aarch64-android) | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: restore cache | ||
| uses: Swatinem/rust-cache@v2 | ||
|
|
||
| - name: install stable toolchain | ||
| uses: dtolnay/rust-toolchain@master | ||
| with: | ||
| toolchain: ${{ env.RUST_STABLE_VER }} | ||
| targets: aarch64-linux-android | ||
|
|
||
| - name: install cargo apk | ||
| run: cargo install cargo-apk | ||
|
|
||
| - name: cargo apk check (android) | ||
| run: cargo apk check -p with_winit --lib | ||
| env: | ||
| # This is a bit of a hack, but cargo apk doesn't seem to allow customising this | ||
| RUSTFLAGS: '-D warnings' | ||
|
|
||
| docs: | ||
| name: cargo doc | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| os: [windows-latest, macos-latest, ubuntu-latest] | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: install nightly toolchain | ||
| uses: dtolnay/rust-toolchain@nightly | ||
|
|
||
| - name: restore cache | ||
| uses: Swatinem/rust-cache@v2 | ||
|
|
||
| # We test documentation using nightly to match docs.rs. This prevents potential breakages | ||
| - name: cargo doc | ||
| run: cargo doc --workspace --all-features --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| name: Web Demo Update | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| jobs: | ||
| release-web: | ||
| permissions: | ||
| contents: read | ||
| pages: write | ||
| id-token: write | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install | Rust | ||
| uses: dtolnay/rust-toolchain@stable | ||
| with: | ||
| targets: wasm32-unknown-unknown | ||
|
|
||
| - name: Install | WASM Bindgen | ||
| uses: jetli/wasm-bindgen-action@v0.2.0 | ||
| with: | ||
| version: 'latest' | ||
|
|
||
| - name: Build | WASM | ||
| run: cargo build -p with_winit --bin with_winit_bin --release --target wasm32-unknown-unknown | ||
|
|
||
| - name: Package | WASM | ||
| run: | | ||
| mkdir public | ||
| wasm-bindgen --target web --out-dir public target/wasm32-unknown-unknown/release/with_winit_bin.wasm --no-typescript | ||
| cat << EOF > public/index.html | ||
| <html> | ||
| <title>Velato Web Demo</title> | ||
| <meta content=no-cache http-equiv=Cache-control> | ||
| <meta content=-1 http-equiv=Expires> | ||
| <script type=module>import initSync from"/velato/with_winit_bin.js";initSync(`/velato/with_winit_bin_bg.wasm`);</script> | ||
| <link as=fetch crossorigin href=/velato/with_winit_bin_bg.wasm rel=preload type=application/wasm> | ||
| <link crossorigin href=/velato/with_winit_bin.js rel=modulepreload> | ||
| </head> | ||
| <body> | ||
| <style> | ||
| body { | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
| </style> | ||
| </body> | ||
| </html> | ||
| EOF | ||
|
|
||
| - name: Setup Pages | ||
| uses: actions/configure-pages@v4 | ||
|
|
||
| - name: Upload artifact | ||
| uses: actions/upload-pages-artifact@v3 | ||
| with: | ||
| path: './public' | ||
|
|
||
| - name: Deploy to GitHub Pages | ||
| id: deployment | ||
| uses: actions/deploy-pages@v4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,13 @@ | ||
| /target | ||
| # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries | ||
| # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html | ||
| Cargo.lock | ||
|
nuzzles marked this conversation as resolved.
|
||
|
|
||
| assets/* | ||
| # Don't commit example downloads | ||
| examples/assets/downloads/* | ||
|
|
||
| # Generated by Cargo | ||
| # will have compiled files and executables | ||
| /target | ||
|
|
||
| # Some people have Apple | ||
| .DS_Store | ||
|
nuzzles marked this conversation as resolved.
Outdated
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1,36 @@ | ||
| [workspace] | ||
| resolver = "2" | ||
| members = ["demo"] | ||
| members = ["examples/with_winit", "examples/run_wasm", "examples/scenes"] | ||
|
|
||
| [workspace.package] | ||
| edition = "2021" | ||
| version = "0.0.1" | ||
| license = "MIT OR Apache-2.0" | ||
| version = "0.1.0" | ||
| license = "Apache-2.0 OR MIT" | ||
| repository = "https://github.com/linebender/velato" | ||
|
|
||
|
nuzzles marked this conversation as resolved.
Outdated
|
||
| [package] | ||
| name = "velato" | ||
| description = "Lottie renderer built on vello." | ||
| description = "A Lottie integration for vello." | ||
| categories = ["rendering", "graphics"] | ||
| keywords = ["2d", "vector-graphics", "animation", "lottie"] | ||
|
|
||
| keywords = ["2d", "vector-graphics", "vello", "animation", "lottie"] | ||
| version.workspace = true | ||
| license.workspace = true | ||
| edition.workspace = true | ||
| repository.workspace = true | ||
|
|
||
| [workspace.dependencies] | ||
| vello = { git = "https://github.com/linebender/vello", rev = "b0303ccf98df15a8b196272720d364a56f7304ba" } | ||
|
|
||
| # Update the README badges to match wgpu and vello version! | ||
|
nuzzles marked this conversation as resolved.
Outdated
|
||
| vello = "0.1" | ||
|
nuzzles marked this conversation as resolved.
Outdated
nuzzles marked this conversation as resolved.
Outdated
|
||
|
|
||
| [dependencies] | ||
| vello = { workspace = true } | ||
| bodymovin = { git = "https://github.com/vectorgameexperts/bodymovin-rs" } | ||
| keyframe = "1" | ||
| once_cell = "1" | ||
|
|
||
| # For the parser | ||
| serde = { version = "1.0", features = ["derive"] } | ||
| serde_json = "1.0" | ||
| serde_repr = "0.1" | ||
|
|
||
| [target.'cfg(target_arch = "wasm32")'.dev-dependencies] | ||
| wasm-bindgen-test = "0.3" | ||
|
nuzzles marked this conversation as resolved.
Outdated
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.