mirror of
https://github.com/ocornut/imgui.git
synced 2026-03-27 23:37:03 -05:00
Updated About the IMGUI paradigm (markdown)
@@ -4,7 +4,8 @@ THIS IS WIP/DRAFT / [Discuss this article](https://github.com/ocornut/imgui/issu
|
||||
|
||||
**This is an attempt at explaining what the IMGUI paradigm stands for, and what it could be**.
|
||||
|
||||
Please note the [References](#references) section where several good articles have been written about this topic.
|
||||
Read first: [FAQ entry: What is the difference between Dear ImGui and traditional UI toolkits?](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md#q-what-is-the-difference-between-dear-imgui-and-traditional-ui-toolkits).
|
||||
<BR>Also note [References](#references) section where several good articles have been written about this topic.
|
||||
|
||||
Proponent of the IMGUI paradigm have noticed that it was widely misunderstood, over and over.
|
||||
As of ~~Feb 2021~~ January 2024, even the [IMGUI Wikipedia page](https://en.wikipedia.org/wiki/Immediate_mode_GUI) is completely off the mark and incorrect. (As of August 2024 the page seemingly have been nuked).
|
||||
@@ -113,13 +114,15 @@ The existence of those two terms effectively has hindered both discussions and r
|
||||
|
||||
### Half of a definition
|
||||
|
||||
@ocornut's attempt for a definition (WIP, 2021)
|
||||
@ocornut's attempt for a definition.
|
||||
|
||||
What we care about:
|
||||
|
||||
- IMGUI refers to the API: literally the interface between the application and the UI system.
|
||||
- The API tries to minimize the application having to retain data related to the UI system.
|
||||
- The API tries to minimize the UI system having to retain data related to the application.
|
||||
- An IMGUI API favor the application code owning its data and being the single source of truth for it.
|
||||
- An IMGUI API tries to minimize the application having to retain/manage data related to the UI system.
|
||||
- An IMGUI API tries to minimize the UI system having to retain/manage data related to the application.
|
||||
- Synchronization between application data and UI data is natural and less error-prone.
|
||||
- IMGUI does NOT refer to the implementation. Whatever happens inside the UI system doesn't matter.
|
||||
|
||||
This is in comparison with typical RMGUI ("retained-mode UI"):
|
||||
@@ -140,9 +143,7 @@ What it doesn't stands for:
|
||||
- IMGUI does not mean that the library can or cannot support feature x or y.
|
||||
- IMGUI does not mean that the library is more or less portable.
|
||||
|
||||
TODO: Each of those points could be further developed. We could try to describe how common UI libraries (of all types) stand on a given topic. We could also describe less explored paths and envision what new UI libraries could do.
|
||||
|
||||
It's particularly important we develop this section to dissociate the promise (sometimes unfulfilled) vs current implementation. The full-feature bell-and-whistle promise is more likely to be ever fulfilled by a UI library if people understand that it is possible.
|
||||
TL;DR; It does not matter much. Consider specific properties of each library rather than comparing two umbrella concepts.
|
||||
|
||||
### Modeless write-up
|
||||
|
||||
@@ -179,6 +180,7 @@ _A lot in ui depends on the problem on hand so I feel there is no silver bullet.
|
||||
|
||||
### References
|
||||
|
||||
- [FAQ entry: What is the difference between Dear ImGui and traditional UI toolkits?](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md#q-what-is-the-difference-between-dear-imgui-and-traditional-ui-toolkits).
|
||||
- [Johannes 'johno' Norneby's article](http://www.johno.se/book/imgui.html), 2007.
|
||||
- [A presentation by Rickard Gustafsson and Johannes Algelind](http://www.cse.chalmers.se/edu/year/2011/course/TDA361/Advanced%20Computer%20Graphics/IMGUI.pdf), 2011.
|
||||
- [Jari Komppa's tutorial on building an IMGUI library](http://iki.fi/sol/imgui/), @jarikomppa, 2006.
|
||||
|
||||
Reference in New Issue
Block a user