Ca dépend de ce que tu veux remplacer parmis les différentes couches graphiques.
* Tu peux faire un toolkit graphique (widgets) comme Qt ou GTK+, dans ce cas tu devras coder tes propres applications.
-
Qt
-
GTK+
-
Fox
-
The Fast Light Toolkit
- ...
* Tu peux remplacer le window manager (au dessus de XFree, KWin, Metacity, Enlightenment 16, etc...), tu peux partir des sources de pas mal de window managers minimalistes qui existent deja.
* Tu peux vouloir faire un environnement desktop complet, comme KDE, GNOME, Enlightenment 17, etc.. A ce moment là, il y a beaucoup de docs et projets utiles sur
http://www.freedesktop.org. Il est interessant de voir les quelques technologies clées qui différencient ces environnement de simples window managers.
-
KDE Developer's Corner
-
Deep inside the K Desktop Environment 3.2
-
Inside the GNOME 2.6 Desktop & Developer Platform
Un point important à ne pas négliger, bien concevoir la "plateforme" qui sera utilisée pour développer les applications :
-
http://ometer.com/desktop-language.html
-
http://www.go-mono.com
* Tu peux remplacer XFree, serveur graphique, et dans ce cas c'est un peu plus compliqué parce que les drivers graphiques sont dans XFree. Il y a cependant sous Linux une interface de framebuffer au niveau du noyau qui permet de se passer d'avoir a recoder des drivers (fbdev).
-
Y Window System, excellente
documentation sur les problematiques à résoudre dans un tel programme.
-
DirectFB, couche d'acceleration au dessus du framebuffer Linux.
Lorsque tu remplaces XFree, tu as plusieurs solutions pour continuer a faire tourner des applications X :
- tu peux porter des toolkits sur ta nouvelle architecture, exemple : GTK+ et Qt tournent au dessus de DirectFB, sans avoir besoin de XFree
- tu peux aussi porter un serveur X au dessus de ton architecture, exemple :
XDarwin est un serveur X qui tourne au dessus de Aqua sous MacOS X, et n'importe quelle application X, quelque soit le toolkit, est capable de tourner avec ça.
Il faut savoir également que c'est XFree qui permet d'avoir de l'OpenGL acceleré... si tu utilises le framebuffer à la place, alors il faut mettre en place une autre solution : "Mesa fbdev/DRI Drivers"
-
The Mesa 3D Graphics Library
-
Direct Rendering Infrastructure
Autre point interessant, se renseigner sur les architectectures graphiques avancées qui existent.
* Quartz Extreme sous MacOS X :
http://arstechnica.com/reviews/02q3/macosx-10.2/macosx-10.2-8.html#qe
http://arstechnica.com/reviews/1q00/macos-x-gui/macos-x-gui-1.html
* Avalon/XAML sous Longhorn :
http://www.ondotnet.com/pub/a/dotnet/2004/03/08/winfs_detail_3.html
(les commentaires à la fin de l'article sont particulièrement instructifs).
* Evas sous Linux :
http://enlightenment.org/pages/evas.html
http://enlightenment.org/pages/pdf/evas.pdf