Super, vu les commentaires, le commun des geeks (je parle même pas du commun des mortels) n'a toujours pas pigé le bordel X/Composite Manager/OpenGL/rendu direct/rendu indirect/Toolkit/Composite/Redirection/ARGB/...
Redirection du rendu OpenGL : seul nVidia le supporte et ce quel que soit l'OS libre. Pour faire un essai, c'est hyper facile : lancez glxgears sur votre PC avec un compiz activé avec l'effet wobbly (les fenêtres molles), puis déplacez votre glxgears. La fenêtre ne sera pas déformée, et y'aura probablement des clignotements moches à l'écran. Si elle est déformée, sauf sur le pilote nVidia, vous êtes en rendu logiciel avec des mauvaises perfs. Ça s'améliore avec l'approche de TTM, mais c'est pas encore prêt (l'API est presque prête il me semble)
Pour faire de la transparence par pixel ou par widget : vous avez fumé quoi pour affirmer qu'il faut de l'OpenGL ? De plus, si vous voulez faire disons 1 pixel de votre fenêtre transparent (on voit à travers), vous avez besoin de l'ARGB et d'un composite manager derrière. L'OpenGL n'a strictement rien à voir là dedans.
Si la fenêtre n'est qu'une texture, dans ce cas elle n'est pas gérable dans X. X gère une fenêtre, pas une texture OpenGL. Pour afficher la texture à l'écran, faut la balancer dans quelque chose. Ce quelque chose, ben c'est une fenêtre.
Enfin, la vraie transparence avec le protocole X ne tue pas les performances. Il est heureusement inutile d'aller relire chaque fenêtre derrière vue qu'elles sont déjà dans la mémoire du composite manager. C'est l'un des intérêts de l'utilisation d'un composite manager plutôt qu'un machin dans le serveur X direct, comme suggéré par certains illuminés qui passent sur la mailing list de xorg une fois l'an proposer leurs solutions révolutionnaires sans en comprendre les tenants et les aboutissants...
[^] # Re: Zarb
Posté par Pinaraf . En réponse au journal GTK+ et OpenGL pour bientot ??. Évalué à 3.
Redirection du rendu OpenGL : seul nVidia le supporte et ce quel que soit l'OS libre. Pour faire un essai, c'est hyper facile : lancez glxgears sur votre PC avec un compiz activé avec l'effet wobbly (les fenêtres molles), puis déplacez votre glxgears. La fenêtre ne sera pas déformée, et y'aura probablement des clignotements moches à l'écran. Si elle est déformée, sauf sur le pilote nVidia, vous êtes en rendu logiciel avec des mauvaises perfs. Ça s'améliore avec l'approche de TTM, mais c'est pas encore prêt (l'API est presque prête il me semble)
Pour faire de la transparence par pixel ou par widget : vous avez fumé quoi pour affirmer qu'il faut de l'OpenGL ? De plus, si vous voulez faire disons 1 pixel de votre fenêtre transparent (on voit à travers), vous avez besoin de l'ARGB et d'un composite manager derrière. L'OpenGL n'a strictement rien à voir là dedans.
Si la fenêtre n'est qu'une texture, dans ce cas elle n'est pas gérable dans X. X gère une fenêtre, pas une texture OpenGL. Pour afficher la texture à l'écran, faut la balancer dans quelque chose. Ce quelque chose, ben c'est une fenêtre.
Enfin, la vraie transparence avec le protocole X ne tue pas les performances. Il est heureusement inutile d'aller relire chaque fenêtre derrière vue qu'elles sont déjà dans la mémoire du composite manager. C'est l'un des intérêts de l'utilisation d'un composite manager plutôt qu'un machin dans le serveur X direct, comme suggéré par certains illuminés qui passent sur la mailing list de xorg une fois l'an proposer leurs solutions révolutionnaires sans en comprendre les tenants et les aboutissants...