imgui-ext
imgui-ext copied to clipboard
Update imgui requirement from 0.2 to 0.7
Updates the requirements on imgui to permit the latest version.
Release notes
Sourced from imgui's releases.
v0.7.0
Upgrade to Dear ImGui v1.80. (Note that the new table functionality is not yet supported, however)
Ui::key_index()
is now called internally when needed, and the variousis_key_foo
now take aKey
directly: imgui-rs/imgui-rs#416
is_key_down
,is_key_pressed
,is_key_released
andkey_pressed_amount
now take aKey
instead ofu32
(breaking).key_index
is no longer public (breaking). If you need access to the key map, it can be accessed asui.io().key_map[key]
(If you need to do this, file a bug, since I'm open to exposing this if there's actually a use case).
winit
0.23/0.24 handling has been (hopefully) fixed: imgui-rs/imgui-rs#420 (breaking, see also imgui-rs/imgui-rs#412).
imgui-winit-support
'swinit-23
feature no longer supportswinit
version0.24
(this caused an unintentional semver breakage in theimgui-winit-support
crate before, unfortunately).imgui-winit-support
has a newwinit-24
feature for 0.24 support.- By default
imgui-winit-support
feature now enableswinit-24
, and notwinit-23
(by default it will always enable the latest).The
imgui
crate no longer depends ongfx
orglium
directly: imgui-rs/imgui-rs#420 (breaking, related to the previous change).
- That is, the
gfx
andglium
features are removed to reduce version compatibility issues going forward.
- This only matters if you manually implement
gfx
orglium
renderers without using theimgui-glium-renderer
orimgui-gfx-renderer
crates.- In the (somewhat unlikely) case you were relying on these this, you should define your own vertex type that's layout-compatible with
imgui::DrawVert
, and replace calls toimgui::DrawList::vtx_buffer()
withimgui::DrawList::transmute_vtx_buffer::<MyDrawVert>()
. You can seeimgui_glium_renderer::GliumDrawVert
andimgui_gfx_renderer::GfxDrawVert
types respectively for examples of this, if needed, but it should be straightforward enough if you're already implementing a renderer from scratch.- This is admittedly less convenient, but avoids depending on any specific version of
gfx
orglium
in the coreimgui
crate, which will ease maintenance and reduce unintentional breakage in the future.Non-window DrawList support has been fixed/improved: imgui-rs/imgui-rs#414
WindowDrawList
has been renamed toDrawListMut
, to reflect that it may refer to other kinds of draw lists, and is mutable, unlikeimgui::DrawList
(breaking).Ui::get_background_draw_list()
has been fixed when used outside of a window context, and now has an example.Ui::get_foreground_draw_list()
has been added, analogous toUi::get_background_draw_list()
.Added drag drop support, with a safe and an unsafe variant: imgui-rs/imgui-rs#428
DragDropSource
allows users to create a dragdrop payload which is either empty, of'static + Copy
data, orunsafe
, allowing for theoretically arbitrary payloads.DragDropTarget
allows users to accept any of the above payloads.- Extensive documentation has been made on all of these features, hopefully as a target for future features.
ImColor
(which is a wrapper aroundu32
) has been renamed toImColor32
in order to avoid confusion with theImColor
type from the Dear ImGui C++ code (which is a wrapper aroundImVec4
). In the future anImColor
type which maps more closely to the C++ one will be added.
- Additionally, a number of constructor and accessor methods have been added to it
ImColor
, which areconst fn
where possible.The
im_str!
macro can now be used inconst
contexts (when theformat!
version is not used).
im_str!
now verifies that the parameter has no interior nuls at compile time. This can be avoided to get the old (truncating) behavior by forcing it to use theformat!
-like version, e.g.im_str!("for_some_reason_this_should_be_truncated\0 there {}", "")
.
- This is not recommended, and is probably not useful.
Many functions are now
const fn
.A large number of small functions are now
#[inline]
, but many still aren't, so you probably will want to build with LTO for release builds if you useimgui
heavily.The
io.config_windows_memory_compact_timer
flag has been renamed toio.config_memory_compact_timer
. This follows the similar rename in the C++ ImGui, and was done because it no longer only applies to window memory usage.The variants of
ColorEditInputMode
andColorEditDisplayMode
have been renamed to be CamelCase instead of upper case (e.g.ColorEditFooMode::RGB
=>ColorEditFooMode::Rgb
).
- However, this change is probably not breaking (in practice if not in theory) because const aliases using the old names are provided.
Changelog
Sourced from imgui's changelog.
[0.7.0] - 2021-02-04
Upgrade to Dear ImGui v1.80. (Note that the new table functionality is not yet supported, however)
Ui::key_index()
is now called internally when needed, and the variousis_key_foo
now take aKey
directly: imgui-rs/imgui-rs#416
is_key_down
,is_key_pressed
,is_key_released
andkey_pressed_amount
now take aKey
instead ofu32
(breaking).key_index
is no longer public (breaking). If you need access to the key map, it can be accessed asui.io().key_map[key]
(If you need to do this, file a bug, since I'm open to exposing this if there's actually a use case).
winit
0.23/0.24 handling has been (hopefully) fixed: imgui-rs/imgui-rs#420 (breaking, see also imgui-rs/imgui-rs#412).
imgui-winit-support
'swinit-23
feature no longer supportswinit
version0.24
(this caused an unintentional semver breakage before, unfortunately).imgui-winit-support
has a newwinit-24
feature for 0.24 support.- By default
imgui-winit-support
feature now enableswinit-24
, and notwinit-23
(by default it will always enable the latest).The
imgui
crate no longer depends ongfx
orglium
directly: imgui-rs/imgui-rs#420 (breaking, related to the previous change).
- That is, the
gfx
andglium
features are removed to reduce version compatibility issues going forward.
- This only matters if you manually implement
gfx
orglium
renderers without using theimgui-glium-renderer
orimgui-gfx-renderer
crates.- In the (somewhat unlikely) case you were relying on these this, you should define your own vertex type that's layout-compatible with
imgui::DrawVert
, and replace calls toimgui::DrawList::vtx_buffer()
withimgui::DrawList::transmute_vtx_buffer::<MyDrawVert>()
. You can seeimgui_glium_renderer::GliumDrawVert
andimgui_gfx_renderer::GfxDrawVert
types respectively for examples of this, if needed, but it should be straightforward enough if you're already implementing a renderer from scratch.- This is admittedly less convenient, but avoids depending on any specific version of
gfx
orglium
in the coreimgui
crate, which will ease maintenance and reduce unintentional breakage in the future.Non-window DrawList support has been fixed/improved: imgui-rs/imgui-rs#414
WindowDrawList
has been renamed toDrawListMut
, to reflect that it may refer to other kinds of draw lists, and is mutable, unlikeimgui::DrawList
(breaking).Ui::get_background_draw_list()
has been fixed when used outside of a window context, and now has an example.Ui::get_foreground_draw_list()
has been added, analogous toUi::get_background_draw_list()
.Added drag drop support, with a safe and an unsafe variant: imgui-rs/imgui-rs#428
DragDropSource
allows users to create a dragdrop payload which is either empty, of'static + Copy
data, orunsafe
, allowing for theoretically arbitrary payloads.DragDropTarget
allows users to accept any of the above payloads.- Extensive documentation has been made on all of these features, hopefully as a target for future features.
ImColor
(which is a wrapper aroundu32
) has been renamed toImColor32
in order to avoid confusion with theImColor
type from the Dear ImGui C++ code (which is a wrapper aroundImVec4
). In the future anImColor
type which maps more closely to the C++ one will be added.
- Additionally, a number of constructor and accessor methods have been added to it
ImColor
, which areconst fn
where possible.The
im_str!
macro can now be used inconst
contexts (when theformat!
version is not used).
im_str!
now verifies that the parameter has no interior nuls at compile time. This can be avoided to get the old (truncating) behavior by forcing it to use theformat!
-like version, e.g.im_str!("for_some_reason_this_should_be_truncated\0 there {}", "")
.
- This is not recommended, and is probably not useful.
Many functions are now
const fn
.A large number of small functions are now
#[inline]
, but many still aren't, so you probably will want to build with LTO for release builds if you useimgui
heavily.The
io.config_windows_memory_compact_timer
flag has been renamed toio.config_memory_compact_timer
. This follows the similar rename in the C++ ImGui, and was done because it no longer only applies to window memory usage.The variants of
ColorEditInputMode
andColorEditDisplayMode
have been renamed to be CamelCase instead of upper case (e.g.ColorEditFooMode::RGB
=>ColorEditFooMode::Rgb
).
- However, this change is probably not breaking (in practice if not in theory) because const aliases using the old names are provided.
[0.6.1] - 2020-12-16
- Support for winit 0.24.x
... (truncated)
Commits
6376562
changelog for 0.7.034118dc
Prep release 0.7.05721afe
Replace cty with chlorine8b00663
Merge pull request #428 from sanbox-irl/feat_drag_drop6b2983e
Merge branch 'master' into feat_drag_drop1983f47
final2a1ced6
Updated79a277a
changelogd15b97d
just ignore all warnings on MouseCursor rather than ignore 4 separate warning...aa1cbed
Whoops, rustfmt- 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) -
@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language -
@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language -
@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language -
@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and language -
@dependabot badge me
will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)