|
@@ -804,7 +804,7 @@ struct ImGuiIO
|
|
|
int MetricsActiveWindows; // Number of visible windows (exclude child windows)
|
|
|
|
|
|
//------------------------------------------------------------------
|
|
|
- // [Internal] ImGui will maintain those fields for you
|
|
|
+ // [Private] ImGui will maintain those fields. Forward compatibility not guaranteed!
|
|
|
//------------------------------------------------------------------
|
|
|
|
|
|
ImVec2 MousePosPrev; // Previous mouse position
|
|
@@ -950,10 +950,9 @@ struct ImGuiTextBuffer
|
|
|
};
|
|
|
|
|
|
// Helper: Simple Key->value storage
|
|
|
-// - Store collapse state for a tree (Int 0/1)
|
|
|
-// - Store color edit options (Int using values in ImGuiColorEditMode enum).
|
|
|
-// - Custom user storage for temporary values.
|
|
|
// Typically you don't have to worry about this since a storage is held within each Window.
|
|
|
+// We use it to e.g. store collapse state for a tree (Int 0/1), store color edit options.
|
|
|
+// You can use it as custom user storage for temporary values.
|
|
|
// Declare your own storage if:
|
|
|
// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state).
|
|
|
// - You want to store custom debug data easily without adding or editing structures in your code.
|
|
@@ -985,9 +984,8 @@ struct ImGuiStorage
|
|
|
|
|
|
// - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set.
|
|
|
// - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer.
|
|
|
- // - A typical use case where this is convenient:
|
|
|
+ // - A typical use case where this is convenient for quick hacking (e.g. add storage during a live Edit&Continue session if you can't modify existing struct)
|
|
|
// float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar;
|
|
|
- // - You can also use this to quickly create temporary editable values during a session of using Edit&Continue, without restarting your application.
|
|
|
IMGUI_API int* GetIntRef(ImGuiID key, int default_val = 0);
|
|
|
IMGUI_API bool* GetBoolRef(ImGuiID key, bool default_val = false);
|
|
|
IMGUI_API float* GetFloatRef(ImGuiID key, float default_val = 0.0f);
|
|
@@ -1056,8 +1054,8 @@ struct ImGuiSizeConstraintCallbackData
|
|
|
|
|
|
// ImColor() helper to implicity converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)
|
|
|
// Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API.
|
|
|
-// Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class.
|
|
|
-// None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats.
|
|
|
+// **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class.
|
|
|
+// **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats.
|
|
|
struct ImColor
|
|
|
{
|
|
|
ImVec4 Value;
|
|
@@ -1170,7 +1168,7 @@ struct ImDrawList
|
|
|
ImVector<ImDrawVert> VtxBuffer; // Vertex buffer.
|
|
|
|
|
|
// [Internal, used while building lists]
|
|
|
- const char* _OwnerName; // Pointer to owner window's name (if any) for debugging
|
|
|
+ const char* _OwnerName; // Pointer to owner window's name for debugging
|
|
|
unsigned int _VtxCurrentIdx; // [Internal] == VtxBuffer.Size
|
|
|
ImDrawVert* _VtxWritePtr; // [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much)
|
|
|
ImDrawIdx* _IdxWritePtr; // [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much)
|
|
@@ -1181,7 +1179,7 @@ struct ImDrawList
|
|
|
int _ChannelsCount; // [Internal] number of active channels (1+)
|
|
|
ImVector<ImDrawChannel> _Channels; // [Internal] draw channels for columns API (not resized down so _ChannelsCount may be smaller than _Channels.Size)
|
|
|
|
|
|
- ImDrawList() { _OwnerName = NULL; Clear(); }
|
|
|
+ ImDrawList() { _OwnerName = NULL; Clear(); }
|
|
|
~ImDrawList() { ClearFreeMemory(); }
|
|
|
IMGUI_API void PushClipRect(ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect = false); // Render-level scissoring. This is passed down to your render function but not used for CPU-side coarse clipping. Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling)
|
|
|
IMGUI_API void PushClipRectFullScreen();
|
|
@@ -1394,9 +1392,7 @@ struct ImFont
|
|
|
#pragma clang diagnostic pop
|
|
|
#endif
|
|
|
|
|
|
-//---- Include imgui_user.h at the end of imgui.h
|
|
|
-//---- So you can include code that extends ImGui using any of the types declared above.
|
|
|
-//---- (also convenient for user to only explicitly include vanilla imgui.h)
|
|
|
+// Include imgui_user.h at the end of imgui.h (convenient for user to only explicitly include vanilla imgui.h)
|
|
|
#ifdef IMGUI_INCLUDE_IMGUI_USER_H
|
|
|
#include "imgui_user.h"
|
|
|
#endif
|