IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes Discussion :

Cohabitation QWidget / QML : " OpenGL windows cannot be mixed with others"


Sujet :

Plateformes

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Cohabitation QWidget / QML : " OpenGL windows cannot be mixed with others"
    Bonjour à tous !

    Je travaille actuellement sur une application embarqué développé sous Qt C++/QML.
    Mon problème apparaît depuis que je souhaite y intégrer un QWidget qu'il m'est impossible de coder/faire sous QML.

    Je souhaite donc encapsuler mon QWidget dans mon QML (ou inversement) ce qui s'avère être impossible sur du Linux embarqué
    (Ça fonctionne bien sur machine avec Qquickview ou createWindowContainer par exemple)

    Le problème viendrait de EGLFS : source
    As of Qt 5.3, eglfs supports a single fullscreen GL window (for example, an OpenGL-based QWindow, a QQuickView or a QGLWidget). Opening additional OpenGL windows or mixing such windows with QWidget-based content is not supported and terminates the application with an error message.
    Lorsque l'on essaye d’exécuter un programme mixant QML et QWidget on aura l'erreur :
    "EGLFS: OpenGL windows cannot be mixed with others."
    Auriez vous des idées/astuces/pistes pour régler ce problème ou suis-je obligé de tout passé en QWidget ?

    - Changer le QPA pourrait être une solution ... XCB ou Wayland pourraient ils être une solution ?
    - Jouer sur les framebuffers et diviser mon application en deux est-il possible ? (là ça devient alambiquer ^^ )

    Merci pour votre temps, et merci d'avoir lu !

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Votre widget hérite uniquement de QWidget ? Je me demande s'il n'y a pas moyen de partager le contexte OpenGL du Widget mère, vers le widget QML ... mais je n'ai jamais entendu parler de ça.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour LittleWhite !

    Mon widget hérite d'autre classe, mais pour mes tests je me cantonne à tester avec un simple container contenant un élément QML.
    Un bon exemple serait celui-ci : http://www.ics.com/blog/combining-qt...indowcontainer
    Ce code fonctionne bien sur ordinateur (après quelques modifications d'importations, le fichier télécharger ne fonctionnant pas directement).
    Mais exporter sur ma board je retrouve l'erreur indiqué :

    "EGLFS: OpenGL windows cannot be mixed with others."

    Ce que tu entends par "partage de contexte OpenGL" ce serait un moyen différents des outils Qquickview et createWindowContainer ? Pas sur de voir le genre de moyen dont tu parles

    Merci en tout cas d'avoir prit du temps sur ma question !

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Je n'ai pas de quoi tester, du coup, je donne des solutions un peu approximative. Je pense que tout rendu sur embarqué repose sur OpenGL (ce qui n'est pas obligatoirement le cas sur PC). La seconde possibilité est : il ne peut y avoir qu'un seul contexte OpenGL pour de l'embarqué (et aucune gestion d'autre contexte). Dans les deux cas, la solution est de gérer entièrement le contexte OpenGL à la main (voir EGL) et de les donner à Qt par la suite.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Très bien !
    Merci pour ces pistes !

    Je test XCB pour le moment mais je garde la gestion des contextes dans un petit coin de ma tête !

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant l'INSA de Rennes
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant l'INSA de Rennes
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    As tu résolu ton problème en utilisant xcb ?
    Je rencontre actuellement le même problème avec EGLFS et la gestion de QWidget / QML.
    Xcb n'utilise pas la platform EGLFS pour le display à l'écran?

Discussions similaires

  1. [Mission/Télétravail] Développement logiciel sur mesure (UML/C/C++/C#/Java/OpenGL/Windows/Linux/Android)
    Par ideoservo dans le forum Demandes
    Réponses: 0
    Dernier message: 20/06/2009, 10h29
  2. Réponses: 4
    Dernier message: 06/05/2006, 21h28
  3. Réponses: 2
    Dernier message: 12/04/2006, 11h08
  4. Linux Embarqué
    Par nicolaskarp dans le forum Linux
    Réponses: 10
    Dernier message: 19/03/2006, 12h34
  5. JVM linux plus lente que la JVM windows?
    Par luckyvae dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo