// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
// - Read 'docs/FONTS.txt' for more instructions and details.
// - Read 'docs/FONTS.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
// - Emscripten allows preloading a file or folder to be accessible at runtime. See Makefile for details.
// This usually assert if there is a mismatch between the ImGuiWindowFlags_ChildWindow / ParentWindow values and DC.ChildWindows[] in parents, aka we've done something wrong.
// This usually assert if there is a mismatch between the ImGuiWindowFlags_ChildWindow / ParentWindow values and DC.ChildWindows[] in parents, aka we've done something wrong.
constboolwindow_is_child_tooltip=(flags&ImGuiWindowFlags_ChildWindow)&&(flags&ImGuiWindowFlags_Tooltip);// FIXME-WIP: Undocumented behavior of Child+Tooltip for pinned tooltip (#1345)
constboolwindow_is_child_tooltip=(flags&ImGuiWindowFlags_ChildWindow)&&(flags&ImGuiWindowFlags_Tooltip);// FIXME-WIP: Undocumented behavior of Child+Tooltip for pinned tooltip (#1345)
IMGUI_APIImDrawList*CloneOutput()const;// Create a clone of the CmdBuffer/IdxBuffer/VtxBuffer.
IMGUI_APIImDrawList*CloneOutput()const;// Create a clone of the CmdBuffer/IdxBuffer/VtxBuffer.
// Advanced: Channels
// Advanced: Channels
// - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit foreground primitives before background primitives)
// - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives)
// - Use to minimize draw calls (e.g. if going back-and-forth between multiple non-overlapping clipping rectangles, prefer to append into separate channels then merge at the end)
// - Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end)
// - FIXME-OBSOLETE: This API shouldn't have been in ImDrawList in the first place!
// Prefer using your own persistent copy of ImDrawListSplitter as you can stack them.
// Using the ImDrawList::ChannelsXXXX you cannot stack a split over another.
ImRectHostClipRect;// Backup of ClipRect at the time of BeginColumns()
ImRectHostClipRect;// Backup of ClipRect at the time of BeginColumns()
ImRectHostWorkRect;// Backup of WorkRect at the time of BeginColumns()
ImRectHostWorkRect;// Backup of WorkRect at the time of BeginColumns()
ImVector<ImGuiColumnData>Columns;
ImVector<ImGuiColumnData>Columns;
ImDrawListSplitterSplitter;
ImGuiColumns(){Clear();}
ImGuiColumns(){Clear();}
voidClear()
voidClear()
@ -1159,8 +1157,8 @@ struct ImGuiContext
// Windows state
// Windows state
ImVector<ImGuiWindow*>Windows;// Windows, sorted in display order, back to front
ImVector<ImGuiWindow*>Windows;// Windows, sorted in display order, back to front
ImVector<ImGuiWindow*>WindowsFocusOrder;// Windows, sorted in focus order, back to front
ImVector<ImGuiWindow*>WindowsFocusOrder;// Windows, sorted in focus order, back to front. (FIXME: We could only store root windows here! Need to sort out the Docking equivalent which is RootWindowDockStop and is unfortunately a little more dynamic)
ImVector<ImGuiWindow*>WindowsSortBuffer;
ImVector<ImGuiWindow*>WindowsTempSortBuffer;// Temporary buffer used in EndFrame() to reorder windows so parents are kept before their child
ImVector<ImGuiWindow*>CurrentWindowStack;
ImVector<ImGuiWindow*>CurrentWindowStack;
ImGuiStorageWindowsById;// Map window's ImGuiID to ImGuiWindow*
ImGuiStorageWindowsById;// Map window's ImGuiID to ImGuiWindow*
intWindowsActiveCount;// Number of unique windows submitted by frame
intWindowsActiveCount;// Number of unique windows submitted by frame
IMGUI_APIvoidMarkItemEdited(ImGuiIDid);// Mark data associated to given item as "edited", used by IsItemDeactivatedAfterEdit() function.
IMGUI_APIvoidPushOverrideID(ImGuiIDid);// Push given value at the top of the ID stack (whereas PushID combines old and new hashes)
IMGUI_APIvoidPushOverrideID(ImGuiIDid);// Push given value at the top of the ID stack (whereas PushID combines old and new hashes)
// Basic Helpers for widget code
// Basic Helpers for widget code
@ -2000,7 +2001,7 @@ namespace ImGui
IMGUI_APIvoidClearDragDrop();
IMGUI_APIvoidClearDragDrop();
IMGUI_APIboolIsDragDropPayloadBeingAccepted();
IMGUI_APIboolIsDragDropPayloadBeingAccepted();
// New Columns API (FIXME-WIP)
// Internal Columns API (this is not exposed because we will encourage transitioning to the Tables api)
IMGUI_APIvoidBeginColumns(constchar*str_id,intcount,ImGuiColumnsFlagsflags=0);// setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
IMGUI_APIvoidBeginColumns(constchar*str_id,intcount,ImGuiColumnsFlagsflags=0);// setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
draw_window->DC.NavLayerActiveMaskNext|=draw_window->DC.NavLayerCurrentMask;// This is to ensure that EndChild() will display a navigation highlight
draw_window->DC.NavLayerActiveMaskNext|=draw_window->DC.NavLayerCurrentMask;// This is to ensure that EndChild() will display a navigation highlight so we can "enter" into it.