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

OpenGL Discussion :

OpenGl + X11 : Rendu dans un Pixmap


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut OpenGl + X11 : Rendu dans un Pixmap
    Le bonjour à tous !

    Je souhaite faire un rendu OpenGL dans un pixmap. Typiquement c'est le renderPixmap() de Qt. L'intérêt est de récupérer l'image dans un pixmap même si le rendu n'est pas fait à l'écran (fenêtre masquée par exemple).

    Alors, pour ce faire :

    1) Je crée un contexte
    cx = glXCreateContext( disp, (XVisualInfo *)vi, None, direct );

    2) Je crée mon GLXPixmap
    gpm = glXCreateGLXPixmap( disp, (XVisualInfo *)vi, d->paintDevice->handle() );

    3) Je fait mon makeCurrent
    ok = glXMakeCurrent( d->paintDevice->x11Display(), (GLXPixmap)gpm, (GLXContext)cx );


    4) Je ne vais pas plus loin, ca coince avec un :
    X Error: GLXBadContext 155
    Major opcode: 143
    Minor opcode: 5
    Resource id: 0x2600017


    Et là, je ne sais plus comment avancer, surtout que ça marche sans problème sur une carte nVidia... Mais la carte sur lesquelle ca DOIT marcher sont les Intel D865GBF, Intel D915GEV, Intel D965OT et leur GPU intégrés

    Le tout avec une distrib Ubuntu 6.10 Edgy (X11 version 7.1). Standard installation.

    Je sais que c'est un peu spécifique comme besoin (mais pas tant que ça) et je ne sais pas si le problème vient de moi, XGL, MESA, driver i810.

    J'espère que vous allez pouvoir me faire avancer, HELP !!!

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Quels sont les paramètres de création du contexte (j'imagine que c'est vi) ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Merci pour ton intérêt ! Ce n'est pas un domaine facile et j'ai vraiment besoin d'un soutien pour m'aider à me poser les bonnes questions

    Pour commencer, voici le glxinfo :
    visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
    id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
    ----------------------------------------------------------------------
    0x23 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x24 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x27 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x28 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x2b 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x2c 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
    0x2d 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x2e 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
    0x2f 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x30 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
    0x31 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
    0x32 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow


    Le visual utilisé pour l'affichage est le 0x25 et celui sélectionné pour le rendu pixmap est le 0x26 (même caractéristiques hormis l'absence de doublebuffering).

    Donc je set le tout avant de créer le contexte :
    int res;
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_LEVEL, &res );
    glFormat.setPlane( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_DOUBLEBUFFER, &res );
    glFormat.setDoubleBuffer( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_DEPTH_SIZE, &res );
    glFormat.setDepth( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_RGBA, &res );
    glFormat.setRgba( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_ALPHA_SIZE, &res );
    glFormat.setAlpha( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_ACCUM_RED_SIZE, &res );
    glFormat.setAccum( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_STENCIL_SIZE, &res );
    glFormat.setStencil( res );
    glXGetConfig( disp, (XVisualInfo*)vi, GLX_STEREO, &res );
    glFormat.setStereo( res );

    Bool direct = format().directRendering() ? True : False;


    Je ne sais pas, ça me semble propre... Une idée ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Pour info, j'ai ouvert un bug sur freedesktop.org

    https://bugs.freedesktop.org/show_bug.cgi?id=11041

    Je pense que c'est le driver i810 qui coince.
    Mais je suis toujour prenneur pour vos inputs.

    @+

Discussions similaires

  1. Tutoriel OpenGL Moderne - rendu dans une texture
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 15/06/2014, 13h20
  2. [Qt]Afficher une image d'openCV dans un pixmap
    Par astragoth dans le forum Qt
    Réponses: 8
    Dernier message: 14/03/2006, 15h14
  3. [X11] Lecture d'un pixmap
    Par Jack_serious dans le forum C
    Réponses: 2
    Dernier message: 24/01/2006, 16h10
  4. Réponses: 1
    Dernier message: 13/01/2006, 19h37

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