mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Docs: FAQ, Comments.
This commit is contained in:
parent
4b3c5ff5f1
commit
ff5299e0e0
@ -93,6 +93,8 @@ Other Changes:
|
|||||||
VERSION 1.74 (Released 2019-11-25)
|
VERSION 1.74 (Released 2019-11-25)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.74
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
- Removed redirecting functions/enums names that were marked obsolete in 1.52 (October 2017):
|
- Removed redirecting functions/enums names that were marked obsolete in 1.52 (October 2017):
|
||||||
- Begin() [old 5 args version] -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed
|
- Begin() [old 5 args version] -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed
|
||||||
@ -166,6 +168,8 @@ Other Changes:
|
|||||||
VERSION 1.73 (Released 2019-09-24)
|
VERSION 1.73 (Released 2019-09-24)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.73
|
||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
- Nav, Scrolling: Added support for Home/End key. (#787)
|
- Nav, Scrolling: Added support for Home/End key. (#787)
|
||||||
@ -226,6 +230,8 @@ Other Changes:
|
|||||||
VERSION 1.72b (Released 2019-07-31)
|
VERSION 1.72b (Released 2019-07-31)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.72b
|
||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
- Nav, Scrolling: Fixed programmatic scroll leading to a slightly incorrect scroll offset when
|
- Nav, Scrolling: Fixed programmatic scroll leading to a slightly incorrect scroll offset when
|
||||||
@ -241,6 +247,8 @@ Other Changes:
|
|||||||
VERSION 1.72 (Released 2019-07-27)
|
VERSION 1.72 (Released 2019-07-27)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.72
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
- Removed redirecting functions/enums names that were marked obsolete in 1.51 (June 2017):
|
- Removed redirecting functions/enums names that were marked obsolete in 1.51 (June 2017):
|
||||||
- ImGuiCol_Column*, ImGuiSetCond_* enums.
|
- ImGuiCol_Column*, ImGuiSetCond_* enums.
|
||||||
@ -322,6 +330,8 @@ Other Changes:
|
|||||||
VERSION 1.71 (Released 2019-06-12)
|
VERSION 1.71 (Released 2019-06-12)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.71
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
- IO: changed AddInputCharacter(unsigned short c) signature to AddInputCharacter(unsigned int c).
|
- IO: changed AddInputCharacter(unsigned short c) signature to AddInputCharacter(unsigned int c).
|
||||||
- Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Kept inline redirection function (will obsolete).
|
- Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Kept inline redirection function (will obsolete).
|
||||||
@ -402,6 +412,8 @@ Other Changes:
|
|||||||
VERSION 1.70 (Released 2019-05-06)
|
VERSION 1.70 (Released 2019-05-06)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.70
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
- ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness
|
- ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness
|
||||||
up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines,
|
up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines,
|
||||||
@ -489,6 +501,8 @@ Other Changes:
|
|||||||
VERSION 1.69 (Released 2019-03-13)
|
VERSION 1.69 (Released 2019-03-13)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.69
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively
|
- Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively
|
||||||
@ -565,6 +579,8 @@ Other Changes:
|
|||||||
VERSION 1.68 (Released 2019-02-19)
|
VERSION 1.68 (Released 2019-02-19)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.68
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Removed io.DisplayVisibleMin/DisplayVisibleMax (which were marked obsolete and removed from viewport/docking branch already).
|
- Removed io.DisplayVisibleMin/DisplayVisibleMax (which were marked obsolete and removed from viewport/docking branch already).
|
||||||
@ -633,6 +649,8 @@ Other Changes:
|
|||||||
VERSION 1.67 (Released 2019-01-14)
|
VERSION 1.67 (Released 2019-01-14)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.67
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Made it illegal to call Begin("") with an empty string. This somehow half-worked before but had various undesirable
|
- Made it illegal to call Begin("") with an empty string. This somehow half-worked before but had various undesirable
|
||||||
@ -696,6 +714,8 @@ Other Changes:
|
|||||||
VERSION 1.66b (Released 2018-12-01)
|
VERSION 1.66b (Released 2018-12-01)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.66b
|
||||||
|
|
||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
- Fixed a text rendering/clipping bug introduced in 1.66 (on 2018-10-12, commit ede3a3b9) that affect single ImDrawList::AddText()
|
- Fixed a text rendering/clipping bug introduced in 1.66 (on 2018-10-12, commit ede3a3b9) that affect single ImDrawList::AddText()
|
||||||
@ -713,6 +733,8 @@ Other Changes:
|
|||||||
VERSION 1.66 (Released 2018-11-22)
|
VERSION 1.66 (Released 2018-11-22)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.66
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete).
|
- Renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete).
|
||||||
@ -772,6 +794,8 @@ Other Changes:
|
|||||||
VERSION 1.65 (Released 2018-09-06)
|
VERSION 1.65 (Released 2018-09-06)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.65
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Renamed stb_truetype.h to imstb_truetype.h, stb_textedit.h to imstb_textedit.h, and
|
- Renamed stb_truetype.h to imstb_truetype.h, stb_textedit.h to imstb_textedit.h, and
|
||||||
@ -796,6 +820,8 @@ Other Changes:
|
|||||||
VERSION 1.64 (Released 2018-08-31)
|
VERSION 1.64 (Released 2018-08-31)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.64
|
||||||
|
|
||||||
Changes:
|
Changes:
|
||||||
|
|
||||||
- Moved README, CHANGELOG and TODO files to the docs/ folder.
|
- Moved README, CHANGELOG and TODO files to the docs/ folder.
|
||||||
@ -818,6 +844,8 @@ Changes:
|
|||||||
VERSION 1.63 (Released 2018-08-29)
|
VERSION 1.63 (Released 2018-08-29)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.63
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- Style: Renamed ImGuiCol_ModalWindowDarkening to ImGuiCol_ModalWindowDimBg for consistency with other features.
|
- Style: Renamed ImGuiCol_ModalWindowDarkening to ImGuiCol_ModalWindowDimBg for consistency with other features.
|
||||||
@ -910,6 +938,8 @@ Other Changes:
|
|||||||
VERSION 1.62 (Released 2018-06-22)
|
VERSION 1.62 (Released 2018-06-22)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.62
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- TreeNodeEx(): The helper ImGuiTreeNodeFlags_CollapsingHeader flag now include ImGuiTreeNodeFlags_NoTreePushOnOpen.
|
- TreeNodeEx(): The helper ImGuiTreeNodeFlags_CollapsingHeader flag now include ImGuiTreeNodeFlags_NoTreePushOnOpen.
|
||||||
@ -989,6 +1019,8 @@ Other Changes:
|
|||||||
VERSION 1.61 (Released 2018-05-14)
|
VERSION 1.61 (Released 2018-05-14)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Decorated log: https://github.com/ocornut/imgui/releases/tag/v1.61
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
|
|
||||||
- DragInt(): The default compile-time format string has been changed from "%.0f" to "%d", as we are not using integers internally
|
- DragInt(): The default compile-time format string has been changed from "%.0f" to "%d", as we are not using integers internally
|
||||||
|
107
docs/FAQ.md
107
docs/FAQ.md
@ -12,21 +12,16 @@ or view this file with any Markdown viewer.
|
|||||||
| **Q&A: Basics** |
|
| **Q&A: Basics** |
|
||||||
:---------------------------------------------------------- |
|
:---------------------------------------------------------- |
|
||||||
| [Where is the documentation?](#q-where-is-the-documentation) |
|
| [Where is the documentation?](#q-where-is-the-documentation) |
|
||||||
|
| [What is this library called?](#q-what-is-this-library-called) |
|
||||||
| [Which version should I get?](#q-which-version-should-i-get) |
|
| [Which version should I get?](#q-which-version-should-i-get) |
|
||||||
| [Why the names "Dear ImGui" vs "ImGui"?](#q-why-the-names-dear-imgui-vs-imgui) |
|
|
||||||
| **Q&A: Concerns** |
|
|
||||||
| [Who uses Dear ImGui?](#q-who-uses-dear-imgui) |
|
|
||||||
| [Can you create elaborate/serious tools with Dear ImGui?](#q-can-you-create-elaborateserious-tools-with-dear-imgui) |
|
|
||||||
| [Can you reskin the look of Dear ImGui?](#q-can-you-reskin-the-look-of-dear-imgui) |
|
|
||||||
| [Why using C++ (as opposed to C)?](#q-why-using-c-as-opposed-to-c) |
|
|
||||||
| **Q&A: Integration** |
|
| **Q&A: Integration** |
|
||||||
| [How can I tell whether to dispatch mouse/keyboard to Dear ImGui or to my application?](#q-how-can-i-tell-whether-to-dispatch-mousekeyboard-to-dear-imgui-or-to-my-application) |
|
| **[How can I tell whether to dispatch mouse/keyboard to Dear ImGui or to my application?](#q-how-can-i-tell-whether-to-dispatch-mousekeyboard-to-dear-imgui-or-to-my-application)** |
|
||||||
| [How can I enable keyboard or gamepad controls?](#q-how-can-i-enable-keyboard-or-gamepad-controls) |
|
| [How can I enable keyboard or gamepad controls?](#q-how-can-i-enable-keyboard-or-gamepad-controls) |
|
||||||
| [How can I use this on a machine without mouse, keyboard or screen? (input share, remote display)](#q-how-can-i-use-this-on-a-machine-without-mouse-keyboard-or-screen-input-share-remote-display) |
|
| [How can I use this on a machine without mouse, keyboard or screen? (input share, remote display)](#q-how-can-i-use-this-on-a-machine-without-mouse-keyboard-or-screen-input-share-remote-display) |
|
||||||
| [I integrated Dear ImGui in my engine and the text or lines are blurry..](#q-i-integrated-dear-imgui-in-my-engine-and-the-text-or-lines-are-blurry) |
|
| [I integrated Dear ImGui in my engine and the text or lines are blurry..](#q-i-integrated-dear-imgui-in-my-engine-and-the-text-or-lines-are-blurry) |
|
||||||
| [I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-clipping-or-disappearing-when-i-move-windows-around) |
|
| [I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-clipping-or-disappearing-when-i-move-windows-around) |
|
||||||
| **Q&A: Usage** |
|
| **Q&A: Usage** |
|
||||||
| [Why are multiple widgets reacting when I interact with a single one?<br>How can I have multiple widgets with the same label or with an empty label?](#q-why-are-multiple-widgets-reacting-when-i-interact-with-a-single-one-q-how-can-i-have-multiple-widgets-with-the-same-label-or-with-an-empty-label) |
|
| **[Why are multiple widgets reacting when I interact with a single one?<br>How can I have multiple widgets with the same label or with an empty label?](#q-why-are-multiple-widgets-reacting-when-i-interact-with-a-single-one-q-how-can-i-have-multiple-widgets-with-the-same-label-or-with-an-empty-label)** |
|
||||||
| [How can I display an image? What is ImTextureID, how does it work?](#q-how-can-i-display-an-image-what-is-imtextureid-how-does-it-work)|
|
| [How can I display an image? What is ImTextureID, how does it work?](#q-how-can-i-display-an-image-what-is-imtextureid-how-does-it-work)|
|
||||||
| [How can I use my own math types instead of ImVec2/ImVec4?](#q-how-can-i-use-my-own-math-types-instead-of-imvec2imvec4) |
|
| [How can I use my own math types instead of ImVec2/ImVec4?](#q-how-can-i-use-my-own-math-types-instead-of-imvec2imvec4) |
|
||||||
| [How can I interact with standard C++ types (such as std::string and std::vector)?](#q-how-can-i-interact-with-standard-c-types-such-as-stdstring-and-stdvector) |
|
| [How can I interact with standard C++ types (such as std::string and std::vector)?](#q-how-can-i-interact-with-standard-c-types-such-as-stdstring-and-stdvector) |
|
||||||
@ -36,6 +31,11 @@ or view this file with any Markdown viewer.
|
|||||||
| [How can I easily use icons in my application?](#q-how-can-i-easily-use-icons-in-my-application) |
|
| [How can I easily use icons in my application?](#q-how-can-i-easily-use-icons-in-my-application) |
|
||||||
| [How can I load multiple fonts?](#q-how-can-i-load-multiple-fonts) |
|
| [How can I load multiple fonts?](#q-how-can-i-load-multiple-fonts) |
|
||||||
| [How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic?](#q-how-can-i-display-and-input-non-latin-characters-such-as-chinese-japanese-korean-cyrillic) |
|
| [How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic?](#q-how-can-i-display-and-input-non-latin-characters-such-as-chinese-japanese-korean-cyrillic) |
|
||||||
|
| **Q&A: Concerns** |
|
||||||
|
| [Who uses Dear ImGui?](#q-who-uses-dear-imgui) |
|
||||||
|
| [Can you create elaborate/serious tools with Dear ImGui?](#q-can-you-create-elaborateserious-tools-with-dear-imgui) |
|
||||||
|
| [Can you reskin the look of Dear ImGui?](#q-can-you-reskin-the-look-of-dear-imgui) |
|
||||||
|
| [Why using C++ (as opposed to C)?](#q-why-using-c-as-opposed-to-c) |
|
||||||
| **Q&A: Community** |
|
| **Q&A: Community** |
|
||||||
| [How can I help?](#q-how-can-i-help) |
|
| [How can I help?](#q-how-can-i-help) |
|
||||||
|
|
||||||
@ -50,61 +50,31 @@ or view this file with any Markdown viewer.
|
|||||||
- See documentation and comments at the top of [imgui.cpp](https://github.com/ocornut/imgui/blob/master/imgui.cpp) + general API comments in [imgui.h](https://github.com/ocornut/imgui/blob/master/imgui.h).
|
- See documentation and comments at the top of [imgui.cpp](https://github.com/ocornut/imgui/blob/master/imgui.cpp) + general API comments in [imgui.h](https://github.com/ocornut/imgui/blob/master/imgui.h).
|
||||||
- The [Wiki](https://github.com/ocornut/imgui/wiki) has many resources and links.
|
- The [Wiki](https://github.com/ocornut/imgui/wiki) has many resources and links.
|
||||||
- The [Glossary](https://github.com/ocornut/imgui/wiki/Glossary) page may be useful.
|
- The [Glossary](https://github.com/ocornut/imgui/wiki/Glossary) page may be useful.
|
||||||
|
- The [Issues](https://github.com/ocornut/imgui/issues) section can be searched for past questions and issues.
|
||||||
- Your programming IDE is your friend, find the type or function declaration to find comments associated to it.
|
- Your programming IDE is your friend, find the type or function declaration to find comments associated to it.
|
||||||
|
- The `ImGui::ShowMetricsWindow()` function exposes lots of internal information and tools. Although it is primary designed as a debugging tool, having access to that information tends to help understands concepts.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Q. What is this library called?
|
||||||
|
|
||||||
|
**This library is called Dear ImGui**. Please refer to it as Dear ImGui (not ImGui, not IMGUI).
|
||||||
|
|
||||||
|
(The library misleadingly started its life in 2014 as "ImGui" due to the fact that I didn't give it a proper name when when I released 1.0, and had no particular expectation that it would take off. However, the term IMGUI (immediate-mode graphical user interface) was coined before and is being used in variety of other situations e.g. Unity uses it own implementation of the IMGUI paradigm. To reduce the ambiguity without affecting existing code bases, I have decided in December 2015 a fully qualified name "Dear ImGui" for this library.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Q: Which version should I get?
|
### Q: Which version should I get?
|
||||||
I occasionally tag [Releases](https://github.com/ocornut/imgui/releases) but it is generally safe and recommended to sync to master/latest. The library is fairly stable and regressions tend to be fixed fast when reported.
|
I occasionally tag [Releases](https://github.com/ocornut/imgui/releases) but it is generally safe and recommended to sync to master/latest. The library is fairly stable and regressions tend to be fixed fast when reported.
|
||||||
|
|
||||||
You may also peak at the [docking](https://github.com/ocornut/imgui/tree/docking) branch which includes:
|
You may use the [docking](https://github.com/ocornut/imgui/tree/docking) branch which includes:
|
||||||
- [Docking/Merging features](https://github.com/ocornut/imgui/issues/2109)
|
- [Docking features](https://github.com/ocornut/imgui/issues/2109)
|
||||||
- [Multi-viewport features](https://github.com/ocornut/imgui/issues/1542)
|
- [Multi-viewport features](https://github.com/ocornut/imgui/issues/1542)
|
||||||
|
|
||||||
Many projects are using this branch and it is kept in sync with master regularly.
|
Many projects are using this branch and it is kept in sync with master regularly.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Q: Why the names "Dear ImGui" vs "ImGui"?
|
|
||||||
|
|
||||||
**TL;DR: Please refer to this library as "Dear ImGui".**
|
|
||||||
|
|
||||||
The library started its life as "ImGui" due to the fact that I didn't give it a proper name when when I released 1.0, and had no particular expectation that it would take off. However, the term IMGUI (immediate-mode graphical user interface) was coined before and is being used in variety of other situations (e.g. Unity uses it own implementation of the IMGUI paradigm). To reduce the ambiguity without affecting existing code bases, I have decided on an alternate, longer name "Dear ImGui" that people can use to refer to this specific library.
|
|
||||||
|
|
||||||
##### [Return to Index](#index)
|
|
||||||
|
|
||||||
|
|
||||||
# Q&A: Concerns
|
|
||||||
|
|
||||||
### Q: Who uses Dear ImGui?
|
|
||||||
|
|
||||||
You may take a look at:
|
|
||||||
|
|
||||||
- [Quotes](https://github.com/ocornut/imgui/wiki/Quotes)
|
|
||||||
- [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui)
|
|
||||||
- [Gallery](https://github.com/ocornut/imgui/issues/2847)
|
|
||||||
|
|
||||||
### Q: Can you create elaborate/serious tools with Dear ImGui?
|
|
||||||
|
|
||||||
Yes. People have written game editors, data browsers, debuggers, profilers and all sort of non-trivial tools with the library. In my experience the simplicity of the API is very empowering. Your UI runs close to your live data. Make the tools always-on and everybody in the team will be inclined to create new tools (as opposed to more "offline" UI toolkits where only a fraction of your team effectively creates tools). The list of sponsors below is also an indicator that serious game teams have been using the library.
|
|
||||||
|
|
||||||
Dear ImGui is very programmer centric and the immediate-mode GUI paradigm might require you to readjust some habits before you can realize its full potential. Dear ImGui is about making things that are simple, efficient and powerful.
|
|
||||||
|
|
||||||
Dear ImGui is built to be efficient and scalable toward the needs for AAA-quality applications running all day. The IMGUI paradigm offers different opportunities for optimization that the more typical RMGUI paradigm.
|
|
||||||
|
|
||||||
### Q: Can you reskin the look of Dear ImGui?
|
|
||||||
|
|
||||||
Somehow. You can alter the look of the interface to some degree: changing colors, sizes, padding, rounding, fonts. However, as Dear ImGui is designed and optimized to create debug tools, the amount of skinning you can apply is limited. There is only so much you can stray away from the default look and feel of the interface. Dear ImGui is NOT designed to create user interface for games, although with ingenious use of the low-level API you can do it.
|
|
||||||
|
|
||||||
A reasonably skinned application may look like (screenshot from [#2529](https://github.com/ocornut/imgui/issues/2529#issuecomment-524281119))
|
|
||||||
![minipars](https://user-images.githubusercontent.com/314805/63589441-d9794f00-c5b1-11e9-8d96-cfc1b93702f7.png)
|
|
||||||
|
|
||||||
### Q: Why using C++ (as opposed to C)?
|
|
||||||
|
|
||||||
Dear ImGui takes advantage of a few C++ languages features for convenience but nothing anywhere Boost insanity/quagmire. Dear ImGui does NOT require C++11 so it can be used with most old C++ compilers. Dear ImGui doesn't use any C++ header file. Language-wise, function overloading and default parameters are used to make the API easier to use and code more terse. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors and templates (in the case of the ImVector<> class) are also relied on as a convenience.
|
|
||||||
|
|
||||||
There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/cimgui/cimgui) by Sonoro1234 and Stephan Dilly. It is designed for creating binding to other languages. If possible, I would suggest using your target language functionalities to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. Also see [Bindings](https://github.com/ocornut/imgui/wiki/Bindings) for various third-party bindings.
|
|
||||||
|
|
||||||
##### [Return to Index](#index)
|
##### [Return to Index](#index)
|
||||||
|
|
||||||
|
|
||||||
@ -365,7 +335,7 @@ void* my_void_ptr;
|
|||||||
my_void_ptr = (void*)my_dx11_srv; // cast a ID3D11ShaderResourceView* into an opaque void*
|
my_void_ptr = (void*)my_dx11_srv; // cast a ID3D11ShaderResourceView* into an opaque void*
|
||||||
my_dx11_srv = (ID3D11ShaderResourceView*)my_void_ptr; // cast a void* into a ID3D11ShaderResourceView*
|
my_dx11_srv = (ID3D11ShaderResourceView*)my_void_ptr; // cast a void* into a ID3D11ShaderResourceView*
|
||||||
```
|
```
|
||||||
Finally, you may call ImGui::ShowMetricsWindow() to explore/visualize/understand how the ImDrawList are generated.
|
Finally, you may call `ImGui::ShowMetricsWindow()` to explore/visualize/understand how the ImDrawList are generated.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -534,6 +504,41 @@ the default implementation of io.ImeSetInputScreenPosFn() to set your Microsoft
|
|||||||
|
|
||||||
##### [Return to Index](#index)
|
##### [Return to Index](#index)
|
||||||
|
|
||||||
|
|
||||||
|
# Q&A: Concerns
|
||||||
|
|
||||||
|
### Q: Who uses Dear ImGui?
|
||||||
|
|
||||||
|
You may take a look at:
|
||||||
|
|
||||||
|
- [Quotes](https://github.com/ocornut/imgui/wiki/Quotes)
|
||||||
|
- [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui)
|
||||||
|
- [Gallery](https://github.com/ocornut/imgui/issues/2847)
|
||||||
|
|
||||||
|
### Q: Can you create elaborate/serious tools with Dear ImGui?
|
||||||
|
|
||||||
|
Yes. People have written game editors, data browsers, debuggers, profilers and all sort of non-trivial tools with the library. In my experience the simplicity of the API is very empowering. Your UI runs close to your live data. Make the tools always-on and everybody in the team will be inclined to create new tools (as opposed to more "offline" UI toolkits where only a fraction of your team effectively creates tools). The list of sponsors below is also an indicator that serious game teams have been using the library.
|
||||||
|
|
||||||
|
Dear ImGui is very programmer centric and the immediate-mode GUI paradigm might require you to readjust some habits before you can realize its full potential. Dear ImGui is about making things that are simple, efficient and powerful.
|
||||||
|
|
||||||
|
Dear ImGui is built to be efficient and scalable toward the needs for AAA-quality applications running all day. The IMGUI paradigm offers different opportunities for optimization that the more typical RMGUI paradigm.
|
||||||
|
|
||||||
|
### Q: Can you reskin the look of Dear ImGui?
|
||||||
|
|
||||||
|
Somehow. You can alter the look of the interface to some degree: changing colors, sizes, padding, rounding, fonts. However, as Dear ImGui is designed and optimized to create debug tools, the amount of skinning you can apply is limited. There is only so much you can stray away from the default look and feel of the interface. Dear ImGui is NOT designed to create user interface for games, although with ingenious use of the low-level API you can do it.
|
||||||
|
|
||||||
|
A reasonably skinned application may look like (screenshot from [#2529](https://github.com/ocornut/imgui/issues/2529#issuecomment-524281119))
|
||||||
|
![minipars](https://user-images.githubusercontent.com/314805/63589441-d9794f00-c5b1-11e9-8d96-cfc1b93702f7.png)
|
||||||
|
|
||||||
|
### Q: Why using C++ (as opposed to C)?
|
||||||
|
|
||||||
|
Dear ImGui takes advantage of a few C++ languages features for convenience but nothing anywhere Boost insanity/quagmire. Dear ImGui does NOT require C++11 so it can be used with most old C++ compilers. Dear ImGui doesn't use any C++ header file. Language-wise, function overloading and default parameters are used to make the API easier to use and code more terse. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors and templates (in the case of the ImVector<> class) are also relied on as a convenience.
|
||||||
|
|
||||||
|
There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/cimgui/cimgui) by Sonoro1234 and Stephan Dilly. It is designed for creating binding to other languages. If possible, I would suggest using your target language functionalities to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. Also see [Bindings](https://github.com/ocornut/imgui/wiki/Bindings) for various third-party bindings.
|
||||||
|
|
||||||
|
##### [Return to Index](#index)
|
||||||
|
|
||||||
|
|
||||||
# Q&A: Community
|
# Q&A: Community
|
||||||
|
|
||||||
### Q: How can I help?
|
### Q: How can I help?
|
||||||
|
@ -35,6 +35,8 @@ You can find binaries of some of those example applications at:
|
|||||||
MISC COMMENTS AND SUGGESTIONS
|
MISC COMMENTS AND SUGGESTIONS
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
- Read FAQ at http://dearimgui.org/faq
|
||||||
|
|
||||||
- Please read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
- Please read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
||||||
Please read the comments and instruction at the top of each file.
|
Please read the comments and instruction at the top of each file.
|
||||||
|
|
||||||
|
59
imgui.cpp
59
imgui.cpp
@ -1,12 +1,19 @@
|
|||||||
// dear imgui, v1.75 WIP
|
// dear imgui, v1.75 WIP
|
||||||
// (main code and documentation)
|
// (main code and documentation)
|
||||||
|
|
||||||
// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code.
|
// Help:
|
||||||
// Newcomers, read 'Programmer guide' below for notes on how to setup Dear ImGui in your codebase.
|
// - Read FAQ at http://dearimgui.org/faq
|
||||||
// Get latest version at https://github.com/ocornut/imgui
|
// - Newcomers, read 'Programmer guide' below for notes on how to setup Dear ImGui in your codebase.
|
||||||
// Releases change-log at https://github.com/ocornut/imgui/releases
|
// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that.
|
||||||
// Technical Support for Getting Started https://github.com/ocornut/imgui/wiki
|
|
||||||
// Gallery (please post your screenshots/video there!): https://github.com/ocornut/imgui/issues/2847
|
// Resources:
|
||||||
|
// - FAQ http://dearimgui.org/faq
|
||||||
|
// - Homepage & latest https://github.com/ocornut/imgui
|
||||||
|
// - Releases & changelog https://github.com/ocornut/imgui/releases
|
||||||
|
// - Gallery https://github.com/ocornut/imgui/issues/2847 (please post your screenshots/video there!)
|
||||||
|
// - Glossary https://github.com/ocornut/imgui/wiki/Glossary
|
||||||
|
// - Wiki https://github.com/ocornut/imgui/wiki
|
||||||
|
// - Issues & support https://github.com/ocornut/imgui/issues
|
||||||
|
|
||||||
// Developed by Omar Cornut and every direct or indirect contributors to the GitHub.
|
// Developed by Omar Cornut and every direct or indirect contributors to the GitHub.
|
||||||
// See LICENSE.txt for copyright and licensing details (standard MIT License).
|
// See LICENSE.txt for copyright and licensing details (standard MIT License).
|
||||||
@ -155,8 +162,9 @@ CODE
|
|||||||
GETTING STARTED WITH INTEGRATING DEAR IMGUI IN YOUR CODE/ENGINE
|
GETTING STARTED WITH INTEGRATING DEAR IMGUI IN YOUR CODE/ENGINE
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
- Run and study the examples and demo in imgui_demo.cpp to get acquainted with the library.
|
- Run and study the examples and demo in imgui_demo.cpp to get acquainted with the library.
|
||||||
|
- In the majority of cases you should be able to use unmodified back-ends files available in the examples/ folder.
|
||||||
- Add the Dear ImGui source files to your projects or using your preferred build system.
|
- Add the Dear ImGui source files to your projects or using your preferred build system.
|
||||||
It is recommended you build and statically link the .cpp files as part of your project and not as shared library (DLL).
|
It is recommended you build and statically link the .cpp files as part of your project and NOT as shared library (DLL).
|
||||||
- You can later customize the imconfig.h file to tweak some compile-time behavior, such as integrating Dear ImGui types with your own maths types.
|
- You can later customize the imconfig.h file to tweak some compile-time behavior, such as integrating Dear ImGui types with your own maths types.
|
||||||
- When using Dear ImGui, your programming IDE is your friend: follow the declaration of variables, functions and types to find comments about them.
|
- When using Dear ImGui, your programming IDE is your friend: follow the declaration of variables, functions and types to find comments about them.
|
||||||
- Dear ImGui never touches or knows about your GPU state. The only function that knows about GPU is the draw function that you provide.
|
- Dear ImGui never touches or knows about your GPU state. The only function that knows about GPU is the draw function that you provide.
|
||||||
@ -176,7 +184,7 @@ CODE
|
|||||||
// TODO: Fill optional fields of the io structure later.
|
// TODO: Fill optional fields of the io structure later.
|
||||||
// TODO: Load TTF/OTF fonts if you don't want to use the default font.
|
// TODO: Load TTF/OTF fonts if you don't want to use the default font.
|
||||||
|
|
||||||
// Initialize helper Platform and Renderer bindings (here we are using imgui_impl_win32 and imgui_impl_dx11)
|
// Initialize helper Platform and Renderer bindings (here we are using imgui_impl_win32.cpp and imgui_impl_dx11.cpp)
|
||||||
ImGui_ImplWin32_Init(hwnd);
|
ImGui_ImplWin32_Init(hwnd);
|
||||||
ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
|
ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
|
||||||
|
|
||||||
@ -597,37 +605,17 @@ CODE
|
|||||||
- Your programming IDE is your friend, find the type or function declaration to find comments
|
- Your programming IDE is your friend, find the type or function declaration to find comments
|
||||||
associated to it.
|
associated to it.
|
||||||
|
|
||||||
|
Q: What is this library called?
|
||||||
Q: Which version should I get?
|
Q: Which version should I get?
|
||||||
Q: Why the names "Dear ImGui" vs "ImGui"?
|
|
||||||
>> This library is called "Dear ImGui", please don't call it "ImGui" :)
|
>> This library is called "Dear ImGui", please don't call it "ImGui" :)
|
||||||
>> See https://www.dearimgui.org/faq
|
>> See https://www.dearimgui.org/faq
|
||||||
|
|
||||||
Q&A: Concerns
|
|
||||||
=============
|
|
||||||
|
|
||||||
Q: Who uses Dear ImGui?
|
|
||||||
Q: Can you create elaborate/serious tools with Dear ImGui?
|
|
||||||
Q: Can you reskin the look of Dear ImGui?
|
|
||||||
Q: Why using C++ (as opposed to C)?
|
|
||||||
>> See https://www.dearimgui.org/faq
|
|
||||||
|
|
||||||
Q&A: Integration
|
Q&A: Integration
|
||||||
================
|
================
|
||||||
|
|
||||||
Q: How can I tell whether to dispatch mouse/keyboard to Dear ImGui or to my application?
|
Q: How can I tell whether to dispatch mouse/keyboard to Dear ImGui or to my application?
|
||||||
A: You can read the 'io.WantCaptureMouse', 'io.WantCaptureKeyboard' and 'io.WantTextInput' flags from the ImGuiIO structure (e.g. if (ImGui::GetIO().WantCaptureMouse) { ... } )
|
A: You should read the 'io.WantCaptureMouse', 'io.WantCaptureKeyboard' and 'io.WantTextInput' flags!
|
||||||
- When 'io.WantCaptureMouse' is set, imgui wants to use your mouse state, and you may want to discard/hide the inputs from the rest of your application.
|
>> See https://www.dearimgui.org/faq for fully detailed answer. You really want to read this.
|
||||||
- When 'io.WantCaptureKeyboard' is set, imgui wants to use your keyboard state, and you may want to discard/hide the inputs from the rest of your application.
|
|
||||||
- When 'io.WantTextInput' is set to may want to notify your OS to popup an on-screen keyboard, if available (e.g. on a mobile phone, or console OS).
|
|
||||||
Note: you should always pass your mouse/keyboard inputs to imgui, even when the io.WantCaptureXXX flag are set false.
|
|
||||||
This is because imgui needs to detect that you clicked in the void to unfocus its own windows.
|
|
||||||
Note: The 'io.WantCaptureMouse' is more accurate that any attempt to "check if the mouse is hovering a window" (don't do that!).
|
|
||||||
It handle mouse dragging correctly (both dragging that started over your application or over an imgui window) and handle e.g. modal windows blocking inputs.
|
|
||||||
Those flags are updated by ImGui::NewFrame(). Preferably read the flags after calling NewFrame() if you can afford it, but reading them before is also
|
|
||||||
perfectly fine, as the bool toggle fairly rarely. If you have on a touch device, you might find use for an early call to UpdateHoveredWindowAndCaptureFlags().
|
|
||||||
Note: Text input widget releases focus on "Return KeyDown", so the subsequent "Return KeyUp" event that your application receive will typically
|
|
||||||
have 'io.WantCaptureKeyboard=false'. Depending on your application logic it may or not be inconvenient. You might want to track which key-downs
|
|
||||||
were targeted for Dear ImGui, e.g. with an array of bool, and filter out the corresponding key-ups.)
|
|
||||||
|
|
||||||
Q. How can I enable keyboard controls?
|
Q. How can I enable keyboard controls?
|
||||||
Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display)
|
Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display)
|
||||||
@ -771,6 +759,15 @@ CODE
|
|||||||
Q: How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic?
|
Q: How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic?
|
||||||
>> See https://www.dearimgui.org/faq and docs/FONTS.txt
|
>> See https://www.dearimgui.org/faq and docs/FONTS.txt
|
||||||
|
|
||||||
|
Q&A: Concerns
|
||||||
|
=============
|
||||||
|
|
||||||
|
Q: Who uses Dear ImGui?
|
||||||
|
Q: Can you create elaborate/serious tools with Dear ImGui?
|
||||||
|
Q: Can you reskin the look of Dear ImGui?
|
||||||
|
Q: Why using C++ (as opposed to C)?
|
||||||
|
>> See https://www.dearimgui.org/faq
|
||||||
|
|
||||||
Q&A: Community
|
Q&A: Community
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
18
imgui.h
18
imgui.h
@ -1,10 +1,20 @@
|
|||||||
// dear imgui, v1.75 WIP
|
// dear imgui, v1.75 WIP
|
||||||
// (headers)
|
// (headers)
|
||||||
|
|
||||||
// See imgui.cpp file for documentation.
|
// Help:
|
||||||
// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code.
|
// - Read FAQ at http://dearimgui.org/faq
|
||||||
// Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
// - Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
||||||
// Get latest version at https://github.com/ocornut/imgui
|
// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that.
|
||||||
|
// Read imgui.cpp for more details, documentation and comments.
|
||||||
|
|
||||||
|
// Resources:
|
||||||
|
// - FAQ http://dearimgui.org/faq
|
||||||
|
// - Homepage & latest https://github.com/ocornut/imgui
|
||||||
|
// - Releases & changelog https://github.com/ocornut/imgui/releases
|
||||||
|
// - Gallery https://github.com/ocornut/imgui/issues/2847 (please post your screenshots/video there!)
|
||||||
|
// - Glossary https://github.com/ocornut/imgui/wiki/Glossary
|
||||||
|
// - Wiki https://github.com/ocornut/imgui/wiki
|
||||||
|
// - Issues & support https://github.com/ocornut/imgui/issues
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
// dear imgui, v1.75 WIP
|
// dear imgui, v1.75 WIP
|
||||||
// (demo code)
|
// (demo code)
|
||||||
|
|
||||||
|
// Help:
|
||||||
|
// - Read FAQ at http://dearimgui.org/faq
|
||||||
|
// - Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase.
|
||||||
|
// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that.
|
||||||
|
// Read imgui.cpp for more details, documentation and comments.
|
||||||
|
// Get latest version at https://github.com/ocornut/imgui
|
||||||
|
|
||||||
// Message to the person tempted to delete this file when integrating Dear ImGui into their code base:
|
// Message to the person tempted to delete this file when integrating Dear ImGui into their code base:
|
||||||
// Do NOT remove this file from your project! Think again! It is the most useful reference code that you and other coders
|
// Do NOT remove this file from your project! Think again! It is the most useful reference code that you and other coders
|
||||||
// will want to refer to and call. Have the ImGui::ShowDemoWindow() function wired in an always-available debug menu of
|
// will want to refer to and call. Have the ImGui::ShowDemoWindow() function wired in an always-available debug menu of
|
||||||
|
Loading…
Reference in New Issue
Block a user