I've nearby finished the component based system, this is a preparation for the next update which'll introduce VBO.
I've just a problem of a position with the different view to correct and them... (The tiles position is not the same in the rendertexture and in the window, but they have the same view...)
It's quite annoying to do because the view can be in any sense. (it's not a lookat matrix but translation and rotations because I need a view adapted for every kind of games, so I need to calculate the good angles and translations vectors depending on the different cameras type parameters. (2D rotation, 3D rotation, up vector, free fly camera's angles, zoom, lookat vector, etc...)
The class tilemap'll disappear, It'll be a class FastRenderingComponentManager class which'll be used instead, this class'll be able to draw ODFAEG's components or simple drawable objects. (This class isn't drawable, it'll contains some rendering informations like the current frame buffer render texture, the depth buffer render texture, ..., to draw components whith the best optimized opengl functions supported by your hardware, this is an equivalent to sf::RenderTarget but that I've improved)
A new class'll be added : FastRenderComponent : this class'll be able to pre-load entities or drawable objects and to render them on the screen later.
This class'll also sort entities vertices, before drawing them on the window or on the frame buffer render texture and then on the window of the FastRenderComponentManager class. (It depends which opengl functions your pc'll support.
The EntityManager class'll load or update all visible entities on FastRenderComponents, and then'll return RenderComponent containing the entities which are visible on the screen, and then you can draw with a fastRenderComponentManager object.
And that's it!
This is a major design improvement that I've done, and it'll allow me to choose the way which I want to render things on component. (By example if I want to render lights on a 2D component before drawing them of if I ant to use a shader)
By example, it'll be possible to draw sphere's on a 2D component and them to draw this component over the screen. instead of using a shader.