Tu ne parles pas de la même chose, OpenGL sert à faire le rendu, d'ailleurs QML à un backend OpenGL (il me semble même qu'il est activé par défaut dans QML 2 si les pilotes sont OK)
QCanvas est un outil très primitif, un canvas amélioré qui permet de dessiner dedans des pixels.
QGraphicsView permet de faire du dessin vectoriel et de QWidgets et OpenGL et de XEmbed et de petits poneys qui chantent dans une scène de rendu, le tout en gérant le layout, la profondeur des objets, la cohérence globale et le taux d'humidité de l'air ambiant.
Ça en fait quelque chose de lourd, dur à maintenir et à déboguer, compliqué à utilisé.
QML ne fait que du rendu d'objets QML, décrits dans un langague descriptif et avec des interaction décrites en javascript.
Tu n'as, à aucun moment, la possibilité d'agir directement sur le scenegraph, donc QML peut en faire, ce qu'il veut, et en particulier utiliser un moteur de rendu de scènegraph écrit en OpenGL qui est très performant et consomme peu de ressources mémoire et cpu. En plus, ça rends les choses beaucoup plus simple à écrire pour les mainteneurs et les développeurs d'applications QML.
OpenGL, bah c'est OpenGL, une couche d'abstraction la plus fine possible (à vent…) par dessus la carte graphique, ça permet de faire du rendu, et seulement du rendu, de la manière la plus optimale possible si tu as les bonnes data structures et que tu les fournis de la bonne façon.
[^] # Re: Obligé?
Posté par moi1392 . En réponse au journal KDE from scratch. Évalué à 10.
Tu ne parles pas de la même chose, OpenGL sert à faire le rendu, d'ailleurs QML à un backend OpenGL (il me semble même qu'il est activé par défaut dans QML 2 si les pilotes sont OK)
QCanvas est un outil très primitif, un canvas amélioré qui permet de dessiner dedans des pixels.
QGraphicsView permet de faire du dessin vectoriel et de QWidgets et OpenGL et de XEmbed et de petits poneys qui chantent dans une scène de rendu, le tout en gérant le layout, la profondeur des objets, la cohérence globale et le taux d'humidité de l'air ambiant.
Ça en fait quelque chose de lourd, dur à maintenir et à déboguer, compliqué à utilisé.
QML ne fait que du rendu d'objets QML, décrits dans un langague descriptif et avec des interaction décrites en javascript.
Tu n'as, à aucun moment, la possibilité d'agir directement sur le scenegraph, donc QML peut en faire, ce qu'il veut, et en particulier utiliser un moteur de rendu de scènegraph écrit en OpenGL qui est très performant et consomme peu de ressources mémoire et cpu. En plus, ça rends les choses beaucoup plus simple à écrire pour les mainteneurs et les développeurs d'applications QML.
OpenGL, bah c'est OpenGL, une couche d'abstraction la plus fine possible (à vent…) par dessus la carte graphique, ça permet de faire du rendu, et seulement du rendu, de la manière la plus optimale possible si tu as les bonnes data structures et que tu les fournis de la bonne façon.