Hi,
SFML don't allow us to display 3D objects, so, I've re-create the classes RenderTarget, RenderWindow, Vertex, VertexArray, ..., which can display 3D objects.
And I didn't want to modify SFML. (because if the SFML version change I'll have to modify all again)
It's why I've recreate similar classes for the 3D.
But I had to modify a little thing in the sfml source code, this is the m_cacheId, in the sf::Texture class.
Because the m_cacheId and some other attributes are private, so, I've moved them into the public part of the sf::Texture class otherwise only the friend class sf::RenderTarget can access to them.
Otherwise this is very nice that the SFML classes encapsulate the opengl code.
Shaders and textures becomes very more simple to implement. (This is why I keep using sfml even for the 3D)