Traverse-Research / gpu-allocator

🦀 GPU memory allocator for Vulkan, DirectX 12 and Metal. Written in pure Rust
https://traverse.nl/
Apache License 2.0
373 stars 49 forks source link

Update imgui requirement from 0.8 to 0.9 #146

Closed dependabot[bot] closed 1 year ago

dependabot[bot] commented 1 year ago

Updates the requirements on imgui to permit the latest version.

Release notes

Sourced from imgui's releases.

v0.9.0

Thanks everyone for your patience with this long overdue release!

There has been a good chunk of work done on imgui-rs since the last release. For a complete list, see the CHANGELOG.markdown in the main repository

A few key changes:

Building everything of Ui

The aim is to make the API more consistent and easier to discover functinality by having widgets be created consistently.

For example, previously a button was made by ui.button(...) but a slider made by imgui::Slider::new(...).build(ui) - meaning both appeared in different sections of the docs/auto-completion, so easy to miss. Now a slider is now made via ui.slider(...) also

This means some commonly used widgets like Window change - although a tiny bit tedious, it is hopefully a fairly stight-forward syntax change, which can be done with some search-and-replace (change imgui::Window::new(...) to ui.window(...) and remove the ui argument from build)

This is still somewhat a work-in-progress (some items may still be created via separate builder structs), but the aim is to transition everything to Ui

Docking

The upstream docking branch is now available, enabled via the docking feature. Higher-level, safe Rust bindings for this will come in a future release, for now these can be used via the imgui-sys crate

Various version updates

Dear ImGui is now 1.86 - this isn't the latest release, but it was better to release now and get imgui-rs back to a more regular release cycle

Similarly there is updates to latest glium, winit

Automatic notes

What's Changed

... (truncated)

Changelog

Sourced from imgui's changelog.

[0.9.0] - 2022-11-30

  • MSRV is now 1.57. We soft-updated to this to Rust 1.54 in the v0.8.0 release (with a feature min-const-generics), which has now been removed (and as such, we resume having no default features). Rust 1.56 is required for the Rust 2021 edition, and 1.57 is required by some dependencies

  • Upgraded from Dear ImGui 1.84.2 to 1.86. See the 1.85 and the 1.86 release notes

  • Upgraded winit version to v0.27 for imgu-winit-support

  • The imgui-winit-support and imgui-glow-renderer re-export winit and glow respectively to make setup easier for simple projects. [PR #676](imgui-rs/imgui-rs#676)

  • BREAKING: Removed push_style_colors and push_style_vars. Instead, use push_style_color in a loop. This was deprecated in 0.7.0 and should have been removed in 0.8.0. This also removes their associated tokens.

  • BREAKING: Ui now does not have a lifetime associated with it, but is only ever given to users in the form of &mut Ui. Additionally, the render function has been moved to the Context instead of Ui.

  • BREAKING: SharedFontAtlas now hides an Rc within its wrapper -- this simplifies the codebase and more accurately reflects how we expect SharedFontAtlas to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). SharedFontAtlas users, if this change is very bad for you, please let us know with issues!

  • BREAKING: Id is now a simpler facade, but requires the Ui struct to generate. push_id, equally, has been split into multiple functions for simplicity. New example imgui-examples/examples/id_wrangling.rs shows some of the push_id usage

  • Added imgui-sdl2-support to provide a simple ImGui platform wrapper. Please give it a try! Thank you to @​NightShade256 for implementing this here

  • BREAKING: We now only support glium 0.30. We're in a difficult position supporting arbitrary glium versions in our renderer, since glium is only in a semi-maintained state. glium users, please get in contact in issues to let us know what will work best for your needs!

  • Added InputScalar and InputScalarN. These are the core Input modules that Dear ImGui uses, and ultimately what InputFloat and InputInt turn into. See deprecation of InputFloat and InputInt as a result. Thank you to @​EmbersArc for implementing this here.

  • BREAKING: ui.input_int and ui.input_float now return InputScalar<'ui, 'l, f32/i32>, instead of InputFloat/InputInt. This struct has all of the same flags as InputFloat and InputInt did.

  • DEPRECATED: InputFloat and InputInt have been deprecated. ui.input_float and ui.input_int are not, however, and instead will just call input_scalar as appropriate. Therefore, please switch your code to ui.input_float or ui.input_int.

  • Added add_polyline method to DrawListMut, which binds to Dear ImGui's AddPolyline and AddConvexPolyFilled

  • BREAKING: The following structs have had their new method changed and deprecated; they now also take ui in their new, but you should create them on the Ui struct instead.

    • Window should be made with ui.window - e.g ui.window("My Window").build(|| { ui.text("Contents") });
    • ChildWindow should be made with ui.child_window
    • MenuItem should be made with ui.menu_item or ui.menu_item_config.
    • DragDropSource and DragDropTarget should be made with ui.drag_drop_source_config or ui.drag_drop_target. Both of these methods, and the DragDrop API in general, are likely to change.
  • Added docking feature which builds against the upstream docking branch. Only basic API is exposed currently, just enough to enable the docking imgui_context.io_mut().config_flags |= imgui::ConfigFlags::DOCKING_ENABLE; - a safe API for programtically docking windows and so on will be added later (until then the internal docking API can be accessed, imgui::sys::igDockBuilderDockWindow and so on)

  • Fixed dpi related issues when not in HiDpiMode::Default mode. The wrong scale factor was used when converting winit physical size to logical size, causing the imgui display size to be incorrect.

  • Fixed creation of .crate (published to crates.io) so required files for freetype feature are included

  • Added binding to TextFilter API. [PR #658](imgui-rs/imgui-rs#658)

[0.8.0] - 2021-09-17

Welcome to the 0.8.0 update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a 0.7 project, but hopefully it should be both quick to fix, and enjoyable to update. See our release page for more information and a list of contributors to this cycle. Thank you to everyone who uses imgui-rs, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best imgui-rs has looked!

  • Removed ImStr and ImString from the API. Currently im_str! is deprecated and will be removed in 0.9.0. To change your code:

... (truncated)

Commits
  • 6d6cda2 Add docs links to Cargo.toml
  • 5f07942 Move imgui-gfx-renderer away from main library crates section
  • e47f29b Release process docs: important release crates step
  • 9776ebe Remove authors key from Cargo.toml
  • 2eb3f8c Bump to 0.9.0!
  • b8ddd07 Update unobvious dear-imgui version in README
  • 59ce49c Update headings in changelog
  • 7cc7bf9 Minor hackery to keep CI happy
  • a7c479c Update changelog
  • 8329cd7 Merge pull request #676 from lovelymono/reexport-glow-winit
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
MarijnS95 commented 1 year ago

@dependabot close

It's not that simple, this is already taken care of in #144 regardless.