Il y a un point en particulier qui m'interesserait fortement : il faudrait que la bibliothèque en question soit séparée en deux.
A) Une bibliothèque qui permet de créer/manipuler une interface graphique mais qui ne la rends pas directement, qui fait appel à...
B) ..une bibliothèque qui implémente le "rendu", la gestion de l'aspect final perçu.
La bibliothèque fournirait un B) qui gérerait l'aspect tel que fourni par l'OS. En gros comme n'importe quelle bibliothèque d'interface.
La raison derrière cette séparation serait de permettre à l'utilisateur (ou a d'autres développeurs de libs graphique) d'implémenter leur propre gestion de l'aspect.
Cela permettrait par exemple aux bibliothèques de rendu 3D d'apporter leur propre "plugin" pour exploiter l'api de A) mais en ayant le rendu, l'aspect final dans leur moteurs.
Cela permettrait aussi de choisir l'aspect final de l'application sans être limité à une système de skins (dont les limites sont justement de ne pas permettre d'être rendu autre part qu'au niveau de l'API de l'OS).
Je ne sais pas si je suis clair dans ma description, mais je pense que ça serait vraiment utile de permettre aux développeurs d'implémenter la partie rendu si ils le souhaitent.
Je pense surtout au domaine du jeu vidéo où il y a des tas de solutions d'UI relatives a différents moteurs de rendu 3D... Avoir une seule interface(code) pour décrire l'UI de base (pas forcément le HUD, je parle bien du cas ou il y a besoin de boutons, de fenetres etc) et pouvoir éventuellement changer de moteur sans trop de dégats niveau code d'UI serait un gros bonus.
Partager