1
0
mirror of https://github.com/ocornut/imgui.git synced 2024-11-27 17:10:57 +01:00

Updated Glossary (markdown)

omar 2024-04-19 16:07:13 +02:00
parent 092c912260
commit 300f459c32

@ -9,27 +9,27 @@
## General Terms
**Backends/Bindings**: a piece of code that connects your OS/platform/windowing system, graphics API or programming language to Dear ImGui. In the `examples/` folder we provide a bunch of `imgui_impl_xxxx` files which are backends for a variety of platforms and graphics API. Many other [third-party bindings](https://github.com/ocornut/imgui/wiki/Bindings) exist.
**Backends/Bindings**: a piece of code that connects your OS/platform/windowing system, graphics API or programming language to Dear ImGui. In the `examples/` folder we provide a bunch of `imgui_impl_xxxx` files which are backends for a variety of platforms and graphics API. See [BACKENDS.md](https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md). Many other [third-party backends/bindings](https://github.com/ocornut/imgui/wiki/Bindings) exist.
**Demo**: the demo code in `imgui_demo.cpp`, whose main entry point is the `ImGui::ShowDemoWindow()` function.
**Demo**: the demo code in `imgui_demo.cpp`, whose main entry point is the `ImGui::ShowDemoWindow()` function. See [interaction web version of the demo](https://pthom.github.io/imgui_manual_online/manual/imgui_manual.html).
**Docking**: refers to the feature (currently available in the `docking` branch) where multiple windows can be combined with each other, used to create tab bars, or laid out next to each other.
**Docking**: refers to the feature (currently available in the `docking` branch) where multiple windows can be combined with each other, used to create tab bars, or laid out next to each other. See [Docking](https://github.com/ocornut/imgui/wiki/Docking) page.
**Draw command, ImDrawCmd**: refers to one item within an `ImDrawList`. One draw command generally maps to one draw call in the underlying graphics API. Some draw commands hold callbacks or special functions that don't necessarily map to an actual draw call in the graphics API.
**Draw list, ImDrawList**: refers to the low-level rendering API which you can use to submit shapes (such as rectangles, lines, circles or text elements). The ImGui API uses the ImDrawList API to draw elements. You can easily access the drawlist of the current ImGui window using `ImGui::GetWindowDrawList()` or access special drawlists such as `ImGui::GetBackgroundDrawList()` (drawn before all ImGui windows) or `ImGui::GetForegroundDrawList()` (drawn after all ImGui windows). A draw list is generally comprised of multiple draw commands.
**Examples**: the example applications in the sub-folders of `examples/`. An example application generally combines one or two backends + dear imgui code + a main.cpp file to form a running application.
**Examples**: the example applications in the sub-folders of `examples/`. An example application generally combines one or two backends + dear imgui code + a main.cpp file to form a running application. Also see [EXAMPLES.md](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md).
**Font atlas**: a font atlas manage multiple fonts, which for performance reasons are generally rasterized and packed together into a single graphics texture. The font atlas also contains other graphics data that is used by ImGui and ImDrawList.
**Item**: (same as Widget): a single ImGui element (e.g. a `ImGui::Button()` or `ImGui::Text()` call).
**Navigation**: refer to the subsystem in charge of allowing full control of the UI using Gamepad or Keyboard inputs. Initially Dear ImGui mostly used mouse inputs, and the "navigation" feature allows directional navigation within a set of widgets.
**Navigation**: refer to the subsystem in charge of allowing full control of the UI using Gamepad or Keyboard inputs. Initially Dear ImGui mostly used mouse inputs, and the "navigation" feature allows directional navigation within a set of widgets, handling of tabbing, PageUp/PageDown etc.
**Metrics**: refers to the confusingly named `Dear ImGui Metrics` window, whose main entry point is the `ImGui::ShowMetricsWindow()` function. The Metrics window exposes lots of internal information about the state of your Dear ImGui context. Using it can help you debug and understand many problems you may have with Dear ImGui. It may also help you better understand how Dear ImGui works.
**Metrics**: refers to the confusingly named `Dear ImGui Metrics/Debugger` window, whose main entry point is the `ImGui::ShowMetricsWindow()` function. The Metrics window exposes lots of internal information about the state of your Dear ImGui context. Using it can help you debug and understand many problems you may have with Dear ImGui. It may also help you better understand how Dear ImGui works. See [Debug Tools](https://github.com/ocornut/imgui/wiki/Debug-Tools).
**Multi-Viewports**: refers to the feature (currently available in the `docking` branch) where Dear ImGui windows can easily be moved outside the boundaries of your main application window. The multi-viewports feature provides an interface to interact with bindings in order to create its own application windows to host the floating Dear ImGui windows.
**Multi-Viewports**: refers to the feature (currently available in the `docking` branch) where Dear ImGui windows can easily be moved outside the boundaries of your main application window. The multi-viewports feature provides an interface to interact with bindings in order to create its own application windows to host the floating Dear ImGui windows. See [Multi-Viewports](https://github.com/ocornut/imgui/wiki/Multi-Viewports).
**Root Window**: a top-level window created with `Begin()`. Child windows created with `BeginChild()` tend to share the same Root Window.
@ -53,13 +53,15 @@
**DeactivatedAfterEdit**: Widget was just made inactive and was in Edited state at least once during its Active state. (generally set for 1 frame).
Refer to `Demo->Widgets->Querying Item Status (Edited,Active,Hovered etc.)` for an interactive version of this.
## Docking Terms
([Read about Docking](https://github.com/ocornut/imgui/wiki/Docking))
![Docking](https://user-images.githubusercontent.com/8225057/97541627-c0dea300-19c5-11eb-9416-8bb255e189a1.png)
**Central Node**: a specific node inside in _Dockspace_ which: stay visible when empty, use leftover space instead of claiming space, can be made transparent (with the "PassthruCentralNode" flag). This is the node often perceived as an "empty node". It only gets initially created when a node is created with the "DockSpace" flag.
**Central Node**: a specific node inside in _Dockspace_ which: stay visible when empty, use leftover space instead of claiming space, can be made transparent (with the "PassthruCentralNode" flag). This is the node often perceived as an "empty node". It only gets initially created when a node is created with the "DockSpace" flag. CURRENTLY, CREATING A DOCKSPACE ALWAYS CREATES A CENTRAL NODE, WHICH HAS BEEN PROBLEMATIC FOR USERS WHO DON'T HAVE AN OBVIOUS "central" GAME/TOOL VIEWPORT.
**Docking** (noun): refers to the Docking subsystem as a whole.
@ -71,7 +73,7 @@
**Dock Node Hierarchy**: a dock node and all its child dock nodes.
**Dockspace**: a dock node whose Host Window has been created by the user. This implies that the position and size of the dock node is not controlled by the Docking system. It also implies that the lifetime of the dock node is not controlled by the Docking system.
**Dockspace**: a dock node whose Host Window has been created by the user. This implies that the position and size of the dock node is not controlled by the Docking system. It also implies that the lifetime of the dock node is not controlled by the Docking system.
**Floating Dock Node**: a dock node whose Host Window is automatically created and managed by the Docking system. They are generally freely moveable.