07/18/2022

I recently upgraded my MeshView application to use the Dear ImGui dockable windows branch. Overall, it was a fairly simple process to add into my app three dockable windows: a scene hierarchy window, an property inspector window, and the final rendered view window. I did have a few issues with getting mouse events working but managed to get ImGui to ignore events inside the render view so that my renderer can use those mouse events to update the camera position. I ended up using the InvisibleButton approach outlined in the ImGui demo code. I also had to change my renderer to render to a texture which I then have ImGui draw using ImGui::Image(). This does mean there is an unnecessary copy occurring and I would have prefered to be able to just set the final renderer's viewport to be the same as the ImGui window I want to render to, but such is life. Here is a link showing the final implementation (ignoring some outstanding bugs I still have to fix around keyboard support):

https://youtu.be/V0fx4hBqbhc