Add ROCKY_HAS_IMGUI guards to prevent compilation errors when ImGui is disabled #142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The ImGui integration in Rocky's codebase had unguarded references that caused compilation errors when ImGui support was disabled. Several header files included
<imgui.h>and used ImGui types without proper conditional compilation guards.Problem
When building the SDK with
ROCKY_SUPPORTS_IMGUI=OFF, compilation would fail due to:#include <imgui.h>statements in header filesSolution
Added
#ifdef ROCKY_HAS_IMGUIguards around all ImGui-dependent code:Header files - Wrapped entire file contents in guards:
src/rocky/vsg/imgui/ImGuiIntegration.hsrc/rocky/vsg/imgui/RenderImGui.hsrc/rocky/vsg/imgui/SendEventsToImGui.hSource files - Added guards around ImGui includes and functions:
src/rocky/vsg/ecs/WidgetSystem.cpp- wrapped ImGui include andinitialize()functionsrc/rocky/vsg/imgui/SendEventsToImGui.cpp- wrapped entire file content for consistencyFiles Already Protected
The following files already had proper guards and required no changes:
src/rocky/rocky_imgui.hsrc/rocky/vsg/imgui/ImGuiImage.hsrc/rocky/vsg/DisplayManager.cppResult
The SDK now builds correctly whether ImGui support is enabled or disabled. Demo applications continue to work properly through the existing guards in
rocky_imgui.h.Fixes #141.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.