Compare commits

...

52 Commits
v1.18 ... v1.20

Author SHA1 Message Date
b0ea57e518 Version number 2015-01-07 19:07:43 +00:00
4260195159 Revert "Reexported proggy_clean_13 in a 256x64 texture (instead of 256x128) and documented exact export parameters"
Correct but cause problems because many people don't have 1 BPP PNG loaders

This reverts commit 98a38e24ab.
2015-01-07 18:59:44 +00:00
26fdf1655c Fixed leak on shutdown (fixes #110) + possible uninitialized member. 2015-01-07 14:55:35 +00:00
c1251d2994 Examples: Fixed warnings for Clang 2015-01-06 17:43:23 +00:00
1c657564ac Examples: Added STB_IMAGE_STATIC in examples to avoid conflicting implementation. Relate to #109 2015-01-06 17:35:36 +00:00
98a38e24ab Reexported proggy_clean_13 in a 256x64 texture (instead of 256x128) and documented exact export parameters 2015-01-05 11:13:02 +00:00
0505995193 Very minor code/comments tweaks. 2015-01-04 22:29:53 +00:00
4905ec46f1 Fixed hovering of child windows / combo boxes that extend beyond the root window limits. 2015-01-04 22:07:37 +00:00
3fe669f547 Failure in LogToFile() treated at an error (assert) in the absence of another type of error handling. 2015-01-04 21:37:49 +00:00
22c1d7eded Renamed some color enums 2015-01-04 19:37:24 +00:00
39373b563b Checkbox and Radio buttons activate on click-release to be consistent with other widgets and most UI 2015-01-04 19:23:36 +00:00
97d34271f8 Fix clipboard pasting into an InputText box not filtering the characters according to input box semantic (number, etc.) 2015-01-04 18:47:08 +00:00
a5f4108781 Activating widget bring parent window to front 2015-01-04 18:36:33 +00:00
3674d30e90 Fixed clicking on Combo box label. 2015-01-04 18:32:15 +00:00
2268b098e0 Avoid marking settings as dirty when window is marked unsaved + minor FocusWindow() optimisation 2015-01-04 18:23:30 +00:00
4bccc06933 Dragging outside area of a widget while it is active doesn't trigger hover on other widgets. 2015-01-04 18:12:30 +00:00
ee49c2288d Todo items. 2015-01-03 17:38:10 +00:00
34664dc28c InputText() consume input characters immediately (fixes #105) 2015-01-03 17:37:39 +00:00
e4f96147de Update README.md 2014-12-31 15:55:34 +00:00
12225abfe2 Version number (fix) 2014-12-31 10:38:36 +00:00
505bd1a66d Fixed text input filtering for character in the 128-255 range. 2014-12-31 09:49:53 +00:00
c9002620c6 Update README.md 2014-12-30 17:13:04 +00:00
f8c58fe328 Fix for Clang 2014-12-30 16:55:32 +00:00
74ab555558 Examples: Console:: added support for History callbacks + cleanup to be self contained. 2014-12-30 16:49:39 +00:00
da5227fa28 Added comment about defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h 2014-12-30 15:44:19 +00:00
3b028c7ebf Fixed InputInt() InputFloat() label not declaring their width, breaking SameLine (bug #100)
+ shallow cleanups
2014-12-30 15:38:28 +00:00
2d111ccb55 crc32 on strings is performed in one pass - removed the strlen() call. 2014-12-30 15:18:21 +00:00
691ca46978 Version number 2014-12-30 15:10:55 +00:00
209be54e49 Version number 2014-12-30 12:21:57 +00:00
aa750d538d Style editor: added an Output button to output colors to clipboard/tty 2014-12-30 12:08:33 +00:00
929f127d06 Added SliderInt2(), SliderInt3(), SliderInt4() for consistency 2014-12-30 11:54:04 +00:00
60b4389ac1 Empty label consistently remove the inner-padding normally preceeding the label. 2014-12-30 11:41:46 +00:00
a950df6655 Tightening default style (saving -2 pixels on each axis per widget) 2014-12-30 10:00:00 +00:00
409b1ac6b5 Log output \r\n under Windows so files are readable with Notepad 2014-12-29 20:41:27 +00:00
036a153cf4 Log depth padding relative to start depth. Tree node and headers looking better when logged to text. Added LogText(). 2014-12-29 20:18:52 +00:00
886d954e3d GetStyleColorName -> GetStyleColName for consistency with type name. Removed ImGuiStyleVar_ColumnsMinSpacing 2014-12-29 19:56:01 +00:00
39952d2362 Renamed GetTreeStateStorage() to GetStateStorage(). Columns storing floats instead of fixed point integers 2014-12-29 18:17:54 +00:00
1b25fa8169 Added LogFinish() to stop logging at an arbitrary point. 2014-12-29 18:13:41 +00:00
0796dc0dc1 Minor fix for cases of malformed .ini file (zero-terminating text file like it was before previous commit). 2014-12-29 18:05:22 +00:00
8994f2f1e4 Cleanup. Removed unnecessary calls to sqrtf(). Factoring bits into ImLoadFileToMemory(). Added index of static helpers. 2014-12-29 11:23:03 +00:00
e2fbbe0274 Factoring bits out of Begin() into a private CreateNewWindow() funciton
(Hopefully to ease a bit the merging work for ProDBG)
2014-12-28 17:54:02 +00:00
5b7ed5432e CalcTextSize() default third parameter to false because it almost never makes sense to use it from the outside (may obsolete it) 2014-12-28 16:17:08 +00:00
bf3212c681 Taking notes of issues/todo 2014-12-28 16:09:19 +00:00
34728394ec Fixed clipped ImGui::Combo not registering its size properly (was flickering when scrolling with combo on the edge of clipping region) 2014-12-26 12:38:13 +00:00
90351298d1 Renamed second parameter to Begin() to 'bool* p_opened' to be more self-explanatory. Added more comments on the use of Begin(). 2014-12-22 13:29:39 +00:00
69f3d67d18 Preserve windows position on zero-sized display (minimized). 2014-12-22 02:14:31 +00:00
d6c13128b9 Update README.md - tweaks 2014-12-22 02:07:02 +00:00
b3febabc30 OpenGL3 example: fix growing of VBO 2014-12-22 01:47:34 +00:00
ac29859f70 Support zero-sized display, now sets default as -1,-1 and assert if display size is negative. 2014-12-22 01:45:13 +00:00
a3af51fd4e Added ImGuiStyleVar_WindowRounding enum for PushStyleVar() API 2014-12-19 12:56:00 +00:00
b09c49180f Update README.md minor fixes 2014-12-14 10:44:43 +00:00
7e868e2842 Cleanup todo list, removed 3 done items + added 1 new 2014-12-11 10:12:52 +00:00
6 changed files with 851 additions and 546 deletions

View File

@ -8,7 +8,6 @@ ImGui is designed to enable fast iteration and allow programmers to create "cont
ImGui is particularly suited to integration in 3D applications, fullscreen applications, embedded applications, games, or any applications on consoles platforms where operating system features are non-standard.
ImGui is self-contained within 4 files that you can easily copy and compile into your application/engine:
- imgui.cpp
@ -48,13 +47,13 @@ The Immediate Mode GUI paradigm may at first appear unusual to some users. This
Frequently Asked Question
-------------------------
<b>Where is example code?</b>
<b>Where are samples?</b>
The bulk of actual ImGui usage code is contained within the ImGui::ShowTestWindow() function. It covers most featurse of ImGui so you can read its source code and call the function itself to see its output. Ready-to-go example applications covering different versions of OpenGL/DirectX are provided in the examples/ folder.
The bulk of example user code is contained within the ImGui::ShowTestWindow() function. It covers most features of ImGui so you can read the code and call the function itself to see its output. Ready-to-go example applications covering different versions of OpenGL/DirectX are provided in the examples/ folder.
<b>How do you use ImGui on a platform that may not have a mouse or keyboard?</b>
I recommend using [Synergy](http://synergy-project.org). With the uSynergy.c micro client running you can seamlessly use your PC input devices from a video game console or a tablet. ImGui was also designed to function with touch inputs if you increase the padding of widgets to compensate for the lack of precision of touch devices, but it is recommended you use a mouse to allow optimising for screen real-estate.
I recommend using [Synergy](http://synergy-project.org). With the uSynergy.c micro client running on your platform and connecting to your PC, you can seamlessly use your PC input devices from a video game console or a tablet. ImGui allows to increase the hit box of widgets (via the _TouchPadding_ setting) to accomodate a little for the lack of precision of touch inputs, but it is recommended you use a mouse to allow optimising for screen real-estate.
<b>I integrated ImGui in my engine and the text or lines are blurry..</b>
@ -88,27 +87,33 @@ ImGui takes advantage of a few C++ features for convenience but nothing in the r
Shall someone wants to use ImGui from another language, it should be possible to wrap ImGui to be used from a raw C API in the future.
Support
-------
<b>Can you develop features xxxx for ImGui?</b>
Please use GitHub 'Issues' facilities to suggest and discuss improvements. Your questions are often helpul to the community of users. If you represent an organization and would like specific non-trivial features to be implemented, I am available for hire to work on or with ImGui.
Donate
------
<b>Can I donate to support the development of ImGui?</b>
If you have the mean to help, I have setup a [**Patreon page**](http://www.patreon.com/imgui) to enable me to spend more time on the development of the library. One-off donations are also greatly appreciated. Thanks!
Yes please! I have setup an [**ImGui Patreon page**](http://www.patreon.com/imgui) if you want to donate and enable me to spend more time improving the library. If your company uses ImGui on a commercial project please consider making a small contribution. One-off donations are also greatly appreciated. I am also available for hire to work on or with ImGui. Thanks!
Credits
-------
Developed by [Omar Cornut](http://www.miracleworld.net). The library was developed with the support of [Media Molecule](http://www.mediamolecule.com) and first used internally on the game [Tearaway](http://tearaway.mediamolecule.com).
Developed by [Omar Cornut](http://www.miracleworld.net) and every direct or indirect contributors to the GitHub. The early version of this library was developed with the support of [Media Molecule](http://www.mediamolecule.com) and first used internally on the game [Tearaway](http://tearaway.mediamolecule.com).
Embeds [proggy_clean](http://upperbounds.net) font by Tristan Grimmer (MIT license).
Embeds [M+ fonts](http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html) font by Coji Morishita (free software license).
Embeds [stb_textedit.h](https://github.com/nothings/stb/) by Sean Barrett.
Embeds [stb_textedit.h](https://github.com/nothings/stb/) by Sean Barrett (public domain).
Inspiration, feedback, and testing: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Thanks!
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. And everybody posting feedback, questions and patches on the GitHub.
ImGui is financially supported on [**Patreon**](http://www.patreon.com/imgui).
Special supporters
- Jetha Chan
Supporters
- Michel Courtine
And other supporters; thanks!
License
-------

View File

@ -1,6 +1,7 @@
// ImGui - standalone example application for DirectX 11
#include <windows.h>
#define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION
#include "../shared/stb_image.h" // for .png loading
#include "../../imgui.h"

View File

@ -1,10 +1,14 @@
// ImGui - standalone example application for OpenGL 3, using programmable pipeline
#ifdef _MSC_VER
#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
#endif
#ifdef __clang__
#pragma clang diagnostic ignored "-Wunused-function" // warning: unused function
#endif
#include "../../imgui.h"
#define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION
#include "../shared/stb_image.h" // stb_image.h for PNG loading
@ -69,7 +73,7 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c
if (neededBufferSize > vbo_max_size)
{
vbo_max_size = neededBufferSize + 5000; // Grow buffer
glBufferData(GL_ARRAY_BUFFER, neededBufferSize, NULL, GL_STREAM_DRAW);
glBufferData(GL_ARRAY_BUFFER, vbo_max_size, NULL, GL_STREAM_DRAW);
}
// Copy and convert all vertices into a single contiguous buffer

View File

@ -1,10 +1,14 @@
// ImGui - standalone example application for OpenGL 2, using fixed pipeline
#ifdef _MSC_VER
#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
#endif
#ifdef __clang__
#pragma clang diagnostic ignored "-Wunused-function" // warning: unused function
#endif
#include "../../imgui.h"
#define STB_IMAGE_STATIC
#define STB_IMAGE_IMPLEMENTATION
#include "../shared/stb_image.h" // stb_image.h for PNG loading

1304
imgui.cpp

File diff suppressed because it is too large Load Diff

45
imgui.h
View File

@ -1,4 +1,4 @@
// ImGui library v1.18
// ImGui library v1.20
// See .cpp file for commentary.
// See ImGui::ShowTestWindow() for sample code.
// Read 'Programmer guide' in .cpp for notes on how to setup ImGui in your codebase.
@ -19,6 +19,7 @@ struct ImGuiWindow;
#include <stdarg.h> // va_list
#include <stddef.h> // ptrdiff_t
#include <stdlib.h> // NULL, malloc
#include <string.h> // memset, memmove
#ifndef IM_ASSERT
#include <assert.h>
@ -145,7 +146,7 @@ namespace ImGui
IMGUI_API void ShowTestWindow(bool* open = NULL);
// Window
IMGUI_API bool Begin(const char* name = "Debug", bool* open = NULL, ImVec2 size = ImVec2(0,0), float fill_alpha = -1.0f, ImGuiWindowFlags flags = 0); // return false when window is collapsed, so you can early out in your code.
IMGUI_API bool Begin(const char* name = "Debug", bool* p_opened = NULL, ImVec2 size = ImVec2(0,0), float fill_alpha = -1.0f, ImGuiWindowFlags flags = 0);// return false when window is collapsed, so you can early out in your code. passing 'bool* p_opened' displays a Close button on the upper-right corner of the window, the pointed value will be set to false when the button is pressed.
IMGUI_API void End();
IMGUI_API void BeginChild(const char* str_id, ImVec2 size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // size==0.0f: use remaining window size, size<0.0f: use remaining window size minus abs(size). on each axis.
IMGUI_API void EndChild();
@ -161,17 +162,17 @@ namespace ImGui
IMGUI_API ImVec2 GetWindowSize(); // get current window position.
IMGUI_API float GetWindowWidth();
IMGUI_API bool GetWindowCollapsed();
IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiSetCondition cond = 0); // set current window position.
IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiSetCondition cond = 0); // set current window position - call within Begin()/End().
IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiSetCondition cond = 0); // set current window size. set to ImVec2(0,0) to force an auto-fit
IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiSetCondition cond = 0); // set current window collapsed state.
IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiSetCondition cond = 0); // set next window position.
IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiSetCondition cond = 0); // set next window position - call before Begin().
IMGUI_API void SetNextWindowSize(const ImVec2& size, ImGuiSetCondition cond = 0); // set next window size. set to ImVec2(0,0) to force an auto-fit
IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiSetCondition cond = 0); // set next window collapsed state.
IMGUI_API void SetScrollPosHere(); // adjust scrolling position to center into the current cursor position.
IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget.
IMGUI_API void SetTreeStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it).
IMGUI_API ImGuiStorage* GetTreeStateStorage();
IMGUI_API void SetStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it).
IMGUI_API ImGuiStorage* GetStateStorage();
IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case. default to ~2/3 of windows width.
IMGUI_API void PopItemWidth();
@ -212,6 +213,7 @@ namespace ImGui
// ID scopes
// If you are creating repeated widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them.
// You can also use ## within your widget name to distinguish them from each others (see 'Programmer Guide')
IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack!
IMGUI_API void PushID(const void* ptr_id);
IMGUI_API void PushID(const int int_id);
@ -240,6 +242,9 @@ namespace ImGui
IMGUI_API bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f);
IMGUI_API bool SliderAngle(const char* label, float* v, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f); // *v in radians
IMGUI_API bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f");
IMGUI_API bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "%.0f");
IMGUI_API bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "%.0f");
IMGUI_API bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "%.0f");
IMGUI_API void PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), size_t stride = sizeof(float));
IMGUI_API void PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0));
IMGUI_API void PlotHistogram(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), size_t stride = sizeof(float));
@ -271,7 +276,7 @@ namespace ImGui
IMGUI_API void TreePop();
IMGUI_API void OpenNextNode(bool open); // force open/close the next TreeNode or CollapsingHeader
// Value helper output "name: value". tip: freely declare your own within the ImGui namespace!
// Value() Helpers: output single value in "name: value" format. Tip: freely declare your own within the ImGui namespace!
IMGUI_API void Value(const char* prefix, bool b);
IMGUI_API void Value(const char* prefix, int v);
IMGUI_API void Value(const char* prefix, unsigned int v);
@ -279,11 +284,13 @@ namespace ImGui
IMGUI_API void Color(const char* prefix, const ImVec4& v);
IMGUI_API void Color(const char* prefix, unsigned int v);
// Logging
IMGUI_API void LogButtons();
IMGUI_API void LogToTTY(int max_depth = -1);
IMGUI_API void LogToFile(int max_depth = -1, const char* filename = NULL);
IMGUI_API void LogToClipboard(int max_depth = -1);
// Logging: All text output from your interface are redirected to tty/file/clipboard. Tree nodes are automatically opened.
IMGUI_API void LogToTTY(int max_depth = -1); // start logging to tty
IMGUI_API void LogToFile(int max_depth = -1, const char* filename = NULL); // start logging to file
IMGUI_API void LogToClipboard(int max_depth = -1); // start logging to OS clipboard
IMGUI_API void LogFinish(); // stop logging (close file, etc.)
IMGUI_API void LogButtons(); // helper to display buttons for logging to tty/file/clipboard
IMGUI_API void LogText(const char* fmt, ...); // pass text data straight to log (without being displayed)
// Utilities
IMGUI_API bool IsItemHovered(); // was the last item active area hovered by mouse?
@ -301,9 +308,9 @@ namespace ImGui
IMGUI_API ImVec2 GetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls
IMGUI_API float GetTime();
IMGUI_API int GetFrameCount();
IMGUI_API const char* GetStyleColorName(ImGuiCol idx);
IMGUI_API const char* GetStyleColName(ImGuiCol idx);
IMGUI_API void GetDefaultFontData(const void** fnt_data, unsigned int* fnt_size, const void** png_data, unsigned int* png_size);
IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = true, float wrap_width = -1.0f);
IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f);
} // namespace ImGui
@ -380,6 +387,7 @@ enum ImGuiCol_
ImGuiCol_ComboBg,
ImGuiCol_CheckHovered,
ImGuiCol_CheckActive,
ImGuiCol_CheckMark,
ImGuiCol_SliderGrab,
ImGuiCol_SliderGrabActive,
ImGuiCol_Button,
@ -412,11 +420,11 @@ enum ImGuiStyleVar_
{
ImGuiStyleVar_Alpha, // float
ImGuiStyleVar_WindowPadding, // ImVec2
ImGuiStyleVar_WindowRounding, // float
ImGuiStyleVar_FramePadding, // ImVec2
ImGuiStyleVar_ItemSpacing, // ImVec2
ImGuiStyleVar_ItemInnerSpacing, // ImVec2
ImGuiStyleVar_TreeNodeSpacing, // float
ImGuiStyleVar_ColumnsMinSpacing // float
};
// Enumeration for ColorEditMode()
@ -442,13 +450,13 @@ struct ImGuiStyle
float Alpha; // Global alpha applies to everything in ImGui
ImVec2 WindowPadding; // Padding within a window
ImVec2 WindowMinSize; // Minimum window size
float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows
ImVec2 FramePadding; // Padding within a framed rectangle (used by most widgets)
ImVec2 ItemSpacing; // Horizontal and vertical spacing between widgets/lines
ImVec2 ItemInnerSpacing; // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)
ImVec2 TouchExtraPadding; // Expand bounding box for touch-based system where touch position is not accurate enough (unnecessary for mouse inputs). Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget running. So dont grow this too much!
ImVec2 AutoFitPadding; // Extra space after auto-fit (double-clicking on resize grip)
float WindowFillAlphaDefault; // Default alpha of window background, if not specified in ImGui::Begin()
float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows
float TreeNodeSpacing; // Horizontal spacing when entering a tree node
float ColumnsMinSpacing; // Minimum horizontal spacing between two columns
float ScrollBarWidth; // Width of the vertical scroll bar
@ -603,6 +611,7 @@ struct ImGuiTextBuffer
bool empty() { return Buf.empty(); }
void clear() { Buf.clear(); Buf.push_back(0); }
IMGUI_API void append(const char* fmt, ...);
IMGUI_API void appendv(const char* fmt, va_list args);
};
// Helper: Key->value storage
@ -678,7 +687,7 @@ struct ImDrawVert
ImU32 col;
};
#else
// You can change the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT.
// You can change the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h
// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine.
// The type has to be described by the #define (you can either declare the struct or use a typedef)
IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT;
@ -736,7 +745,7 @@ struct ImFont
// Settings
float Scale; // = 1.0f // Base font scale, multiplied by the per-window font scale which you can adjust with SetFontScale()
ImVec2 DisplayOffset; // = (0.0f,0.0f // Offset font rendering by xx pixels
ImVec2 DisplayOffset; // = (0.0f,0.0f) // Offset font rendering by xx pixels
ImVec2 TexUvForWhite; // = (0.0f,0.0f) // Font texture must have a white pixel at this UV coordinate. Adjust if you are using custom texture.
ImWchar FallbackChar; // = '?' // Replacement glyph is one isn't found.