-
Notifications
You must be signed in to change notification settings - Fork 15
Hide non-public interface #256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
hugtalbot
merged 16 commits into
sofa-framework:master
from
olivier-roussel:imgui-to-impl
Jan 15, 2026
Merged
Hide non-public interface #256
hugtalbot
merged 16 commits into
sofa-framework:master
from
olivier-roussel:imgui-to-impl
Jan 15, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…h is using imgui.h
Contributor
Author
|
I've checked if imgui symbol export: SofaGLFW/SofaImGui/CMakeLists.txt Lines 161 to 163 in 8d02e9a
was still necessary on Windows, as we discussed in our last dev meeting, and it is. FYI @alxbilger Honnestly I thought it would not, but without this I could not compile project using SofaImGui as 3rd party such as SofaImGui.Camera extension (but SofaImGui was compiling fine). |
Contributor
Author
|
@hugtalbot @bakpaul @alxbilger I think this is ready to merge (or for another review round). |
bakpaul
pushed a commit
that referenced
this pull request
Jan 16, 2026
* remove imgui.h from ImgGuiGUIEngine header * change RigidMass to template explicit instanciation to hide impl which is using imgui.h * remove imgui internal headers from distributed public headers * hide impl of ScalarWidget * remove useless headers * fix missing headers simpleini.h * use SimpleIni as a dependency * add SimpleIni dep in SofaImGUi cmake config * do not install implot and IconFontCppHeaders headers * typo * hide SimpleIni to impl and do not expose private headers ViewPort.h and Settings.h * do not expose Performances.h header as it includes imgui * fix SimpleIni target as private * fix imgui headers are not part of SofaImGui anymore, must be treated as dependency * fix SofaGLFW cmake config in with missing gflw --------- Co-authored-by: Hugo <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR tries to tackle #152 with option 2 : encapsulate
imguicode as much as possible and limit installed headers to unvendored ones.Aim is to make SofaGLFW compatible with conda-forge requirements for making its package.
Concerning
imgui, it is not exposed anymore in public headers. But extensions might need it, so they will have to fetch it as done in SofaImGui. A typical example isSofaImGui.Cameraextension.As SimpleIni is in public headers, it must be added as a dependency and can be find or fetched as others. A PR forSimpleInihas been submitted to make it also available on conda-forge ( conda-forge/staged-recipes#31757 ).As we do not master the review time on conda-forge, I alternatively removed headers where SimpleIni is included have from the public interface. So far, the public interface was likely all the headers. Removed headers from public interface are:
ObjectColors.h(due toimgui)windows/Performances.h(due toimgui)windows/Settings.h(due toSimpleIni)windows/ViewPort.h(due toSimpleIni)Edit on 09/01/2026: