Skip to content

Commit 2db986f

Browse files
committed
Add READMEs, update Cargo.toml, release v0.3.0 of all crates
1 parent 8e76915 commit 2db986f

File tree

24 files changed

+96
-45
lines changed

24 files changed

+96
-45
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# yakui Changelog
22

33
## Unreleased Changes
4-
**See <https://github.com/LPGhatguy/yakui/compare/v0.2.0...main>**
4+
**See <https://github.com/LPGhatguy/yakui/compare/v0.3.0...main>**
5+
6+
## 0.3.0 — 2024-10-20
7+
It's been a minute since any crates.io releases were published! This is a release to make yakui a bit more accessible.
8+
9+
To see a summary of all of the changes since 0.2.0, check out [the commit log from GitHub](https://github.com/LPGhatguy/yakui/compare/v0.2.0...v0.3.0).
510

611
## 0.2.0 — 2022-09-17
712
This release features improved documentation and several major improvements to yakui's implementation and interface.

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ yakui has the following priorities:
2424

2525
<div align="center">
2626
<div><img width="760" id="panels" src="assets/ms80-editor.png" /></div>
27-
<label for="#panels">yakui being used in the editor for <a href="https://secondhalf.games/">MS80</a></code></label>
27+
<label for="#panels">yakui being used in the editor for <a href="https://secondhalf.games/">MS80</a></label>
2828
</div>
2929

3030
[Flutter]: https://flutter.dev/
@@ -43,8 +43,13 @@ yakui has the following priorities:
4343
* [License](#license)
4444

4545
## Getting Started
46-
Add the [`yakui`] crate to your project:
46+
Add the [`yakui`] crate to your project, either from crates.io:
4747

48+
```bash
49+
cargo add yakui
50+
```
51+
52+
...or by editing your `Cargo.toml` to use the latest version from GitHub:
4853
```toml
4954
[dependencies]
5055
yakui = { git = "https://github.com/SecondHalfGames/yakui" }
@@ -74,7 +79,7 @@ Finally, call `paint()` and feed the result to your renderer:
7479
your_renderer.draw(yak.paint());
7580
```
7681

77-
To see your UI, you'll need a renderer crate. You can also write your own integration for your game. Here are the officially supported renderer crates:
82+
To see your UI, you'll need a renderer crate. You can also write your own renderer for your game. Here are the officially supported renderer crates:
7883

7984
- [`yakui-wgpu`] — wgpu renderer
8085
- [`yakui-vulkan`] — Vulkan renderer

crates/yakui-app/Cargo.toml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
[package]
22
name = "yakui-app"
33
description = "Wrapper crate for yakui, a UI library for games"
4-
publish = false
5-
version = "0.0.0"
4+
version = "0.3.0"
65
license = "MIT OR Apache-2.0"
76
repository = "https://github.com/LPGhatguy/yakui"
87
edition = "2021"
98

109
[features]
1110

1211
[dependencies]
13-
yakui = { path = "../yakui" }
14-
yakui-core = { path = "../yakui-core" }
15-
yakui-widgets = { path = "../yakui-widgets", default-features = false }
16-
yakui-winit = { path = "../yakui-winit" }
17-
yakui-wgpu = { path = "../yakui-wgpu" }
12+
yakui = { path = "../yakui", version = "0.3.0" }
13+
yakui-core = { path = "../yakui-core", version = "0.3.0" }
14+
yakui-widgets = { path = "../yakui-widgets", version = "0.3.0", default-features = false }
15+
yakui-winit = { path = "../yakui-winit", version = "0.3.0" }
16+
yakui-wgpu = { path = "../yakui-wgpu", version = "0.3.0" }
1817

1918
profiling = { version = "1.0.6", optional = true }
2019
winit = { version = "0.30.0" }

crates/yakui-app/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
`yakui_app` is an easy way to get started with [yakui](https://github.com/SecondHalfGames/yakui), a declarative UI library for games.
2+
3+
You might also be interested in:
4+
* [`yakui`]
5+
* [`yakui_widgets`]
6+
* [`yakui_core`]

crates/yakui-app/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![doc = include_str!("../README.md")]
2+
13
mod multisampling;
24

35
use winit::{dpi::PhysicalSize, event::WindowEvent, event_loop::ActiveEventLoop, window::Window};

crates/yakui-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "yakui-core"
33
description = "Core crate for yakui, a UI library for games"
4-
version = "0.2.0"
4+
version = "0.3.0"
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/LPGhatguy/yakui"
77
edition = "2021"

crates/yakui-core/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
`yakui_core` implements the DOM and wiget APIs for [yakui](https://github.com/SecondHalfGames/yakui), a declarative UI library for games.
2+
3+
This entire crate is also re-exported from the [`yakui`](https://docs.rs/yakui) crate.
4+
5+
You might also be interested in:
6+
* [`yakui`](https://docs.rs/yakui)
7+
* [`yakui_widgets`](https://docs.rs/yakui-widgets)
8+
* [`yakui_app`](https://docs.rs/yakui-app)

crates/yakui-core/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
clippy::collapsible_if
55
)]
66
#![deny(missing_docs)]
7-
8-
//! TODO: Crate docs
7+
#![doc = include_str!("../README.md")]
98

109
#[macro_use]
1110
mod mopmopa;

crates/yakui-vulkan/Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
[package]
22
name = "yakui-vulkan"
33
description = "vulkan bindings for yakui"
4-
version = "0.2.0"
4+
version = "0.3.0"
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/LPGhatguy/yakui"
77
edition = "2021"
88

99
[dependencies]
10-
yakui = { path = "../yakui" }
11-
yakui-core = { path = "../yakui-core" }
10+
yakui-core = { path = "../yakui-core", version = "0.3.0" }
1211

1312
ash = { version = "0.38", default-features = false, features = ["std"] }
1413
bytemuck = "1.13.0"
1514
thunderdome = "0.6.0"
1615

1716
[dev-dependencies]
17+
yakui = { path = "../yakui", version = "0.3.0" }
18+
1819
ash = { version = "0.38", default-features = false, features = ["loaded"] }
1920
ash-window = "0.13"
2021
image = "0.24.5"

crates/yakui-vulkan/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
A Vulkan renderer for [yakui](https://github.com/SecondHalfGames/yakui), a declarative UI library for games. Uses [`ash`] to wrap Vulkan related functionality.
2+
3+
The main entrypoint is the [`YakuiVulkan`] struct which creates a [`ash::vk::RenderPass`] and [`ash::vk::Pipeline`] to draw yakui GUIs. This is initialised by populating a [`VulkanContext`] helper struct to pass down the relevant hooks into your Vulkan renderer.
4+
5+
Like most Vulkan applications, this crate uses unsafe Rust! No checks are made to ensure that Vulkan handles are valid, so take note of the safety warnings on the various methods of [`YakuiVulkan`].
6+
7+
Currently this crate only supports drawing to images in the `VK_IMAGE_LAYOUT_PRESENT_SRC_KHR` layout, but future releases will support drawing to any arbitrary [`vk::ImageView`].
8+
9+
This crate requires at least Vulkan 1.2 and a GPU with support for `VkPhysicalDeviceDescriptorIndexingFeatures.descriptorBindingPartiallyBound`. You should also, you know, enable that feature, or Vulkan Validation Layers will get mad at you. You definitely don't want that.
10+
11+
For an example of how to use this crate, check out `examples/demo.rs`

0 commit comments

Comments
 (0)