Y’a des périodes comme ça ou on arrive même plus à trouver le temps d’aller pisser …
Toujours est-il que ce dernier mois a été l’occasion de me pencher sur le problème des interfaces graphiques pour Raydium (support OpenGL, donc).
Première possibilité : utiliser une lib déjà existante. J’ai donc fait le tour de celles qui pouvaient avoir un caractère intéressant :
– FLTK (http://www.fltk.org/)
– GlGoogey (http://glgooey.sourceforge.net/)
– mUi (http://www.fifi.org/doc/glutg3/README.mui)
– Crazy Eddie’s GUI System (http://www.cegui.org.uk)
– GLUI (http://www.cs.unc.edu/~rademach/glui/)
– GG/GiGi (http://gigi.sourceforge.net/)
Certaines sont puissantes mais lourdes (dépendances fortes en particulier), d’autres simples mais très laides, d’autres trop "C++ elite style", d’autres superbes (GlGooey est impressionant) mais au prix d’une complexité insupportable, d’autres sans doc, etc.
Bref or donc bien sûr, comme je commence à en avoir l’habitude avec Raydium, je me suis jetté dans la délicate (mais intéressante) idée de réinventer la roue en codant la bonne GUI pour Raydium.
En me basant sur certaines idée de la VCL de Borland, j’ai commencé à coder la base : la notion de fenêtre, de widget, le focus. Puis le premier widget est arrivé : le bouton, suivi par le label, la trackbar, la boite de saisie, la checkbox et enfin la combobox.
Ca donne ça :
Le tout supporte les thèmes, et du haut de ma grande incompétence graphique, voilà le fichier de thème par défaut :
L’API est stabilisée et documentée (chapitre 33 de la doc), reste à écrire un tutoriel et à s’en servir dans les différentes applis qui attendaient ça depuis longtemps.
La version 1 de RayGUI, même si j’ai très fortement résumé son histoire ici, à été un truc très sympa à coder, pas compliqué dans le principe, mais avec beaucoup de subtilités à prendre en compte dans l’implémentation (on imagine mal les détails utiles à une bête boite de saisie : taille et offset du texte, curseur, …), qui résument assez bien le plaisir de coder que doivent ressentir tous les passionnés de développement.
Du soleil par la fenêtre, une ambiance musicale : let’s code ! 🙂
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.