mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-23 03:18:34 +00:00
updating msrv to 1.54
Added a "get out of jail free" card in the min-const-generics feature
This commit is contained in:
parent
e1521dd35f
commit
04af6ab69a
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
rust: ["1.48"]
|
rust: ["1.54"]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUSTFLAGS: -D warnings
|
RUSTFLAGS: -D warnings
|
||||||
@ -60,7 +60,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
rust: ["1.48"]
|
rust: ["1.54"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@ -84,7 +84,7 @@ jobs:
|
|||||||
rust:
|
rust:
|
||||||
- stable
|
- stable
|
||||||
- beta
|
- beta
|
||||||
- "1.48"
|
- "1.54"
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- macos-latest
|
- macos-latest
|
||||||
|
|||||||
@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
- BREAKING: MSRV is now **1.54**. This is gives us access to min-const-generics, which we use in a few places, but will gradually use more. Because this is the first time we've bumped MSRV intentionally, we have added a new feature `min-const-generics`, which is _enabled by default_. If you are pre-1.54, you can hang onto this update by disabling that feature. In our next update, this feature will be removed and we will commit to our MSRVs going forward.
|
||||||
|
|
||||||
- Removed automatically adding default features for `imgui-winit-support`
|
- Removed automatically adding default features for `imgui-winit-support`
|
||||||
with the exception of the current default winit feature/dep version. Additionally, that version was updated to 0.25. If you want to not have the default features of winit with 0.25, set `default-features = false` and add `winit-25` as a normal feature. Thank you to @dzil123 for the work [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/477)!
|
with the exception of the current default winit feature/dep version. Additionally, that version was updated to 0.25. If you want to not have the default features of winit with 0.25, set `default-features = false` and add `winit-25` as a normal feature. Thank you to @dzil123 for the work [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/477)!
|
||||||
|
|
||||||
- Added an `imgui-glow-renderer` which targets `glow 0.10`. Before release, this will be updated to target current `0.11` glow when further features are added. Thank you to @jmaargh for the work [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/495)!
|
- Added an `imgui-glow-renderer` which targets `glow 0.10`. Before release, this will be updated to target current `0.11` glow when further features are added. Thank you to @jmaargh for the work [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/495)!
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ with the exception of the current default winit feature/dep version. Additionall
|
|||||||
- For example `ui.is_key_released(imgui::Key::A)` is same as `ui.is_key_index_released(winit::events::VirtualKeyCode::A as i32)` when using the winit backend
|
- For example `ui.is_key_released(imgui::Key::A)` is same as `ui.is_key_index_released(winit::events::VirtualKeyCode::A as i32)` when using the winit backend
|
||||||
|
|
||||||
- Full (32-bit) unicode support is enabled in Dear Imgui (e.g. `-DIMGUI_USE_WCHAR32` is enabled now). Previously UTF-16 was used internally.
|
- Full (32-bit) unicode support is enabled in Dear Imgui (e.g. `-DIMGUI_USE_WCHAR32` is enabled now). Previously UTF-16 was used internally.
|
||||||
|
|
||||||
- BREAKING: Some parts of the font atlas code now use `char` (or `u32`) instead of `u16` to reflect this.
|
- BREAKING: Some parts of the font atlas code now use `char` (or `u32`) instead of `u16` to reflect this.
|
||||||
- Note: `u32` is used over `char` in some situations, such as when surrogates are allowed
|
- Note: `u32` is used over `char` in some situations, such as when surrogates are allowed
|
||||||
- BREAKING (sorta): Dear Imgui now will use 32 bits for character data internally. This impacts the ABI, including sizes of structs and such, and can break some low level or advanced use cases:
|
- BREAKING (sorta): Dear Imgui now will use 32 bits for character data internally. This impacts the ABI, including sizes of structs and such, and can break some low level or advanced use cases:
|
||||||
|
|||||||
@ -27,13 +27,13 @@ Window::new(im_str!("Hello world"))
|
|||||||
|
|
||||||
## Main library crates
|
## Main library crates
|
||||||
|
|
||||||
* imgui: High-level safe API
|
- imgui: High-level safe API
|
||||||
* imgui-glium-renderer: Renderer implementation that uses the `glium` crate
|
- imgui-glium-renderer: Renderer implementation that uses the `glium` crate
|
||||||
* imgui-gfx-renderer: Renderer implementation that uses the `gfx` crate (*not
|
- imgui-gfx-renderer: Renderer implementation that uses the `gfx` crate (_not
|
||||||
the new gfx-hal crate*)
|
the new gfx-hal crate_)
|
||||||
* imgui-winit-support: Backend platform implementation that uses the `winit`
|
- imgui-winit-support: Backend platform implementation that uses the `winit`
|
||||||
crate (latest by default, but earlier versions are supported via feature flags)
|
crate (latest by default, but earlier versions are supported via feature flags)
|
||||||
* imgui-sys: Low-level unsafe API (automatically generated)
|
- imgui-sys: Low-level unsafe API (automatically generated)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@ -49,6 +49,10 @@ Window::new(im_str!("Hello world"))
|
|||||||
- Easy integration with winit (backend platform)
|
- Easy integration with winit (backend platform)
|
||||||
- Optional support for the freetype font rasterizer
|
- Optional support for the freetype font rasterizer
|
||||||
|
|
||||||
|
## Minimum Support Rust Version (MSRV)
|
||||||
|
|
||||||
|
The MSRV for `imgui-rs` and all of the backend crates is **1.54**. We update our MSRV periodically, and issue a minor bump for it.
|
||||||
|
|
||||||
## Choosing a backend platform and a renderer
|
## Choosing a backend platform and a renderer
|
||||||
|
|
||||||
Almost every application that uses imgui-rs needs two additional components in
|
Almost every application that uses imgui-rs needs two additional components in
|
||||||
@ -57,18 +61,18 @@ addition to the main `imgui` crate: a backend platform, and a renderer.
|
|||||||
The backend platform is responsible for integrating imgui-rs with the operating
|
The backend platform is responsible for integrating imgui-rs with the operating
|
||||||
system and its window management. Its responsibilities include the following:
|
system and its window management. Its responsibilities include the following:
|
||||||
|
|
||||||
* Handling input events (e.g. keyboard, mouse) and updating imgui-rs state
|
- Handling input events (e.g. keyboard, mouse) and updating imgui-rs state
|
||||||
accordingly
|
accordingly
|
||||||
* Passing information about the OS window (e.g. size, DPI factor) to imgui-rs
|
- Passing information about the OS window (e.g. size, DPI factor) to imgui-rs
|
||||||
* Updating the OS-side mouse cursor when imgui-rs requests it
|
- Updating the OS-side mouse cursor when imgui-rs requests it
|
||||||
|
|
||||||
The renderer is responsible for taking generic, renderer-agnostic *draw lists*
|
The renderer is responsible for taking generic, renderer-agnostic _draw lists_
|
||||||
generated by imgui-rs, and rendering them using some graphics API. Its
|
generated by imgui-rs, and rendering them using some graphics API. Its
|
||||||
responsibilities include the following:
|
responsibilities include the following:
|
||||||
|
|
||||||
* Rendering using vertex/index buffers and command lists
|
- Rendering using vertex/index buffers and command lists
|
||||||
* Handling of DPI factors and scissor rects
|
- Handling of DPI factors and scissor rects
|
||||||
* Texture management
|
- Texture management
|
||||||
|
|
||||||
The most tested platform/renderer combination is `imgui-glium-renderer` +
|
The most tested platform/renderer combination is `imgui-glium-renderer` +
|
||||||
`glium` + `imgui-winit-support` + `winit`, but this is not the only possible
|
`glium` + `imgui-winit-support` + `winit`, but this is not the only possible
|
||||||
@ -107,7 +111,7 @@ cargo run --example gfx_hello_world
|
|||||||
cargo run --example gfx_test_window
|
cargo run --example gfx_test_window
|
||||||
```
|
```
|
||||||
|
|
||||||
Note to Windows users: You will need to use the *MSVC ABI* version of the Rust
|
Note to Windows users: You will need to use the _MSVC ABI_ version of the Rust
|
||||||
compiler along with its associated
|
compiler along with its associated
|
||||||
[dependencies](https://www.rust-lang.org/en-US/downloads.html#win-foot) to
|
[dependencies](https://www.rust-lang.org/en-US/downloads.html#win-foot) to
|
||||||
build this libary and run the examples.
|
build this libary and run the examples.
|
||||||
@ -118,10 +122,10 @@ build this libary and run the examples.
|
|||||||
2. Make sure you're using the latest stable Rust
|
2. Make sure you're using the latest stable Rust
|
||||||
3. Run rustfmt to guarantee code style conformance
|
3. Run rustfmt to guarantee code style conformance
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rustup component add rustfmt
|
rustup component add rustfmt
|
||||||
cargo fmt
|
cargo fmt
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Open a pull request in Github
|
4. Open a pull request in Github
|
||||||
|
|
||||||
@ -129,8 +133,8 @@ build this libary and run the examples.
|
|||||||
|
|
||||||
Licensed under either of
|
Licensed under either of
|
||||||
|
|
||||||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
|
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
|
||||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
|
- MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
at your option.
|
at your option.
|
||||||
|
|
||||||
|
|||||||
@ -18,8 +18,11 @@ imgui-sys = { version = "0.7.0", path = "../imgui-sys" }
|
|||||||
parking_lot = "0.11"
|
parking_lot = "0.11"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
default = ["min-const-generics"]
|
||||||
|
|
||||||
wasm = ["imgui-sys/wasm"]
|
wasm = ["imgui-sys/wasm"]
|
||||||
freetype = ["imgui-sys/freetype"]
|
freetype = ["imgui-sys/freetype"]
|
||||||
|
min-const-generics = []
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
memoffset = "0.6"
|
memoffset = "0.6"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user