I am building a GameEngine, my GameEngine has a canvas which is meant to draw triangles, it simply has a function that takes a vertex buffer and indice buffer, but the structure of the vertices it takes has to be the same as the one of the canvas/renderer. Now I have other libraries that use the canvas rendering functions, which work fine because it was developed for those libraries. But now I want to use ImGui as Editor GUI, and the vertex structures don’t match.
Where ImGui uses 4 bytes/chars(or one uint32) for storing colors, I use 4 floats(R, G, B, A). This makes my Engine incompatible with ImGui. Now I thought of having a way to configure the input vertex structure for the Canvas, to match whatever a library outputs.(e.g. ImGui). But this would be an incredible amount of work for me, as that means I have one vertex buffer, that holds multiple different structures.
So what I am asking here is, is it possible to alter the structure of an ImGui vertex(ImDrawVert) to math the Engine vertex structure? Preferable without modifying the ImGui code.
And, if that doesn’t exist, would it be possible for ImGui to integrate such thing?