Docking: Reworked SetNextWindowUserType() as SetNextWindowDockFamily(), allowing multiple scene to be tagged with their scene id and not receive tabs from other scene + persistent storage for family id to allow for docking tree fork/remap.
// When a Dockspace transitioned form implicit to explicit this may be called a second time
// It is possible that the node has already been claimed by a docked window which appeared before the DockSpace() node, so we overwrite IsDockSpace again.
ImGuiIDDockId;// ID of last known DockNode (even if the DockNode is invisible because it has only 1 active window), or 0 if none.
ImGuiIDDockFamilyId;// ID of dock family if specified
shortDockOrder;// Order of the last time the window was visible within its DockNode. This is used to reorder windows that are reappearing on the same frame. Same value between windows that were active and windows that were none are possible.
ImGuiDockNode*ChildNodes[2];// [Split node only] Child nodes (left/right or top/bottom). Consider switching to an array.
@ -752,6 +752,7 @@ struct ImGuiDockNode
ImVec2Size;// Current size
ImVec2SizeRef;// [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size.
intSplitAxis;// [Split node only] Split axis (X or Y)
ImGuiDockFamilyDockFamily;
ImGuiWindow*HostWindow;
ImGuiWindow*VisibleWindow;
@ -1208,7 +1209,7 @@ struct IMGUI_API ImGuiWindow
ImGuiCondSetWindowDockAllowFlags;// store acceptable condition flags for SetNextWindowDock() use.
ImVec2SetWindowPosVal;// store window position when using a non-zero Pivot (position set needs to be processed when we know the window size)
ImVec2SetWindowPosPivot;// store window pivot for positioning. ImVec2(0,0) when positioning from top-left corner; ImVec2(0.5f,0.5f) for centering; ImVec2(1,1) for bottom right.
ImGuiID UserTypeId;// user value set with SetNextWindowUserType(const char*)
ImGuiDockFamily DockFamily;// set with SetNextWindowDockFamily()
ImGuiWindowTempDataDC;// Temporary per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the "DC" variable name.
ImVector<ImGuiID>IDStack;// ID stack. ID are hashes seeded with the value at the top of the stack