Cog integration has been reworked to make it easier, to keep Cog available between level loadings, and to properly tick ImGui while the game is paused.
Cog 's WindowManager is now a GameInstanceSubsystem.
The WindowManager ticks ImGui and the windows during the OnWorldPostActorTick delegate.
(If this is not working for your project, don't hesitate to open an issue.)
Check the readme to see how to integrate Cog.
The Plot debug functions (displayed by the Engine/Plot window) have been reworked as they were not properly working in Multi PIE in Single Process.
API changes:
- use FCogDebug::Plot instead of FCogDebugPlot::PlotValue
- use FCogDebug::InstantEvent instead of FCogDebugPlot::PlotEventInstant
- use FCogDebug::StartEvent instead of FCogDebugPlot::PlotEventStart
- use FCogDebug::StopEvent instead of FCogDebugPlot::PlotEventStop
- Implement ImGui Copy Paste, and OpenInShell backend.
- Fix ColorEdit4
- Fix Hand and NotAllowed cursors
- Make the reset of windows configuration automatic (but optional) when getting a config.
- Console Window: Improve usability
- Stat Window: Add configuration of of MaxFPS, Pings, and PacketLoss. Improve widget usability.
- Time Scale Window: Add configuration of time scale. Improve widget usability.
- Output Log Window: Fix the Copy.
- Selection Window: The Pick button now uses an icon
- Save plotted entries between sessions
- Add more options (autofit padding, num recorded values, record values when paused
- Fix dragging the mouse on a different window over the graph pausing the graph
- Fixed some include paths case sensitive
- Fixed CogImguiInputHelper.h including itself
- Added missing includes
- Added missing forward declarations
- Fixed enums forward declarations
- Fixed "TCHAR_TO_ANSI" and const char* formatting issues
- Fixed "sscanf" on Linux
CogWindows are now normal object because we want to be able to Ifdef them, and UObject cannot be ifdef. CogWindows were UObject mainly for saving their config. The configs have been moved in separated class, which are UObject.