web-dev-qa-db-fra.com

Quelle est la différence entre OpenGl et XRender dans KDE Desktop Effects?

Dans l'environnement KDE lorsque vous accédez à Desktop Effects et dans l'onglet Avancé, il existe une option nommée "Type de composition" qui peut être définie sur OpenGl ou XRenderer.

  1. Quelle est la différence entre ces deux options?

  2. Quel est le cas d'utilisation de chaque option?

24
Nejat

OpenGL et XRender sont tous deux des API de dessin qui permettent des applications de certaines transformations géométriques tout en le faisant.

OpenGL est destiné aux opérations de dessin à exécuter par une unité de traitement graphique (GPU) dédiée et fournit de nombreuses fonctionnalités qui rendent la génération d'une image 3D très facile (tampon de profondeur, test de profondeur, matrices de transformation homogènes 4 × 4). Mais vous pouvez également faire des graphiques 2D avec OpenGL.

XRender est une extension du X11, pour prendre en charge des méthodes de rendu (anticrénelage, alpha blending) qui ne sont pas possibles avec les fonctions de base du dessin X11. L'API XRender est cependant optimisée pour les graphiques 2D (pas de tampon/test de profondeur, matrices de transformation 3 × 3).

Notez que XRender n'est pas parfaitement orthogonal à OpenGL. Surtout si vous avez besoin de l'anticrénelage dans OpenGL, vous devez utiliser quelques fonctions de XRender pour l'activer.

Quel est le cas d'utilisation de chaque option?

L'option de XRender est là pour prendre en charge les systèmes pour lesquels il n'y a pas de support OpenGL approprié (manque de pilotes stables), mais un support acceptable pour les opérations XRender. De plus, XRender est un peu plus facile à configurer (du point de vue des programmeurs) qu'OpenGL.

En général, OpenGL est plus flexible que XRender du point de vue des programmeurs. Si vous demandez lequel de chacun vous devez choisir: Commencez avec OpenGL et si tout fonctionne correctement, restez avec. L'option XRender est une solution de rechange si OpenGL ne fonctionne pas correctement (cependant, puisque de nos jours dans les pilotes XRender partage une grande partie avec OpenGL, ou est en fait implémenté en utilisant OpenGL, cela ne fait plus de différence pratique).

30
datenwolf