Skip to content

Commit

Permalink
Merge pull request #280 from StarArawn/bevy-12
Browse files Browse the repository at this point in the history
Bevy 12
  • Loading branch information
StarArawn authored Feb 11, 2024
2 parents 41706b3 + ad104ec commit a694237
Show file tree
Hide file tree
Showing 200 changed files with 31,162 additions and 30,359 deletions.
90 changes: 45 additions & 45 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
name: Rust

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always

jobs:
build:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]

runs-on: ${{ matrix.os }}

steps:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.70.0
components: clippy, rustfmt
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-build-1.70.0-${{ hashFiles('**/Cargo.toml') }}
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
if: runner.os == 'linux'
- name: Build
run: cargo build --verbose --workspace --features "bevy/x11"
# - name: Run tests
# run: cargo test --verbose --workspace
- name: Run fmt check
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --workspace --all-targets --all-features --features "bevy/x11" -- --deny warnings
name: Rust

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always

jobs:
build:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]

runs-on: ${{ matrix.os }}

steps:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.75.0
components: clippy, rustfmt
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-build-1.75.0-${{ hashFiles('**/Cargo.toml') }}
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
if: runner.os == 'linux'
- name: Build
run: cargo build --verbose --workspace --features "bevy/x11"
# - name: Run tests
# run: cargo test --verbose --workspace
- name: Run fmt check
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --workspace --all-targets --all-features --features "bevy/x11" -- --deny warnings
40 changes: 20 additions & 20 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
target

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

.vscode

*.log

msdfgen

.idea

.DS_Store

Cargo.lock

target

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

.vscode

*.log

msdfgen

.idea

.DS_Store

Cargo.lock

.cargo
102 changes: 51 additions & 51 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,51 +1,51 @@
[package]
name = "kayak_ui"
description = "A UI library built using the bevy game engine!"
version = "0.4.1"
edition = "2021"
resolver = "2"
authors = ["John Mitchell"]
homepage = "https://github.com/StarArawn/kayak_ui"
repository = "https://github.com/StarArawn/kayak_ui"
license-file = "LICENSE"
exclude = ["assets/*", "screenshots/*", "book"]

[workspace]
members = ["kayak_ui_macros", "kayak_font"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bevy = { version = "0.11", default-features = false, features = ["bevy_render", "bevy_asset", "bevy_winit", "bevy_core_pipeline"] }
bevy_svg = { version="0.11", default-features = false }
bitflags = "1.3.2"
bytemuck = "1.12"
dashmap = "5.4"
fancy-regex = "0.11.0"
indexmap = "1.9"
instant = "0.1"
interpolation = { version = "0.2" }
kayak_font = { path = "./kayak_font", version = "0.4" }
kayak_ui_macros = { path = "./kayak_ui_macros", version = "0.4" }
log = "0.4"
morphorm = "0.3"
reorder = "2.1"
resources = "1.1"
usvg = "0.27"
uuid = { version = "1.3", features = ["v4"] }

[dev-dependencies]
fastrand = "1.8"
bevy-inspector-egui = "0.19"
bevy = { version = "0.11", default-features = true }

[[example]]
name = "tabs"
path = "examples/tabs/tabs.rs"

[[example]]
name = "todo"
path = "examples/todo/todo.rs"

[package.metadata.docs.rs]
features = ["bevy/x11"]
[package]
name = "kayak_ui"
description = "A UI library built using the bevy game engine!"
version = "0.4.1"
edition = "2021"
resolver = "2"
authors = ["John Mitchell"]
homepage = "https://github.com/StarArawn/kayak_ui"
repository = "https://github.com/StarArawn/kayak_ui"
license-file = "LICENSE"
exclude = ["assets/*", "screenshots/*", "book"]

[workspace]
members = ["kayak_ui_macros", "kayak_font"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bevy = { version = "0.12", default-features = false, features = ["bevy_render", "bevy_asset", "bevy_winit", "bevy_core_pipeline"] }
bevy_svg = { version="0.12", default-features = false }
bitflags = "1.3.2"
bytemuck = "1.12"
dashmap = "5.4"
fancy-regex = "0.11.0"
indexmap = "1.9"
instant = "0.1"
interpolation = { version = "0.2" }
kayak_font = { path = "./kayak_font", version = "0.4" }
kayak_ui_macros = { path = "./kayak_ui_macros", version = "0.4" }
log = "0.4"
morphorm = "0.3"
reorder = "2.1"
resources = "1.1"
usvg = "0.27"
uuid = { version = "1.3", features = ["v4"] }

[dev-dependencies]
fastrand = "1.8"
bevy-inspector-egui = "0.21"
bevy = { version = "0.12", default-features = true }

[[example]]
name = "tabs"
path = "examples/tabs/tabs.rs"

[[example]]
name = "todo"
path = "examples/todo/todo.rs"

[package.metadata.docs.rs]
features = ["bevy/x11"]
12 changes: 6 additions & 6 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Kayak UI is dual-licensed under either

* MIT License (docs/LICENSE-MIT or http://opensource.org/licenses/MIT)
* Apache License, Version 2.0 (docs/LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

at your option.
Kayak UI is dual-licensed under either
* MIT License (docs/LICENSE-MIT or http://opensource.org/licenses/MIT)
* Apache License, Version 2.0 (docs/LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
132 changes: 66 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,66 @@
<p align="center">
<img src="images/kayak.svg" alt="Kayak UI" width="600" />
</p>
<br/>

<h1>
<p align="center">
Kayak UI
<p>
</h1>

## What is Kayak UI?
Kayak UI is a declarative UI that can be used to make user interfaces in Rust primarily targeting games. It's free and open-source!

Check out the book!
[Kayak UI Book](./book/src/SUMMARY.md)

## WARNING
Kayak UI is in the very early stages of development. Important features are missing and some documentation is missing. Kayak UI is designed to only work with Bevy.

## Features
- Easy to use declarative syntax using a custom proc macro
- Basic widget and global state management
- Input events (Mouse, Keyboard, Char)
- Fast and accurate layouts using morphorm: https://github.com/geom3trik/morphorm
- A few default widgets (check out Kayak's [built-in widgets](./src/widgets)!)
- Style system built to kind of mimic CSS styles.
- Image and Nine patch rendering.
- Vec widgets see vec example!

## Bevy Renderer Features
- Image and NinePatch renderer
- Fast MSDF Font renderer
- Quad renderer with rounded corners.
- Custom UI node to ensure UI renders on top of 3D and 2D entities.
- Fully integrated into bevy to capture input events, use bevy assets(images, etc).
- Dpi Scaling
- Batched Rendering
- Opacity Layers
- Custom Materials

## Missing features
- More default widgets.
- More events

## Example Screenshot
<img src="images/screen1.png" alt="Kayak UI" width="600" />

## Usage
Use bevy `0.10`! Make sure the version of Kayak you are using uses the same version of bevy.

```rust
kayak_ui = "0.4"
bevy = "0.10"
```

|bevy|kayak_ui|
|---|---|
|`main`|`bevy-track`|
|0.10.x|0.4|
|0.10.x|0.3|
|0.9|0.2|
|0.9|0.1|

## Check out the book!
[Kayak UI Book](./book/src/SUMMARY.md)
<p align="center">
<img src="images/kayak.svg" alt="Kayak UI" width="600" />
</p>
<br/>

<h1>
<p align="center">
Kayak UI
<p>
</h1>

## What is Kayak UI?
Kayak UI is a declarative UI that can be used to make user interfaces in Rust primarily targeting games. It's free and open-source!

Check out the book!
[Kayak UI Book](./book/src/SUMMARY.md)

## WARNING
Kayak UI is in the very early stages of development. Important features are missing and some documentation is missing. Kayak UI is designed to only work with Bevy.

## Features
- Easy to use declarative syntax using a custom proc macro
- Basic widget and global state management
- Input events (Mouse, Keyboard, Char)
- Fast and accurate layouts using morphorm: https://github.com/geom3trik/morphorm
- A few default widgets (check out Kayak's [built-in widgets](./src/widgets)!)
- Style system built to kind of mimic CSS styles.
- Image and Nine patch rendering.
- Vec widgets see vec example!

## Bevy Renderer Features
- Image and NinePatch renderer
- Fast MSDF Font renderer
- Quad renderer with rounded corners.
- Custom UI node to ensure UI renders on top of 3D and 2D entities.
- Fully integrated into bevy to capture input events, use bevy assets(images, etc).
- Dpi Scaling
- Batched Rendering
- Opacity Layers
- Custom Materials

## Missing features
- More default widgets.
- More events

## Example Screenshot
<img src="images/screen1.png" alt="Kayak UI" width="600" />

## Usage
Use bevy `0.10`! Make sure the version of Kayak you are using uses the same version of bevy.

```rust
kayak_ui = "0.4"
bevy = "0.10"
```

|bevy|kayak_ui|
|---|---|
|`main`|`bevy-track`|
|0.10.x|0.4|
|0.10.x|0.3|
|0.9|0.2|
|0.9|0.1|

## Check out the book!
[Kayak UI Book](./book/src/SUMMARY.md)
Loading

0 comments on commit a694237

Please sign in to comment.