nejsem proti tomu, aby se stare veci nahradily novymi, lepsimi. Ovsem slovo lepsimi bych podtrhl. Jednou z hlavnich udavanych nevyhod X ma byt jeho komplexnost (molochovitost), ale podle obrazku architektury se da soudit, ze Waveland bud navic jeste obsahovat compositor a bude obsluhovat o tretinu mene klientu (Pocet klientu autor obrazku patrne schvalne snizil, aby architektura WL vypadala prehlednejsi). Uz tady mame jeden priklad uplatneni zbrusu novych pristupu. Jmenuje se KDE - tak jednou za rok to vyzkousim, zjistim, ze to nefunguje a vratim se k mozna zastaralemu, avsak funkcnimu Gnome.
Podivejte se na to z vetsi vysky.
Typicky GNOME 2 desktop s efekty pomoci compizu; aplikace pomoci GTK+ frameworku sestavi system spousty malych okynek, ktera jsou pres socket/sit/shm transportovana do X serveru, ktery je vykresli. Neco z techto okynek nekresli vsak X server, ale primo aplikace/GTK+. Jde napriklad o ikonky a dekorativni prvky. Z X serveru si compiz ziska vyslednou podobu okynka, opet pres socket/sit/shm a vytvori z ni texturu. Pote provede vsechny ty krasne 3D triky a opet zavola X server, tentokrat s vysledkem. Ten ale kresli pres celkem rychlou cestu DRI, ktera ovsem jde zcela proti indirect filozofii Xek. Procesorovy cas, potrebny k vykresleni okna se deli mezi aplikaci a X server. Procesorovy cas potrebny k zobrazeni okna a umisteni na plochu se deli mezi compiz a X server.
Na druhe strane mejme Wayland, az dozraje. Rekneme, ze misto defaultniho kompozitoru mame k dispozici compiz s odpovidajicim pluginem:
Aplikace pomoci GTK+ frameworku a zrejme caira nakresli cele sve okno, vcetne dekoraci a nasype ho do shm. Cairo bude (je?) akcelerovane grafickym hardwarem. Veskery procesorovy cas potrebny k vykresleni okna jde na vrub procesu, ktery ho vlastni. Kompozitor vezme ze shm novou podobu okna, udela z ni texturu, provede 3D triky a vysype ji na monitor. Cas potrebny pro 3D triky a umistovani okna jde na vrub kompozitoru.
A pokud nekdo dostane rozum, tak si uvedomi, ze aplikace muze bezet i s mrtvym waylandem a udela protokol tak, ze bude mozne aplikaci prehazovat mezi jednotlivymi kompozitory, pomoci nejake proxy klidne i pres sit... proste to, co X nikdy umet nebude.
A abych nezapomel. V pripade her to bude uplne dokonale. Hra proste podle nastaveni udelaa okno nejake velikosti a pak bude pres OpenGL kreslit primo do double-bufferu v shm. Samozrejme probehne jeste nejaka komunikace, jako fullscreen hint a podobne, ale zakladni koncept je uzasne jednoduchy.