Avec SDL, tout ce qui est affichable est dessiné dans une Surface. C'est un rectangle qui délimite une surface de dessin. Ces rectangles sont très puissants pour
certaines raisons, mais aussi pour une autre que je vais présenter ici.
Vous savez que les Sprites utilisent en fait des Textures et les utilisent avec leurs fonctions héritées de Transformable : setScale, setPosition, etc. et de Drawable : draw (dans
un autre sujet je propose de mettre quelques fonctions de Sprite dans Drawable pour que tous les enfants puissent en profiter). Ces Texture peuvent être modifiées, et ensuite copiées vers une image. Ca permet, par exemple, de faire un logiciel de dessin qui chargent une Image initiale, la mettent dans une Texture qui est mise dans un Sprite, y appliquer des filtres comme setColor ou setScale, et ensuite de la sauvegarder sur le disque, en faisant un Texture.copyToImage(). Vous avez peut-être aussi remarqué que vous pouvez créer une Image, une Texture, ou un Sprite "vide", mais d'une certaine dimension, qui sera affiché comme un rectangle blanc de cette dimension. Je pense que ça ressemble très fortement aux Surface de la SDL.
Ou est-ce que je veux en venir ? Je vous ai donné l'exemple du logiciel de dessin qui charge une image, passe des filtres, et la sauvegarde sur le disque. Mais ça ne fonctionne qu'avec le trio Image/Texture/Sprite. Tous les Drawable pourraient avoir une fonction copyToImage pour être sauvegardés comme ça sur le disque. Ca permettrait de faire un logiciel de dessin encore meilleur, et de dessiner des rectangles dedans, d'y afficher du texte, et de sauvegarder tout ça sous la forme d'une image !
Avec les Surfaces de la SDL et la puissance d'OpenGL, le monde va trembler devant SFML.