• [^] # Re: Après X, voici Y...

    Posté par (site web personnel) . En réponse à la dépêche Après X, voici Y.... Évalué à 10.

    Si XFree implémentait un bon BackingStrore il "suffirait" que les applications (en fait, les toolkits) s'en servent. Pour rappel, le BackingStore demande à X de garder en mémoire le contenu de la fenêtre. A partir de là, on pourait facilement avoir des backends différents pour le rendu lui-même, OpenGL ou autre.

    Un autre point : trop souvent, ce qui fait s'effondrer les perfs, c'est que lors du déplacement d'une fenêtre, le serveur X envoie des centaines d'événements Expose aux applications qui se trouvaient en dessous, pour qu'elles redessinent un morceau de leur fenêtre. La solution est facile à comprendre mais plus ardue à mettre en oeuvre :
    - soit on a un BackingStore (presque plus besoin d'Expose, le serveur connaît le contenu de chaque fenêtre)
    - soit le serveur X "regroupe" les différents Expose dans la queue d'événements. Cela dit, il le fait peut-être déjà. Si c'est le cas, c'est parce que X est trop rapide qu'il est lent, ou du moins en donne l'impression :)

    Le backingStore a aussi d'autres « avantages » : il permet la vraie semi-transparence. Avant qu'on me hurle dessus, je signale que je n'aime pas avoir ça sur l'entièreté d'une fenêtre normale. Mais ça permettrait de gérer les ombres des fenêtres (kde 3.2 roxor :p), des menus, et éventuellement, rendre semi-transparente une fenêtre lors de son déplacement. Tout ça bien sûr sans rien ralentir, n'importe quelle carte depuis la TNT1 étant capable de le faire en hardware.
    Et lors du mode réseau, le fait que le serveur garde en mémoire l'image de la fenêtre évite de devoir redemander à l'application de se redessiner alors que la liaison passe par une ligne satellite avec une latence d'une seconde...

    Donc non, je ne pense pas que X soit vieillissant. Tout au plus, c'est l'implémentation offerte par XFree et la Xlib qui n'est pas complète/parfaite. Je suis quasi certain que l'utilisation du backingStore et d'un backend OpenGL, couplée à une gestion un rien différente des Expose offrirait quelque chose de très très bon.