vsg-dev / vsgImGui

Integration of VulkanSceneGraph with ImGui
MIT License
43 stars 28 forks source link

ImPlot Integrated into vsgImGui #38

Closed kannode closed 1 year ago

kannode commented 1 year ago
rainergericke commented 1 year ago

Tested the actual PR on the Mac. All good.

robertosfield commented 1 year ago

I have merged this PR as a branch:

https://github.com/vsg-dev/vsgImGui/tree/kannode-implot

And have also merged the associated vsgExamples PR as a branch as well:

https://github.com/vsg-dev/vsgExamples/tree/kannode-implot

Everything compiled and ran without problems. ImPlot is impressive :-)

I've just done a quick check on the size difference of vsgImGui before and after ImPlot addition.

Without ImPlot: 1,701,620 libvsgImGui.a 9,648,616 vsgimgui_example

With ImPlot: 5,212,950 libvsgImGui.a 11,993,936 vsgimgui_example

I'm surprised ImPlot adds 3.5Mb to vsgImGui, that's twice the size of ImGui.

Headers for ImPlot aren't that large compared to imgui.h:

$ wc *
    39    211   1564 Export.h
   120   1136   9666 imconfig.h
  3077  36343 303159 imgui.h
  3250  24581 235627 imgui_internal.h
    18    136   1015 imgui_stdlib.h
  1292  10195  78669 implot.h
  1670   7422  67176 implot_internal.h
  1437   6205  54857 imstb_textedit.h
    97    352   3583 RenderImGui.h
    64    259   2379 SendEventsToImGui.h

I don't know what to make of this yet. Thoughts?

rainergericke commented 1 year ago

My idea is examples like histogram2d need more complex code, but don't really know it. Thanks for considering implot!

rainergericke commented 1 year ago

We are going to use the new branches in out software step by step, all runs well.

robertosfield commented 1 year ago

The demo features that are built into ImGui and ImPlot are cool but I do wonder what the footprint of having them included in vsgImGui. I don't know if it's possible to choose to prune this.

robertosfield commented 1 year ago

I have looked into the inclusion of the demo features and imconfig.h allows you to toggle off the demo features. but right now the vsgImGui is copying across the imconfig.h so local changes are lost.

I wonder if we can come up with a scheme that allows customization. This is a different topic than this particular PR though so I'll revisit this in the future.

robertosfield commented 1 year ago

I have gone ahead and merge this PR, thanks to @kannode and @rainergericke.