Hello,
Im trying to create my own Game Engine. Currently I'm thinking about how I could integrate my Editor into the game and face some troubles.
My current approach for the general architecture of the engine is, that I have a main game class, this game class holds some systems, like a graphics system, a physics system etc. I then have an entity component system, that can communicate with this system, for example a renderable component sends its material and vertex data to the graphics system and the graphics system then produces the image.
For creating the editor my idea was to subclass my main class and then add functionality to display some editor UI. For creating the UI, I thought about using DearIMGui.
Now to my problem: I want to use IMGui with the Docking branch, so that the UI does not overlay the actual game. For this I need my graphics system to render the complete scene into an texture, this texture gets then displayed with an ImGui::Image. Currently I have no Idea how I should integrate this cleanly. The only idea that I have is that I somewhat change my renderer to include an ImGui pass. I don't want ImGui to become a main dependency of my engine. I just want to use it in the editor.
I would be really happy to hear from other people how they solve this.