|
@@ -211,7 +211,8 @@ namespace ImGui
|
|
|
|
|
|
// Demo, Debug, Information
|
|
// Demo, Debug, Information
|
|
IMGUI_API void ShowDemoWindow(bool* p_open = NULL); // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
|
|
IMGUI_API void ShowDemoWindow(bool* p_open = NULL); // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application!
|
|
- IMGUI_API void ShowMetricsWindow(bool* p_open = NULL); // create metrics window. display ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc.
|
|
|
|
|
|
+ IMGUI_API void ShowAboutWindow(bool* p_open = NULL); // create about window. display Dear ImGui version, credits and build/system information.
|
|
|
|
+ IMGUI_API void ShowMetricsWindow(bool* p_open = NULL); // create metrics window. display Dear ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc.
|
|
IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style)
|
|
IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style)
|
|
IMGUI_API bool ShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles.
|
|
IMGUI_API bool ShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles.
|
|
IMGUI_API void ShowFontSelector(const char* label); // add font selector block (not a window), essentially a combo listing the loaded fonts.
|
|
IMGUI_API void ShowFontSelector(const char* label); // add font selector block (not a window), essentially a combo listing the loaded fonts.
|
|
@@ -1172,7 +1173,7 @@ struct ImGuiIO
|
|
//------------------------------------------------------------------
|
|
//------------------------------------------------------------------
|
|
|
|
|
|
ImGuiConfigFlags ConfigFlags; // = 0 // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc.
|
|
ImGuiConfigFlags ConfigFlags; // = 0 // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc.
|
|
- ImGuiBackendFlags BackendFlags; // = 0 // Set ImGuiBackendFlags_ enum. Set by imgui_impl_xxx files or custom back-end to communicate features supported by the back-end.
|
|
|
|
|
|
+ ImGuiBackendFlags BackendFlags; // = 0 // See ImGuiBackendFlags_ enum. Set by back-end (imgui_impl_xxx files or custom back-end) to communicate features supported by the back-end.
|
|
ImVec2 DisplaySize; // <unset> // Main display size, in pixels. Used e.g. to clamp windows positions. This is the default viewport. Use BeginViewport() for other viewports.
|
|
ImVec2 DisplaySize; // <unset> // Main display size, in pixels. Used e.g. to clamp windows positions. This is the default viewport. Use BeginViewport() for other viewports.
|
|
float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds.
|
|
float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds.
|
|
float IniSavingRate; // = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
|
|
float IniSavingRate; // = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
|
|
@@ -1199,10 +1200,15 @@ struct ImGuiIO
|
|
bool ConfigResizeWindowsFromEdges; // = false // [BETA] Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be the ImGuiWindowFlags_ResizeFromAnySide flag)
|
|
bool ConfigResizeWindowsFromEdges; // = false // [BETA] Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be the ImGuiWindowFlags_ResizeFromAnySide flag)
|
|
|
|
|
|
//------------------------------------------------------------------
|
|
//------------------------------------------------------------------
|
|
- // Settings (User Functions)
|
|
|
|
|
|
+ // Platform Functions
|
|
|
|
+ // (the imgui_impl_xxxx back-end files are setting those up for you)
|
|
//------------------------------------------------------------------
|
|
//------------------------------------------------------------------
|
|
|
|
|
|
- // Optional: access OS clipboard
|
|
|
|
|
|
+ // Optional: Platform/Renderer back-end name (informational only! will be displayed in About Window)
|
|
|
|
+ const char* BackendPlatformName;
|
|
|
|
+ const char* BackendRendererName;
|
|
|
|
+
|
|
|
|
+ // Optional: Access OS clipboard
|
|
// (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)
|
|
// (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)
|
|
const char* (*GetClipboardTextFn)(void* user_data);
|
|
const char* (*GetClipboardTextFn)(void* user_data);
|
|
void (*SetClipboardTextFn)(void* user_data, const char* text);
|
|
void (*SetClipboardTextFn)(void* user_data, const char* text);
|
|
@@ -1262,7 +1268,7 @@ struct ImGuiIO
|
|
// [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed!
|
|
// [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed!
|
|
//------------------------------------------------------------------
|
|
//------------------------------------------------------------------
|
|
|
|
|
|
- ImVec2 MousePosPrev; // Previous mouse position temporary storage (nb: not for public use, set to MousePos in NewFrame())
|
|
|
|
|
|
+ ImVec2 MousePosPrev; // Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid)
|
|
ImVec2 MouseClickedPos[5]; // Position at time of clicking
|
|
ImVec2 MouseClickedPos[5]; // Position at time of clicking
|
|
double MouseClickedTime[5]; // Time of last click (used to figure out double-click)
|
|
double MouseClickedTime[5]; // Time of last click (used to figure out double-click)
|
|
bool MouseClicked[5]; // Mouse button went from !Down to Down
|
|
bool MouseClicked[5]; // Mouse button went from !Down to Down
|
|
@@ -1389,7 +1395,7 @@ namespace ImGui
|
|
static inline bool IsMouseHoveringAnyWindow() { return IsWindowHovered(ImGuiHoveredFlags_AnyWindow); }
|
|
static inline bool IsMouseHoveringAnyWindow() { return IsWindowHovered(ImGuiHoveredFlags_AnyWindow); }
|
|
static inline bool IsMouseHoveringWindow() { return IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem); }
|
|
static inline bool IsMouseHoveringWindow() { return IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem); }
|
|
}
|
|
}
|
|
-typedef ImGuiInputTextCallback ImGuiTextEditCallback; // [OBSOLETE 1.63+] Made the names consistent
|
|
|
|
|
|
+typedef ImGuiInputTextCallback ImGuiTextEditCallback; // OBSOLETE in 1.63 (from Aug 2018): made the names consistent
|
|
typedef ImGuiInputTextCallbackData ImGuiTextEditCallbackData;
|
|
typedef ImGuiInputTextCallbackData ImGuiTextEditCallbackData;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -1450,7 +1456,7 @@ public:
|
|
Capacity = new_capacity;
|
|
Capacity = new_capacity;
|
|
}
|
|
}
|
|
|
|
|
|
- // NB: It is forbidden to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden.
|
|
|
|
|
|
+ // NB: It is illegal to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden.
|
|
inline void push_back(const value_type& v) { if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v, sizeof(v)); Size++; }
|
|
inline void push_back(const value_type& v) { if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v, sizeof(v)); Size++; }
|
|
inline void pop_back() { IM_ASSERT(Size > 0); Size--; }
|
|
inline void pop_back() { IM_ASSERT(Size > 0); Size--; }
|
|
inline void push_front(const value_type& v) { if (Size == 0) push_back(v); else insert(Data, v); }
|
|
inline void push_front(const value_type& v) { if (Size == 0) push_back(v); else insert(Data, v); }
|
|
@@ -1659,9 +1665,10 @@ struct ImColor
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
// Draw callbacks for advanced uses.
|
|
// Draw callbacks for advanced uses.
|
|
-// NB- You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering (you can poke into the draw list for that)
|
|
|
|
-// Draw callback may be useful for example, A) Change your GPU render state, B) render a complex 3D scene inside a UI element (without an intermediate texture/render target), etc.
|
|
|
|
-// The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) cmd.UserCallback(parent_list, cmd); else RenderTriangles()'
|
|
|
|
|
|
+// NB: You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering,
|
|
|
|
+// you can poke into the draw list for that! Draw callback may be useful for example to: A) Change your GPU render state,
|
|
|
|
+// B) render a complex 3D scene inside a UI element without an intermediate texture/render target, etc.
|
|
|
|
+// The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) { cmd.UserCallback(parent_list, cmd); } else { RenderTriangles() }'
|
|
typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd);
|
|
typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd);
|
|
|
|
|
|
// Typically, 1 command = 1 GPU draw call (unless command is a callback)
|
|
// Typically, 1 command = 1 GPU draw call (unless command is a callback)
|
|
@@ -1676,7 +1683,7 @@ struct ImDrawCmd
|
|
ImDrawCmd() { ElemCount = 0; ClipRect.x = ClipRect.y = ClipRect.z = ClipRect.w = 0.0f; TextureId = (ImTextureID)NULL; UserCallback = NULL; UserCallbackData = NULL; }
|
|
ImDrawCmd() { ElemCount = 0; ClipRect.x = ClipRect.y = ClipRect.z = ClipRect.w = 0.0f; TextureId = (ImTextureID)NULL; UserCallback = NULL; UserCallbackData = NULL; }
|
|
};
|
|
};
|
|
|
|
|
|
-// Vertex index (override with '#define ImDrawIdx unsigned int' inside in imconfig.h)
|
|
|
|
|
|
+// Vertex index (override with '#define ImDrawIdx unsigned int' in imconfig.h)
|
|
#ifndef ImDrawIdx
|
|
#ifndef ImDrawIdx
|
|
typedef unsigned short ImDrawIdx;
|
|
typedef unsigned short ImDrawIdx;
|
|
#endif
|
|
#endif
|
|
@@ -1720,8 +1727,9 @@ enum ImDrawCornerFlags_
|
|
|
|
|
|
enum ImDrawListFlags_
|
|
enum ImDrawListFlags_
|
|
{
|
|
{
|
|
- ImDrawListFlags_AntiAliasedLines = 1 << 0,
|
|
|
|
- ImDrawListFlags_AntiAliasedFill = 1 << 1
|
|
|
|
|
|
+ ImDrawListFlags_None = 0,
|
|
|
|
+ ImDrawListFlags_AntiAliasedLines = 1 << 0, // Lines are anti-aliased (*2 the number of triangles for 1.0f wide line, otherwise *3 the number of triangles)
|
|
|
|
+ ImDrawListFlags_AntiAliasedFill = 1 << 1 // Filled shapes have anti-aliased edges (*2 the number of vertices)
|
|
};
|
|
};
|
|
|
|
|
|
// Draw command list
|
|
// Draw command list
|