Problem with our renderers is that we recalculate all things new, without caching (except the LayerCache). That is slow and makes a proper implementation of VBOs or even VAOs practically impossible. So thats a blocker for newer OpenGL stuff.
Additional we could use / add more powerful functions. As example SDL2 can render a bunch of lines with one call instead of drawing every single line. With OpenGL, of course, this also works.
My plan is to implement some sort of RenderCache, the renderes sends its data to it. If necessary, they are updated. In case of OpenGL the RenderCache adopts the VBO administration, for SDL it sends the cached data.
So we would get a RenderCache per Layer and the call chain would looks like: Camera->Renderers->RenderCache->RenderBackend
Problem with our renderers is that we recalculate all things new, without caching (except the LayerCache). That is slow and makes a proper implementation of VBOs or even VAOs practically impossible. So thats a blocker for newer OpenGL stuff.
Additional we could use / add more powerful functions. As example SDL2 can render a bunch of lines with one call instead of drawing every single line. With OpenGL, of course, this also works.
My plan is to implement some sort of RenderCache, the renderes sends its data to it. If necessary, they are updated. In case of OpenGL the RenderCache adopts the VBO administration, for SDL it sends the cached data.
So we would get a RenderCache per Layer and the call chain would looks like: Camera->Renderers->RenderCache->RenderBackend