Bonjour,

Depuis des mois je développe un textarea et un textbox héritant du textarea. J'utilisais la librairie SDL avec OpenGL, mais je passe maintenant à SFML et OpenGL. Je vais vous expliquer comment je vois mon textbox et le texte qui s'y trouve.
J'ai souhaité utiliser des polices normales (ttf...) et pour ça, rien de sorcier, SFML règle bien ce problème. Mais, je souhaite aussi proposer des polices originales contenant par exemple des petits motifs de couleurs dans les caractères. Là il me faut donc gérer mes caractères comme des sprites tirés de fichiers images. Seulement voilà, je souhaite que les motifs soit en niveau de gris et y appliquer de la couleur dessus comme des polices normales. Par exemple, un motif de dégradé en niveau de gris et quand on met une couleur sur le caractère, on voit un dégradé de cette couleur. Là aussi j'ai trouvé un moyen avec SFML de faire ça, mais pas vraiment comme je l'imaginais au départ.

Si j'affiche mes caractères un par un à chaque rafraichissement de l'écran, la technique de SFML est utilisable simplement. Mais, quand mon textbox doit afficher toujours la même portion de texte (pas de scrolling effectué, pas d'écriture dans le texte pour le moment), il me semble inutile de faire afficher chaque caractères un par un par l'ordinateur à chaque frame. J'ai donc pensé à dessiner ceux-ci comme il faut dans un buffer image et afficher ce buffer tant qu'il n'est pas modifier par un scrolling ou une édition du texte. L'ennuis est qu'avec SFML, il me faudrait faire cela dans un sf::Image et non dans un sf:Sprite, hors le changement de couleur sur mon motif ne se fait que sur des sf::Sprite. Et construire sur des Sprites puis passer en Image est une opération lourde. Je ne peux donc afficher que caractère par caractère à chaque frame.
J'espère que mon problème est clair. A l'écrit comme-ça ce n'est pas simple.

Pour faire le bon choix, j'aimerais donc que vous me renseignez si possible sur la manière dont est géré l'affichage des caractères dans un textbox. Comment les développeurs qui ont eu à faire des textbox d'interfaces graphiques s'y sont-ils prit ? Economisent-ils les calculs en faisant des buffers d'image du texte à afficher à l'écran, ou font-ils réafficher à chaque frame les caractères ?

Une méthode que j'ai abandonné, pour une raison évidente de lenteur, ces le dessin du texte dans un buffer, pixel par pixel.

ps: je n'ai pas de code à vous montrer, car tout cela est encore à l'état de concept, ne sachant pas exactement comment est construit un algorithme de gestion d'affichage d'un textbox.