mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Examples Readme and Changelog tweaks, added #2527, re-ordered examples/README alphabetically.
This commit is contained in:
parent
5ecc9d5865
commit
6c196cf432
@ -34,8 +34,9 @@ HOW TO UPDATE?
|
|||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
Breaking Changes:
|
Breaking Changes:
|
||||||
- ImDrawList: Fixed rectangles with thick lines (>1.0f) not being as thick as requested. (#2518)
|
- ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness
|
||||||
If you have custom rendering using thick lines, they will appear thicker now.
|
up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines,
|
||||||
|
they will appear a little thicker now. (#2518) [@rmitton]
|
||||||
- Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead.
|
- Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead.
|
||||||
Kept inline redirection function.
|
Kept inline redirection function.
|
||||||
- Examples: Vulkan: Added MinImageCount/ImageCount fields in ImGui_ImplVulkan_InitInfo, required
|
- Examples: Vulkan: Added MinImageCount/ImageCount fields in ImGui_ImplVulkan_InitInfo, required
|
||||||
@ -50,8 +51,8 @@ Other Changes:
|
|||||||
Examples: Added support for ImDrawCallback_ResetRenderState in all renderer back-ends. Each
|
Examples: Added support for ImDrawCallback_ResetRenderState in all renderer back-ends. Each
|
||||||
renderer code setting up initial render state has been moved to a function so it could be
|
renderer code setting up initial render state has been moved to a function so it could be
|
||||||
called at the start of rendering and when a ResetRenderState is requested. [@ocornut, @bear24rw]
|
called at the start of rendering and when a ResetRenderState is requested. [@ocornut, @bear24rw]
|
||||||
- InputText: Fixed selection background starts rendering one frame after the cursor movement
|
- InputText: Fixed selection background rendering one frame after the cursor movement when
|
||||||
when first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul]
|
first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul]
|
||||||
- InputText: Work-around for buggy standard libraries where isprint('\t') returns true. (#2467, #1336)
|
- InputText: Work-around for buggy standard libraries where isprint('\t') returns true. (#2467, #1336)
|
||||||
- InputText: Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted
|
- InputText: Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted
|
||||||
if the back-end provided both Key and Character input. (#2467, #1336)
|
if the back-end provided both Key and Character input. (#2467, #1336)
|
||||||
@ -68,7 +69,7 @@ Other Changes:
|
|||||||
highlight from parent menu items earlier than necessary while approaching the child menu.
|
highlight from parent menu items earlier than necessary while approaching the child menu.
|
||||||
- Window: Close button is horizontally aligned with style.FramePadding.x.
|
- Window: Close button is horizontally aligned with style.FramePadding.x.
|
||||||
- Window: Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active.
|
- Window: Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active.
|
||||||
- Window: Fixed SetNextWindowSizeConstraints() with non-rounded positions making windows drift. (#2067, 2530)
|
- Window: Fixed SetNextWindowSizeConstraints() with non-rounded positions making windows drift. (#2067, #2530)
|
||||||
- Popups: Closing a popup restores the focused/nav window in place at the time of the popup opening,
|
- Popups: Closing a popup restores the focused/nav window in place at the time of the popup opening,
|
||||||
instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517)
|
instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517)
|
||||||
Among other things, this allows opening a popup while no window are focused, and pressing Escape to
|
Among other things, this allows opening a popup while no window are focused, and pressing Escape to
|
||||||
@ -97,8 +98,9 @@ Other Changes:
|
|||||||
- Demo: Improved trees in columns demo.
|
- Demo: Improved trees in columns demo.
|
||||||
- Examples: OpenGL: Added a dummy GL call + comments in ImGui_ImplOpenGL3_Init() to detect uninitialized
|
- Examples: OpenGL: Added a dummy GL call + comments in ImGui_ImplOpenGL3_Init() to detect uninitialized
|
||||||
GL function loaders early, and help users understand what they are missing. (#2421)
|
GL function loaders early, and help users understand what they are missing. (#2421)
|
||||||
- Examples: Emscripten: Added Emscripten+SDL+GLES2 example. (#2494, #2492, #2351, #336) [@nicolasnoble, @redblobgames]
|
|
||||||
- Examples: SDL: Added support for SDL_GameController gamepads (enable with ImGuiConfigFlags_NavEnableGamepad). (#2509) [@DJLink]
|
- Examples: SDL: Added support for SDL_GameController gamepads (enable with ImGuiConfigFlags_NavEnableGamepad). (#2509) [@DJLink]
|
||||||
|
- Examples: Emscripten: Added Emscripten+SDL+GLES2 example. (#2494, #2492, #2351, #336) [@nicolasnoble, @redblobgames]
|
||||||
|
- Examples: Metal: Added Glfw+Metal example. (#2527) [@bear24rw]
|
||||||
- Examples: OpenGL3: Minor tweaks + not calling glBindBuffer more than necessary in the render loop.
|
- Examples: OpenGL3: Minor tweaks + not calling glBindBuffer more than necessary in the render loop.
|
||||||
- Examples: Vulkan: Fixed in-flight buffers issues when using multi-viewports. (#2461, #2348, #2378, #2097)
|
- Examples: Vulkan: Fixed in-flight buffers issues when using multi-viewports. (#2461, #2348, #2378, #2097)
|
||||||
- Examples: Vulkan: Added missing support for 32-bit indices (#define ImDrawIdx unsigned int).
|
- Examples: Vulkan: Added missing support for 32-bit indices (#define ImDrawIdx unsigned int).
|
||||||
|
@ -91,7 +91,7 @@ Most the example bindings are split in 2 parts:
|
|||||||
This is counter-intuitive, but this will get you running faster! Once you better understand how imgui
|
This is counter-intuitive, but this will get you running faster! Once you better understand how imgui
|
||||||
works and is bound, you can rewrite the code using your own systems.
|
works and is bound, you can rewrite the code using your own systems.
|
||||||
|
|
||||||
- Road-map: Dear ImGui 1.70 (WIP currently in the "viewport" branch) will allows imgui windows to be
|
- Road-map: Dear ImGui 1.80 (WIP currently in the "docking" branch) will allows imgui windows to be
|
||||||
seamlessly detached from the main application window. This is achieved using an extra layer to the
|
seamlessly detached from the main application window. This is achieved using an extra layer to the
|
||||||
platform and renderer bindings, which allows imgui to communicate platform-specific requests.
|
platform and renderer bindings, which allows imgui to communicate platform-specific requests.
|
||||||
If you decide to use unmodified imgui_impl_xxxx.cpp files, you will automatically benefit from
|
If you decide to use unmodified imgui_impl_xxxx.cpp files, you will automatically benefit from
|
||||||
@ -101,7 +101,7 @@ Most the example bindings are split in 2 parts:
|
|||||||
List of Platforms Bindings in this repository:
|
List of Platforms Bindings in this repository:
|
||||||
|
|
||||||
imgui_impl_glfw.cpp ; GLFW (Windows, macOS, Linux, etc.) http://www.glfw.org/
|
imgui_impl_glfw.cpp ; GLFW (Windows, macOS, Linux, etc.) http://www.glfw.org/
|
||||||
imgui_impl_osx.mm ; macOS native API
|
imgui_impl_osx.mm ; macOS native API (not as feature complete as glfw/sdl back-ends)
|
||||||
imgui_impl_sdl.cpp ; SDL2 (Windows, macOS, Linux, iOS, Android) https://www.libsdl.org
|
imgui_impl_sdl.cpp ; SDL2 (Windows, macOS, Linux, iOS, Android) https://www.libsdl.org
|
||||||
imgui_impl_win32.cpp ; Win32 native API (Windows)
|
imgui_impl_win32.cpp ; Win32 native API (Windows)
|
||||||
imgui_impl_glut.cpp ; GLUT/FreeGLUT (not recommended unless really miss the 90's)
|
imgui_impl_glut.cpp ; GLUT/FreeGLUT (not recommended unless really miss the 90's)
|
||||||
@ -151,40 +151,33 @@ Building:
|
|||||||
directly with a command-line compiler.
|
directly with a command-line compiler.
|
||||||
|
|
||||||
|
|
||||||
example_win32_directx9/
|
example_allegro5/
|
||||||
DirectX9 example, Windows only.
|
Allegro 5 example.
|
||||||
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx9.cpp
|
= main.cpp + imgui_impl_allegro5.cpp
|
||||||
|
|
||||||
example_win32_directx10/
|
|
||||||
DirectX10 example, Windows only.
|
|
||||||
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx10.cpp
|
|
||||||
|
|
||||||
example_win32_directx11/
|
|
||||||
DirectX11 example, Windows only.
|
|
||||||
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx11.cpp
|
|
||||||
|
|
||||||
example_win32_directx12/
|
|
||||||
DirectX12 example, Windows only.
|
|
||||||
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp
|
|
||||||
This is quite long and tedious, because: DirectX12.
|
|
||||||
|
|
||||||
example_apple_metal/
|
example_apple_metal/
|
||||||
OSX & iOS + Metal.
|
OSX & iOS + Metal.
|
||||||
= main.m + imgui_impl_osx.mm + imgui_impl_metal.mm
|
= main.m + imgui_impl_osx.mm + imgui_impl_metal.mm
|
||||||
It is based on the "cross-platform" game template provided with Xcode as of Xcode 9.
|
It is based on the "cross-platform" game template provided with Xcode as of Xcode 9.
|
||||||
(NB: you may still want to use GLFW or SDL which will also support Windows, Linux along with OSX.)
|
(NB: imgui_impl_osx.mm is currently not as feature complete as other platforms back-ends.
|
||||||
|
You may prefer to use the GLFW Or SDL back-ends, which will also support Windows and Linux.)
|
||||||
|
|
||||||
example_apple_opengl2/
|
example_apple_opengl2/
|
||||||
OSX + OpenGL2.
|
OSX + OpenGL2.
|
||||||
= main.mm + imgui_impl_osx.mm + imgui_impl_opengl2.cpp
|
= main.mm + imgui_impl_osx.mm + imgui_impl_opengl2.cpp
|
||||||
(NB: you may still want to use GLFW or SDL which will also support Windows, Linux along with OSX.)
|
(NB: imgui_impl_osx.mm is currently not as feature complete as other platforms back-ends.
|
||||||
|
You may prefer to use the GLFW Or SDL back-ends, which will also support Windows and Linux.)
|
||||||
|
|
||||||
example_empscripten:
|
example_empscripten:
|
||||||
Emcripten + SDL2 + OpenGL3+/ES2/ES3 example.
|
Emcripten + SDL2 + OpenGL3+/ES2/ES3 example.
|
||||||
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp
|
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp
|
||||||
Note that other examples based on SDL or GLFW + GL could easily be modified to work with Emscripten.
|
Note that other examples based on SDL or GLFW + OpenGL could easily be modified to work with Emscripten.
|
||||||
We provide this to make the Emscripten differences obvious, and have them not pollute all other examples.
|
We provide this to make the Emscripten differences obvious, and have them not pollute all other examples.
|
||||||
|
|
||||||
|
example_glfw_metal/
|
||||||
|
GLFW (Mac) + Vulkan example.
|
||||||
|
= main.mm + imgui_impl_glfw.cpp + imgui_impl_metal.mm.
|
||||||
|
|
||||||
example_glfw_opengl2/
|
example_glfw_opengl2/
|
||||||
GLFW + OpenGL2 example (legacy, fixed pipeline).
|
GLFW + OpenGL2 example (legacy, fixed pipeline).
|
||||||
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp
|
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp
|
||||||
@ -200,12 +193,24 @@ example_glfw_opengl3/
|
|||||||
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp
|
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp
|
||||||
This uses more modern OpenGL calls and custom shaders.
|
This uses more modern OpenGL calls and custom shaders.
|
||||||
Prefer using that if you are using modern OpenGL in your application (anything with shaders).
|
Prefer using that if you are using modern OpenGL in your application (anything with shaders).
|
||||||
|
(Please be mindful that accessing OpenGL3+ functions requires a function loader, which are a frequent
|
||||||
|
source for confusion for new users. We use a loader in imgui_impl_opengl3.cpp which may be different
|
||||||
|
from the one your app normally use. Read imgui_impl_opengl3.h for details and how to change it.)
|
||||||
|
|
||||||
example_glfw_vulkan/
|
example_glfw_vulkan/
|
||||||
GLFW (Win32, Mac, Linux) + Vulkan example.
|
GLFW (Win32, Mac, Linux) + Vulkan example.
|
||||||
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp
|
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp
|
||||||
This is quite long and tedious, because: Vulkan.
|
This is quite long and tedious, because: Vulkan.
|
||||||
|
|
||||||
|
example_glut_opengl2/
|
||||||
|
GLUT (e.g., FreeGLUT on Linux/Windows, GLUT framework on OSX) + OpenGL2.
|
||||||
|
= main.cpp + imgui_impl_glut.cpp + imgui_impl_opengl2.cpp
|
||||||
|
Note that GLUT/FreeGLUT is largely obsolete software, prefer using GLFW or SDL.
|
||||||
|
|
||||||
|
example_marmalade/
|
||||||
|
Marmalade example using IwGx.
|
||||||
|
= main.cpp + imgui_impl_marmalade.cpp
|
||||||
|
|
||||||
example_sdl_opengl2/
|
example_sdl_opengl2/
|
||||||
SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
|
SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
|
||||||
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl2.cpp
|
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl2.cpp
|
||||||
@ -221,20 +226,28 @@ example_sdl_opengl3/
|
|||||||
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp
|
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp
|
||||||
This uses more modern OpenGL calls and custom shaders.
|
This uses more modern OpenGL calls and custom shaders.
|
||||||
Prefer using that if you are using modern OpenGL in your application (anything with shaders).
|
Prefer using that if you are using modern OpenGL in your application (anything with shaders).
|
||||||
|
(Please be mindful that accessing OpenGL3+ functions requires a function loader, which are a frequent
|
||||||
|
source for confusion for new users. We use a loader in imgui_impl_opengl3.cpp which may be different
|
||||||
|
from the one your app normally use. Read imgui_impl_opengl3.h for details and how to change it.)
|
||||||
|
|
||||||
example_sdl_vulkan/
|
example_sdl_vulkan/
|
||||||
SDL2 (Win32, Mac, Linux, etc.) + Vulkan example.
|
SDL2 (Win32, Mac, Linux, etc.) + Vulkan example.
|
||||||
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_vulkan.cpp
|
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_vulkan.cpp
|
||||||
This is quite long and tedious, because: Vulkan.
|
This is quite long and tedious, because: Vulkan.
|
||||||
|
|
||||||
example_allegro5/
|
example_win32_directx9/
|
||||||
Allegro 5 example.
|
DirectX9 example, Windows only.
|
||||||
= main.cpp + imgui_impl_allegro5.cpp
|
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx9.cpp
|
||||||
|
|
||||||
example_glut_opengl2/
|
example_win32_directx10/
|
||||||
GLUT (e.g., FreeGLUT on Linux/Windows, GLUT framework on OSX) + OpenGL2.
|
DirectX10 example, Windows only.
|
||||||
= main.cpp + imgui_impl_glut.cpp + imgui_impl_opengl2.cpp
|
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx10.cpp
|
||||||
|
|
||||||
example_marmalade/
|
example_win32_directx11/
|
||||||
Marmalade example using IwGx.
|
DirectX11 example, Windows only.
|
||||||
= main.cpp + imgui_impl_marmalade.cpp
|
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx11.cpp
|
||||||
|
|
||||||
|
example_win32_directx12/
|
||||||
|
DirectX12 example, Windows only.
|
||||||
|
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp
|
||||||
|
This is quite long and tedious, because: DirectX12.
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
||||||
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
||||||
|
// !!! Prefer using GLFW Or SDL instead!
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "../imgui_impl_glut.h"
|
#include "../imgui_impl_glut.h"
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
||||||
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
||||||
|
// !!! Prefer using GLFW or SDL instead!
|
||||||
|
|
||||||
// Issues:
|
// Issues:
|
||||||
// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
|
// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
// !!! GLUT/FreeGLUT IS OBSOLETE SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
|
||||||
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
// !!! If someone or something is teaching you GLUT in 2019, you are being abused. Please show some resistance. !!!
|
||||||
|
// !!! Prefer using GLFW or SDL instead!
|
||||||
|
|
||||||
// Issues:
|
// Issues:
|
||||||
// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
|
// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
|
||||||
|
@ -369,7 +369,7 @@ CODE
|
|||||||
When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
||||||
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
||||||
|
|
||||||
- 2019/04/29 (1.70) - fixed ImDrawList rectangles with thick lines (>1.0f) not being as thick as requested. If you have custom rendering using rectangles with thick lines, they will appear thicker now.
|
- 2019/04/29 (1.70) - improved ImDrawList thick strokes (>1.0f) preserving correct thickness up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines, they will appear thicker now.
|
||||||
- 2019/04/29 (1.70) - removed GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. Kept inline redirection function (will obsolete).
|
- 2019/04/29 (1.70) - removed GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. Kept inline redirection function (will obsolete).
|
||||||
- 2019/03/04 (1.69) - renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete).
|
- 2019/03/04 (1.69) - renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete).
|
||||||
- 2019/02/26 (1.69) - renamed ImGuiColorEditFlags_RGB/ImGuiColorEditFlags_HSV/ImGuiColorEditFlags_HEX to ImGuiColorEditFlags_DisplayRGB/ImGuiColorEditFlags_DisplayHSV/ImGuiColorEditFlags_DisplayHex. Kept redirection enums (will obsolete).
|
- 2019/02/26 (1.69) - renamed ImGuiColorEditFlags_RGB/ImGuiColorEditFlags_HSV/ImGuiColorEditFlags_HEX to ImGuiColorEditFlags_DisplayRGB/ImGuiColorEditFlags_DisplayHSV/ImGuiColorEditFlags_DisplayHex. Kept redirection enums (will obsolete).
|
||||||
|
Loading…
Reference in New Issue
Block a user