-
Notifications
You must be signed in to change notification settings - Fork 22
Add initial code from Vello. #1
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
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit
Hold shift + click to select a range
c389032
build: initial commit
nuzzles 49e4894
Update Cargo.toml
nuzzles c5153a8
Update rustfmt.toml
nuzzles 25eb0e0
feat: remove dependabot
nuzzles c1fc370
refactor: fmt
nuzzles 49e85ad
fix: copyright notice
nuzzles c7b4754
feat: cargo release
nuzzles d7946b6
docs: add warning
nuzzles 712ec21
feat: publish on tags
nuzzles db6af54
docs: update badges
nuzzles 05ac08a
build: pin versions
nuzzles 670d29d
fix: wasm demo
nuzzles 87e35d4
ci: pages release
nuzzles 98491aa
build: initial author list
nuzzles d6ad412
build: badges
nuzzles 393f974
refactor: imports_granularity
nuzzles b12f9b3
Update AUTHORS
nuzzles 810e0eb
Update Cargo.toml
nuzzles 0bd330b
Update Cargo.toml
nuzzles a9673b0
Update .github/copyright.sh
nuzzles e2a8814
Update .github/copyright.sh
nuzzles e8a3f7e
Update .github/workflows/pages-release.yml
nuzzles 691abc6
Update examples/run_wasm/src/main.rs
nuzzles 253960a
build: ignore example assets
nuzzles 4440ff4
refactor: remove CI
nuzzles c61c739
build: release on latest main push instead
nuzzles 63ac057
fix: .gitignore
nuzzles b176f73
fix: remove trunk
nuzzles c6911ad
docs: update the badge
nuzzles 139febd
docs: update authors
nuzzles 28f258d
docs: update title
nuzzles b7f3d07
Update examples/scenes/Cargo.toml
nuzzles b11b3ec
fix: pin to 0.19.3
nuzzles 1d4c9eb
docs: update
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,37 @@ | ||
| #!/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 Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT$\n\n" --files-without-match --multiline -g "*.rs" -g "!{shader,src/cpu_shader}" -g "!integrations/vello_svg/src/geom.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 Vello Authors" | ||
| echo "// SPDX-License-Identifier: Apache-2.0 OR MIT" | ||
| echo -e "\n... rest of the file ...\n" | ||
| exit 1 | ||
| fi | ||
|
|
||
| # Check all the shaders, both WGSL and CPU shaders in Rust, as they also have Unlicense | ||
| output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT OR Unlicense$\n\n" --files-without-match --multiline -g "{shader,src/cpu_shader}/**/*.{rs,wgsl}" .) | ||
|
|
||
| if [ -n "$output" ]; then | ||
| echo -e "The following shader files lack the correct copyright header:\n" | ||
| echo $output | ||
| echo -e "\n\nPlease add the following header:\n" | ||
| echo "// Copyright $(date +%Y) the Vello Authors" | ||
| echo "// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense" | ||
| 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,11 @@ | ||
| version: 2 | ||
| updates: | ||
| - package-ecosystem: "github-actions" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "weekly" | ||
|
|
||
| - package-ecosystem: "cargo" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "weekly" | ||
nuzzles marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
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,172 @@ | ||
| 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 | ||
|
|
||
| # At the time of writing, we don't have any tests. Nevertheless, it's better to still run this | ||
| - 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,30 @@ | ||
| # 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 | ||
|
|
||
| # Generated by Cargo | ||
| # will have compiled files and executables | ||
| target/ | ||
|
|
||
| # Generated by Trunk | ||
| dist/ | ||
|
|
||
| # These are backup files generated by rustfmt | ||
| **/*.rs.bk | ||
|
|
||
| # Some people use VSCode | ||
| /.vscode/ | ||
|
|
||
| # Some people use IntelliJ with Rust | ||
| /.idea/ | ||
| *.iml | ||
|
|
||
| # Some people use pre-commit | ||
| .pre-commit-config.yaml | ||
| .pre-commit-config.yml | ||
|
|
||
| # Some people have Apple | ||
| .DS_Store | ||
|
|
||
| # Generated on wasm-pack failure | ||
| **/unsupported.js |
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,36 @@ | ||
| [workspace] | ||
| resolver = "2" | ||
| members = ["examples/with_winit", "examples/run_wasm", "examples/scenes"] | ||
|
|
||
| [workspace.package] | ||
| edition = "2021" | ||
| version = "0.1.0" | ||
| license = "MIT OR Apache-2.0 AND MPL-2" | ||
nuzzles marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| repository = "https://github.com/linebender/vello_svg" | ||
|
|
||
| [workspace.dependencies] | ||
| vello = "0.1" | ||
|
|
||
| [package] | ||
| name = "vello_svg" | ||
| description = "An SVG integration for vello." | ||
| categories = ["rendering", "graphics"] | ||
| keywords = ["2d", "vector-graphics", "vello", "svg"] | ||
| version.workspace = true | ||
| license.workspace = true | ||
nuzzles marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| edition.workspace = true | ||
| repository.workspace = true | ||
|
|
||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||
| [dependencies] | ||
| vello = { workspace = true } | ||
| usvg = "0.40" | ||
| image = { version = "0.24", default-features = false, features = [ | ||
| "png", | ||
| "jpeg", | ||
| "gif", | ||
| ] } | ||
|
|
||
|
|
||
| [target.'cfg(target_arch = "wasm32")'.dev-dependencies] | ||
| wasm-bindgen-test = "0.3" | ||
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.