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 :

[WIN32][OpenGL]Rappel du dernier buffer affiché


Sujet :

OpenGL

  1. #1
    Invité(e)
    Invité(e)
    Par défaut [WIN32][OpenGL]Rappel du dernier buffer affiché
    Bonjour,

    Je travaille aujourd'hui avec une caméra très lente (1 image par seconde).

    Pour réaliser l'affichage de ce qui sort de la caméra, je passe par glDrawPixels et du double buffering.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    glMatrixMode(GL_MODELVIEW);
    glClearColor(0, 0, 0, 0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glOrtho(0, 1, 0, 1, 0, 1);
    glDrawPixels(width, height, GL_LUMINANCE, GL_UNSIGNED_SHORT, pBuffer);
    SwapBuffers(GetDC(hdc));
    Tout ce passe bien, chaque seconde, mon image est affichée.

    Cela dit, quand je cherche à redimensionner mes fenêtres d'affichage, l'image est effacée (normal) et il faut attendre l'image suivante pour revenir à la normale (ce qui se voit pas mal à cette cadence).

    Donc : est il possible de demander à openGL de réafficher le buffer courant ?

    L'idée est de ne travailler avec le buffer pBuffer seulement quand on récupère une image et de ne pas le trimballer ailleurs.

    Je développe avec borland 5 et l'affichage OpenGL est réalisé dans un objet TPanel.

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut OGL
    Salut
    Je te propose de diminuer le temps qui separe deux image lorsque le message de redimensionnement arrive a la fenetre, en plus je pense que tu as utiliser le double buffering

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Finalement, la méthode retenue est la suivante :

    • Chaque contexte opengl a une zone mémoire correspondant à la zone affichée ;
    • A chaque réception d'image en provenance de la caméra, chaque contexte garde une copie de la zone image qui l'intéresse ;
    • Au moment de l'affichage, chaque buffer va piocher dans sa zone mémoire.


    Et le tout fonctionne pas mal.

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par MP
    bonjour je débute en opengl et je voudrais faire apparaitre l'affichage dans un TPAnel sous c++ builder , j'ai fais quelque recherches mais je ne trouve rien de concluent.mais j'ai vue sur une de tes discutions(http://www.developpez.net/forums/d59...uffer-affiche/) que tu l'avais fais pour une de tes applications,alors pourrais tu m'expliquer comment tu a fais stp ou me donner un indice pour commencer?.
    C++builder vient avec des projets d'exemple, dont des projets opengl... il suffit de piocher dedans.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/07/2007, 16h42
  2. Réponses: 7
    Dernier message: 19/10/2006, 21h06
  3. [MySQL] decallage de la dernieres ligne affiché
    Par jojo77 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/03/2006, 17h27
  4. Réponses: 2
    Dernier message: 09/10/2004, 12h35
  5. [Win32] OpenGL & GDI
    Par Blustuff dans le forum OpenGL
    Réponses: 7
    Dernier message: 26/05/2004, 09h56

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