Question

Ce que je comprends, il n'y avait pas de modules au début de l'intervalle Qt versions, il y avait des classes avec différentes fonctions, y compris les graphiques.Support d'Opengl a été réalisée En qt 1.2.Cependant, QPainter, QImage existait dans les premières versions.Donc, est-il correct de dire que ces classes sont indigènes (en d'autres termes, les classes, qui ont été primordiaux);opengl classes - non-natif (c'est un separste branche, après tout)?J'aimerais apprendre une nouvelle évolution de Qtopengl non-native solution de rechange pour la création graphique 2D ih Qt, de l'influence de ce module sur l'évolution des indigènes méthodes (pour la création graphique 2D).

Était-ce utile?

La solution

Alors, est-il correct de dire que ces classes sont indigènes?

non, ce n'est pas.

La raison de celle-ci est "native" signifierait différentes choses pour différentes personnes. C'est la question de l'interprétation. Voir votre autre question à quel point nous avons été confus.

Aujourd'hui, je pense que vous voulez dire "non-OpenGL" 2 / 3D par natif. Cela signifie probablement que la rasterisation logicielle est opposée directement à travers le pilote d'affichage. Donc, toujours sur le niveau QT, mais sans les classes OpenGL dans Qt.

Maintenant, c'est le point où nous pouvons revenir à Qimage et QPainter. Oui, QPainter est fondamentalement la génération initiale pour la rasâtre logicielle à partir des moments où les GPU n'étaient pas si courants et pas chers comme ces jours-ci.

Ils effectuent essentiellement le rendu purement des techniques logicielles. C'est-à-dire qu'il est plus limité, mais cela fonctionnait sans plus chère et moins courant.

(C'étaient les périodes de tremblement de terre et d'autres produits logiciels, Times amusants qui le regardent depuis la perspective d'aujourd'hui ...)

Autres conseils

Si par "natif" tu veux dire "assistée par matériel", puis la ligne n'est pas si clair plus.Notez que QPainter pouvez utiliser différents moteurs de peinture à faire de la peinture, simplement à l'aide d'un QPainter ne signifie rien par lui-même.

Si par "matériel assisté", on signifie simplement à l'aide de quelque chose de plus que l'héritage entier ou à virgule flottante unités d'exécution de la CPU, alors oui, la trame de la peinture, le moteur ne utiliser divers SIMD/dirigea les opérations lorsqu'elles sont disponibles.La trame de la peinture du moteur est le moteur utilisé pour la peinture sur QImage, QPixmap et non-GL QWidget.

Si par "matériel d'assistance" vous voulez dire "rendu par la carte graphique matériel", alors vous devez utiliser un OpenGL peinture moteur.Il est utilisé lorsque vous peignez sur un QGLWidget ou dans un QQuickPaintedItem.Bien sûr, la peinture est toujours définie par le logiciel de la géométrie de l'installation et les shaders sont juste code!Ce logiciel fonctionne sur du matériel qui peut exécuter beaucoup plus rapide que les Processeurs à usage général possible.

Étant donné que la fonction fixe pipeline OpenGL est plus ou moins un artefact historique de ces jours, il n'est pas inexact d'affirmer que tous de rendu dans Qt est fait en utilisant uniquement des techniques logicielles, mais le logiciel peut s'exécuter sur un PROCESSEUR, ou l'effet de levier SIMD/vecteur des unités d'exécution sur un PROCESSEUR, ou peut s'exécuter sur un GPU.

Il faut dire aussi que les pilotes Windows ces jours-ci pas accélérer GDI/gdiplus dessin autres que les blits.Donc quand vous faites le dessin 2D en utilisant le moteur raster, surtout sur les anciennes versions de Windows, comme XP, Qt peut être plus rapide que la plate-forme native de dessin 2D.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top