|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 8 ![]() |
Bonjour a tous !
je suis dans l'exploration de QWindow dans QT 5.0.0 en utilisant les précieuses information suivantes : http://qt.developpez.com/actu/49471/...rne-dans-Qt-5/ je me suis aperçu que qt 5.0.0 renvoie toujours la version opengl ES 2.0 et j'ai donc essayé de changer tous les paramètres pour travailler avec une autre version opengl mais sans succès. Voici ci dessous le code correspondant : Code :
http://qt-project.org/forums/viewthread/20424 Donc il s'agit d'un bug au niveau du module QtOpengl. 1 - DONC QT 5 ne fonctionne qu'avec 1 seule version Opengl? 2 -suivant le lien ci-dessus cela veux dire qu'il faut recompiler qt en remplaçant le fichier contenant le bug? 3 - s'il faut recompiler, cela dépasse pour le moment mes compétences quelqu'un aurait une info sur cette dernière question.? Merci |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 317 ![]() |
Il y a eu effectivement une régression par rapport au support d'OpenGL dans Qt, du fait du passage au nouveau systèmes d'abstraction de la plateforme (QPA). La politique à un peu changer, le but pour Qt 5.0 est surtout de fournir le support d'OpenGL pour les besoins internes de Qt plutôt que pour les utilisateurs de Qt.
Du coup, le support de Qt s'est surtout orienté vers ES (support de Qt sur les plateformes mobiles oblige), retrait des shaders géométriques, retrait de Qt3D, etc. Il est prévu un support complet d'OpenGL 4.3 dans Qt 5.1, soit dans QtGui, soit dans Qt3D qui sera a nouveau intégré dans les libs Pour le moment, pour OpenGL, je conseille de rester sur Qt 4 EDIT : petite correction suite à un post de Sean Harmer : http://qt-project.org/forums/viewthread/22821/#107114 Le support d'OpenGL sera rétablit dans la version mingw de Qt, donc dans Qt 5.0.1, qui sort en janvier (décidément, j'ai beaucoup de mal à comprendre le choix de mettre la priorité sur MSVC au lieu de gcc sur window)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
10
|
|
|
#3 | ||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 351 ![]() |
En fait, la version Qt5 déjà compilée pour windows utilise Angle (et support directx). De ce que j'ai cru comprendre, c'est OpenGL ES2 qui sert au pont avec angle. Et comme dit plus haut, si tu developpes en OpenGL ES2, tu pourras plus facilement aller vers le mobile.
Si par contre; le mobile ne t'interresse pas, si tu veux le support de OpenGL, tu dois compiler Qt5 avec l'option "-opengl desktop". De mémoire, il y a néanmoins un support à partir de OpenGL 2.1 (donc 2.1 ou +); je vais tenter de retrouver la source de ce propos. http://blog.qt.digia.com/blog/2012/1...fferent-angle/ Citation:
L'adresse est indiquée 64bit mais la procédure est la même. Comme j'ai quand meme galéré, je vous donne ce que j'ai utilisé (pas de openssl, pas icu, pas angle): Citation:
Pensez à virer les deux répertoires de Webkit. Il ne compile actuellement pas avec mingw. Ce serait la raison de la non-disponibilité du package mingw.
__________________
Un petit si la réponse convient. Merci.
|
||
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 8 ![]() |
Merci pour ces éclaircissements. Je comprend mieux la volonté de Qt 5 vis à vis de l'OpenGL.
En regardant l'OpenGL ES 2.0 , cette version offre pas mal de possibilité et garde l'avantage d'être "plus" portable. Si la sortie de la version 5.0.1 est proche, pour ma part je vais laisser de côté la re-compilation de Qt et travailler avec Qt 4 ( ... car re-compiler c'est toujours un peu donc merci rapotor pour les infos sur ce sujet, je les garde sous le coude ca pourrait servir.)
|
|
|
00
|
|
|
#5 | |
|
Membre éclairé
![]() ![]() Inscription : février 2010 Messages : 242 ![]() |
Citation:
D'un autre côté explique moi l'intérêt d'un port gcc sur windows alors que MSVC est disponible gratuitement ? (si ce n'est pour des raisons philosophiques, que je respecte mais je cherche les raisons techniques ici :p)
__________________
http://sfabry.developpez.com/ |
|
|
|
00
|
|
|
#6 | |
![]() ![]() |
Salut,
Citation:
Toute considération philosophique mise à part Je ne vois qu'une raison qui pourrait passer presque inaperçue, tant elle est mineure : l'exécrable support de la norme que peut avoir MSVC au regard de ses concurrents à version similaires... Sans blagues: si tu t'intéresses un peu ne serait-ce qu'aux nouvelles fonctionnalités de C++, à celles qui ne sont pas encore disponibles même pour MSVC2012 et que tu les compares à ce qui est disponible ne serait-ce qu'avec Gcc 4.6, il n'y a clairement pas photo Alors, bien sur, on attend avec impatience le portage de CLang sous windows, car il bat Gcc à plat de couture, mais bon, comme il est pas disponible...
__________________
en bas de page
|
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 317 ![]() |
@ness522
Pour la raison évoqué dans d'autres discussions sur l'installation de Qt : MSVC (a priori, j'en suis pas spécialiste, c'est la raison invoquée) autorise inclure dans une SDK un "redistribuable" (à prononcer à l'anglaise), qui autorise l'exécution d'un programme compilé avec MSVC, mais mais d'inclure le compilateur MSVC dans le SDK de Qt. Du coup, jusque maintenant, le SDK de Qt 5 n'était utilisable directement après installation (ça a peut être changé dans la version finale ?), il fallait installer en plus MSVC express (ce qui a posé beaucoup de problème aux débutants), contrairement à gcc qui était inclue dans le SDK. Ensuite, c'est des considérations techniques. J'aime pas devoir écrire du code de shader différent pour OpenGL et DirectX (Angle). Et je préfère ne pas devoir apprendre l'utilisation avancée (options de compilation, support de C++11) de plusieurs compilateurs (je peux utiliser gcc suis windows, mais pas MSVC sous linux) J'imagine qu'il doit y avoir d'autres problématiques, mais j'utilise pas assez MSVC pour tout voir ce qui me convient pas (c'est un choix perso, pas une argumentation pour convaincre les gens d'utiliser gcc)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#8 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 84 ![]() |
Petit retour d'expérience, je viens de porter un gros projet (SpectraLayers) de Qt 4.8/MinGW/OpenGL à Qt 5.0/MSVC/OpenGL ES. Le tout sous Qt Creator.
Le passage de Qt 4.8 à Qt 5.0 n'a pas été une grosse difficulté: quelques fonctions ont été déplacés de classe, et certaines classes ont été renommés, mais grosso modo c'est allé assez vite (98% du code est resté tel quel). Il faut juste piger que le partitionnement des modules n'est plus le même, par exemple les widgets ne font plus partie du module Gui mais du nouveau module Widget, et donc changer quelques headers globeaux/librairie Qt necessaire au projet. Pour ceux qui créent des plugins, la déclaration des plugins a aussi légèrement changé, on passe de Q_EXPORT_PLUGIN2 à Q_PLUGIN_METADATA (qui n'ont pas exactement les mêmes paramètres). A noter aussi la disparition de setAlphaChannel, il faut recréer son propre équivalent. Le passage de MinGW à MSVC a été un peu plus compliqué, par exemple j'avais quelques sous-projets dans mon code principal qui n’étaient pas compris par MSVC, j'ai du simplifier la structure du projet en transformant mes sous projets du code principal en projets de librairies statique de meme niveau que le projet principal, et lier ces librairies statique à mon code principal. Il a fallut d'autre part convertir certaines directives de compilation et de déclaration de fonctions propres à gcc, mais j'en avais peu dans mon code. Pour faire la distinction, dans le code c++ j'ai des: Et dans mon projet .pro: Code :
Au niveau des perfs c'est à peu près équivalent, voire même un peu gagnant par endroit, par contre j'ai remarqué que MSVC gérait mal l'optimisation de boucles for(; Enfin, le passage de OpenGL à OpenGL ES a été vraiment galère. Mais quelque part c'est un mal pour un bien, dans la mesure ou OpenGL ES est une version simplifié d'OpenGL ça oblige à repenser de manière un peu plus simple sont code OpenGL (je faisais jusque là allègrement usages de tricks OpenGL en tout genre, y compris de fonctions obsolètes). Heureusement le framework Qt est la pour nous accompagner dans le développement OpenGL ES en fournissant quelques fonctions qui font gagner du temps. Je dois souligner d'ailleurs que j'ai fait en sorte que mon nouveau code soit compatible à la fois avec OpenGL ES et OpenGL, dans la mesure ou Qt 5 sur mac (mon logiciel est compilé sur mac aussi) utilise toujours OpenGL. Pour cela, dans mes shaders j'ai rajouté l'entête suivante: Code :
Code :
Code :
Code :
Mon seul regret est la disparition des Pixel Buffer Object (qui ne sont réintroduits que dans OpenGL ES 3), bien pratiques pour faire des transferts rapide de textures, j'ai du compenser en renvoyant mon architecture globale. Je n'ai pas encore tout à fait finit le portage OpenGL mais le code minimal fonctionnel est en place, il ne faut pas hésiter à s'inspirer des exemples opengl fournis dans le SDK (qui sont pour la plupart compatibles OpenGL/OpenGL ES). Au final j'ai du passer 10% du temps sur le passage Qt 4.8->Qt 5, 20% sur MinGW->MSVC, et 70% sur OpenGL->OpenGL ES (restructuration complète oblige). En espérant que ce retour puisse vous éclairer ! |
||||||||||
|
|
20
|
|
|
#9 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 415 ![]() |
Bonjour,
Il y a le code d'exemple aussi de la formation des Qt Dev Days 2012 : http://qt.developpez.com/evenement/2.../dd-opengl.zip (je ne sais pas si c'est le même que celui de la documentation).
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
Copyright © 2000-2013 - www.developpez.com