I'm sticking with the latest conclusions:
Okay, I already thought about an own Drawable wrapper that would store high-level objects via type erasure to allow abstraction nevertheless
class Drawable
{
private :
friend class RenderTarget;
virtual void Draw(RenderTarget&) = 0;
};
So, Draw() actually replaces the old Render()?
I was thinking about renaming "SubRect" in sf::Sprite. Would "TextureArea" or TextureRegion" be better?
TextureArea sounds better than TextureRegion because region doesn't always have fixed boundaries.
And TextureRect sounds better than TextureArea because it indicates a rectangular area. Plus, it is closer to the existing term SubRect, making code porting easier.
SourcePixels
Not good in my opinion, since the sub-rectangle doesn't store any pixels.