|
@@ -32,29 +32,34 @@ You can find binaries of some of those example applications at:
|
|
|
|
|
|
|
|
|
---------------------------------------
|
|
|
- MISC COMMENTS AND SUGGESTIONS
|
|
|
+ GETTING STARTED
|
|
|
---------------------------------------
|
|
|
|
|
|
- - 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 the comments and instruction at the top of each file.
|
|
|
+ Please read FAQ at http://www.dearimgui.org/faq
|
|
|
|
|
|
- - If you are using of the backend provided here, so you can copy the imgui_impl_xxx.cpp/h files
|
|
|
+ - If you are using of the backend provided here, you can add the imgui_impl_xxx.cpp/h files
|
|
|
to your project and use them unmodified. Each imgui_impl_xxxx.cpp comes with its own individual
|
|
|
- ChangeLog at the top of the .cpp files, so if you want to update them later it will be easier to
|
|
|
+ Changelog at the top of the .cpp files, so if you want to update them later it will be easier to
|
|
|
catch up with what changed.
|
|
|
|
|
|
- - Dear ImGui has 0 to 1 frame of lag for most behaviors, at 60 FPS your experience should be pleasant.
|
|
|
- However, consider that OS mouse cursors are typically drawn through a specific hardware accelerated path
|
|
|
- and will feel smoother than common GPU rendered contents (including Dear ImGui windows).
|
|
|
- You may experiment with the io.MouseDrawCursor flag to request Dear ImGui to draw a mouse cursor itself,
|
|
|
- to visualize the lag between a hardware cursor and a software cursor. However, rendering a mouse cursor
|
|
|
- at 60 FPS will feel slow. It might be beneficial to the user experience to switch to a software rendered
|
|
|
- cursor only when an interactive drag is in progress.
|
|
|
- Note that some setup or GPU drivers are likely to be causing extra lag depending on their settings.
|
|
|
- If you feel that dragging windows feels laggy and you are not sure who to blame: try to build an
|
|
|
- application drawing a shape directly under the mouse cursor.
|
|
|
+ - Dear ImGui has no particular extra lag for most behaviors, e.g. the value of 'io.MousePos' provided in
|
|
|
+ NewFrame() will result at the time of EndFrame()/Render() in a moved windows rendered following that mouse
|
|
|
+ movement. At 60 FPS your experience should be pleasant.
|
|
|
+ However, consider that OS mouse cursors are typically drawn through a very specific hardware accelerated
|
|
|
+ path and will feel smoother than the majority of contents rendererd via regular graphics API (including,
|
|
|
+ but not limited to Dear ImGui windows). Because UI rendering and interaction happens on the same plane as
|
|
|
+ the mouse, that disconnect may be jarring to particularly sensitive users.
|
|
|
+ You may experiment with enabling the io.MouseDrawCursor flag to request Dear ImGui to draw a mouse cursor
|
|
|
+ using the regular graphics API, to help you visualize the difference between a "hardware" cursor and a
|
|
|
+ regularly rendered software cursor.
|
|
|
+ However, rendering a mouse cursor at 60 FPS will feel sluggish so you likely won't want to enable that at
|
|
|
+ all times. It might be beneficial for the user experience to switch to a software rendered cursor _only_
|
|
|
+ when an interactive drag is in progress.
|
|
|
+ Note that some setup or GPU drivers are likely to be causing extra display lag depending on their settings.
|
|
|
+ If you feel that dragging windows feels laggy and you are not sure what the cause is: try to build a simple
|
|
|
+ drawing a flat 2D shape directly under the mouse cursor.
|
|
|
|
|
|
|
|
|
---------------------------------------
|
|
@@ -155,12 +160,12 @@ Those will allow you to create portable applications and will solve and abstract
|
|
|
Building:
|
|
|
Unfortunately in 2020 it is still tedious to create and maintain portable build files using external
|
|
|
libraries (the kind we're using here to create a window and render 3D triangles) without relying on
|
|
|
- third party software. For most examples here I choose to provide:
|
|
|
+ third party software. For most examples here we choose to provide:
|
|
|
- Makefiles for Linux/OSX
|
|
|
- Batch files for Visual Studio 2008+
|
|
|
- - A .sln project file for Visual Studio 2010+
|
|
|
+ - A .sln project file for Visual Studio 2012+
|
|
|
- Xcode project files for the Apple examples
|
|
|
- Please let me know if they don't work with your setup!
|
|
|
+ Please let us know if they don't work with your setup!
|
|
|
You can probably just import the imgui_impl_xxx.cpp/.h files into your own codebase or compile those
|
|
|
directly with a command-line compiler.
|
|
|
|