Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 14, 2025

Integrates three Hexa.NET.ImGui extensions (ImNodes, ImPlot, ImGuizmo) with proper context management and comprehensive demo implementations.

Core Library

  • ImGuiExtensionManager: Centralized extension lifecycle management with automatic context setup/teardown, frame handling, and OpenGL context change detection
  • Context Management: Per-frame context setup in ImGuiController ensures extensions operate in correct ImGui context
  • Window State Tracking: Enhanced visibility and focus tracking for improved window management

Demo Application

  • Modular Architecture: Refactored monolithic demo into 13 separate IDemoTab implementations
  • ImNodesDemo: Node editor with physics-based auto-layout using force-directed graph positioning
  • ImGuizmoDemo: 3D gizmo manipulation (translate, rotate, scale) with camera controls
  • ImPlotDemo: Real-time plotting with multiple chart types

Dependencies

<PackageVersion Include="Hexa.NET.ImGuizmo" Version="2.2.8.4" />
<PackageVersion Include="Hexa.NET.ImNodes" Version="2.2.8.4" />
<PackageVersion Include="Hexa.NET.ImPlot" Version="2.2.8.4" />

Extensions are initialized through ImGuiExtensionManager which handles context binding automatically:

extensionManager.AddExtension("ImNodes", ImNodesNative.CreateContext, ImNodesNative.DestroyContext, ...);
extensionManager.SetupContexts(ImGui.GetCurrentContext());
extensionManager.NewFrame();

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@matt-edmondson matt-edmondson moved this to In Progress in ktsu.dev Nov 14, 2025
Copilot AI changed the title [WIP] Add ImNodes, ImPlot, and ImGuizmo addons from Hexa.NET.ImGui Add ImNodes, ImPlot, and ImGuizmo extension support with centralized management Nov 14, 2025
Copilot AI requested a review from matt-edmondson November 14, 2025 23:52
@matt-edmondson matt-edmondson deleted the copilot/sub-pr-132-again branch November 15, 2025 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants