Your manager is already too high-level for SFML. I mean, not everybody will want this kind of management. And it's more the job of an engine than a low-level API like SFML.
I was rather thinking to add a static function inside each resource class :
sf::Image& Img = sf::Image::Get("datas/image.tga");
// Loads if not already done, otherwise just return a reference to the loaded image
No need for an abstract
void* manager (which is quite ugly BTW
), no need for reference counting and automatic unloading.
But I'm still not sure if it would be a good idea or not to add it myself.
The image::GetPixelsPtr () should return a read/write pointer since this would be way faster in some situations (copying huge amounts of memory for example)
I prefer provide such critical functions directly (and nicely wrapped) in sf::Image. Giving a write access to the internal buffer would be too dangerous for beginners.
Maybe (woul be very cool.. I already coded this for Irrlicht so maybe I can do a port) Interpolated GetPixel (Linear Biqubic and Qubic)...
For what purpose ?
Accessing Vertex Color, Vertex Offset and vertex Texcoord might come handy for the sprites
These informations are already available, but in a human-friendly interface (Drawable::GetColor, Sprite::GetSubRect, ...). I don't see the point of giving such low-level internal informations to the user.
Hey, it seems you just want to use plain OpenGL...
And a last thingy: Drawables should get parents (other drawables)
It's planned. Although I'm not sure if I'll provide the choice of inherited settings.
Thanks for your suggestions.