Skip to content

Commit 3af9ac3

Browse files
committed
Merge branch 'master' into docking
# Conflicts: # examples/imgui_examples.sln # imgui.cpp # imgui.h # imgui_demo.cpp
2 parents 64b88da + 1dd964f commit 3af9ac3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+377
-357
lines changed

backends/imgui_impl_vulkan.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer comm
594594
// Note: at this point both vkCmdSetViewport() and vkCmdSetScissor() have been called.
595595
// Our last values will leak into user/application rendering IF:
596596
// - Your app uses a pipeline with VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_SCISSOR dynamic state
597-
// - And you forgot to call vkCmdSetViewport() and vkCmdSetScissor() yourself to explicitely set that state.
597+
// - And you forgot to call vkCmdSetViewport() and vkCmdSetScissor() yourself to explicitly set that state.
598598
// If you use VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_SCISSOR you are responsible for setting the values before rendering.
599599
// In theory we should aim to backup/restore those values but I am not sure this is possible.
600600
// We perform a call to vkCmdSetScissor() to set back a full viewport which is likely to fix things for 99% users but technically this is not perfect. (See github #4644)

docs/BACKENDS.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ _(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/BACKE
55
**The backends/ folder contains backends for popular platforms/graphics API, which you can use in
66
your application or engine to easily integrate Dear ImGui.** Each backend is typically self-contained in a pair of files: imgui_impl_XXXX.cpp + imgui_impl_XXXX.h.
77

8-
- The 'Platform' backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, windowing.<BR>
8+
- The 'Platform' backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, and windowing.<BR>
99
e.g. Windows ([imgui_impl_win32.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_win32.cpp)), GLFW ([imgui_impl_glfw.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_glfw.cpp)), SDL2 ([imgui_impl_sdl.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_sdl.cpp)), etc.
1010

11-
- The 'Renderer' backends are in charge of: creating atlas texture, rendering imgui draw data.<BR>
11+
- The 'Renderer' backends are in charge of: creating atlas texture, and rendering imgui draw data.<BR>
1212
e.g. DirectX11 ([imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)), OpenGL/WebGL ([imgui_impl_opengl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl3.cpp)), Vulkan ([imgui_impl_vulkan.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_vulkan.cpp)), etc.
1313

14-
- For some high-level frameworks, a single backend usually handle both 'Platform' and 'Renderer' parts.<BR>
14+
- For some high-level frameworks, a single backend usually handles both 'Platform' and 'Renderer' parts.<BR>
1515
e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)). If you end up creating a custom backend for your engine, you may want to do the same.
1616

17-
An application usually combines 1 Platform backend + 1 Renderer backend + main Dear ImGui sources.
17+
An application usually combines one Platform backend + one Renderer backend + main Dear ImGui sources.
1818
For example, the [example_win32_directx11](https://github.com/ocornut/imgui/tree/master/examples/example_win32_directx11) application combines imgui_impl_win32.cpp + imgui_impl_dx11.cpp. There are 20+ examples in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder. See [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for details.
1919

2020
**Once Dear ImGui is setup and running, run and refer to `ImGui::ShowDemoWindow()` in imgui_demo.cpp for usage of the end-user API.**
2121

2222

23-
### What are backends
23+
### What are backends?
2424

2525
Dear ImGui is highly portable and only requires a few things to run and render, typically:
2626

@@ -41,7 +41,7 @@ Dear ImGui is highly portable and only requires a few things to run and render,
4141
This is essentially what each backend is doing + obligatory portability cruft. Using default backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support).
4242

4343
It is important to understand the difference between the core Dear ImGui library (files in the root folder)
44-
and backends which we are describing here (backends/ folder).
44+
and the backends which we are describing here (backends/ folder).
4545

4646
- Some issues may only be backend or platform specific.
4747
- You should be able to write backends for pretty much any platform and any 3D graphics API.
@@ -109,19 +109,19 @@ Think twice!
109109
If you are new to Dear ImGui, first try using the existing backends as-is.
110110
You will save lots of time integrating the library.
111111
You can LATER decide to rewrite yourself a custom backend if you really need to.
112-
In most situations, custom backends have less features and more bugs than the standard backends we provide.
112+
In most situations, custom backends have fewer features and more bugs than the standard backends we provide.
113113
If you want portability, you can use multiple backends and choose between them either at compile time
114114
or at runtime.
115115

116116
**Example A**: your engine is built over Windows + DirectX11 but you have your own high-level rendering
117117
system layered over DirectX11.<BR>
118118
Suggestion: try using imgui_impl_win32.cpp + imgui_impl_dx11.cpp first.
119-
Once it works, if you really need it you can replace the imgui_impl_dx11.cpp code with a
119+
Once it works, if you really need it, you can replace the imgui_impl_dx11.cpp code with a
120120
custom renderer using your own rendering functions, and keep using the standard Win32 code etc.
121121

122-
**Example B**: your engine runs on Windows, Mac, Linux and uses DirectX11, Metal, Vulkan respectively.<BR>
122+
**Example B**: your engine runs on Windows, Mac, Linux and uses DirectX11, Metal, and Vulkan respectively.<BR>
123123
Suggestion: use multiple generic backends!
124-
Once it works, if you really need it you can replace parts of backends with your own abstractions.
124+
Once it works, if you really need it, you can replace parts of backends with your own abstractions.
125125

126126
**Example C**: your engine runs on platforms we can't provide public backends for (e.g. PS4/PS5, Switch),
127127
and you have high-level systems everywhere.<BR>

docs/CHANGELOG.txt

+8-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ Breaking changes:
127127
- requires an explicit identifier. You may still use e.g. PushID() calls and then pass an empty identifier.
128128
- always uses style.FramePadding for padding, to be consistent with other buttons. You may use PushStyleVar() to alter this.
129129
- As always we are keeping a redirection function available (will obsolete later).
130-
- Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.78 (June 2020): (#3361)
130+
- Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057)
131+
Must always pass a pointer value explicitly, NULL is ok.
132+
- Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.78 (June 2020): (#3361)
131133
- DragScalar(), DragScalarN(), DragFloat(), DragFloat2(), DragFloat3(), DragFloat4()
132134
- SliderScalar(), SliderScalarN(), SliderFloat(), SliderFloat2(), SliderFloat3(), SliderFloat4()
133135
- For old signatures ending with (..., const char* format, float power = 1.0f) -> use (..., format ImGuiSliderFlags_Logarithmic) if power != 1.0f.
@@ -149,6 +151,9 @@ Breaking changes:
149151

150152
Other Changes:
151153

154+
- Popups & Modals: fixed nested Begin() being erroneously input-inhibited. While it is
155+
unusual, you can nest a Begin() inside a popup or modal, it is occasionally useful to
156+
achieve certains things (e.g. some ways to implement suggestion popup #718, #4461).
152157
- InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing
153158
Enter keep the input active and select all text.
154159
- InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E)
@@ -186,8 +191,10 @@ Other Changes:
186191
- Debug Tools: Debug Log: Added 'IO' and 'Clipper' events logging.
187192
- Debug Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift, making it easier
188193
to use the Item Picker in e.g. menus. (#2673)
194+
- Docs: Fixed various typos in comments and documentations. (#5649, #5675, #5679) [@tocic, @lessigsx]
189195
- Demo: Improved "Constrained-resizing window" example, more clearly showcase aspect-ratio. (#5627)
190196
- Demo: Added more explicit "Center window" mode to "Overlay example". (#5618)
197+
- Examples: Added all SDL examples to default VS solution.
191198
- Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) [@scorpion-26]
192199
- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack]
193200
- Backends: Metal: Add dispatch synchronization. (#5447) [@luigifcruz]

0 commit comments

Comments
 (0)