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 :

Connaissez vous ce problème ??


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut Connaissez vous ce problème ??
    Bonjour,

    je souhaitais faire afficher trois images avec opengl.
    Elles étaient contenu dans un structure image très classique et fiable.
    Le seul souci c'est qu'elles avaient des tailles différentes, mais ça, la structure le gère parfaitement.
    J'ai donc redimensionné le Glubyte chaque fois que je voulais faire afficher une image (normal puisque les tailles sont différentes).

    Et bien je me suis pris un beau Segmentation fault.

    Quelqu'un aurait il une idée ???
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    salut,

    euh pour ton problème un peu de code aurait pu aider...

    structure contenant l'image, redimenssionement, affichage..

    merci !

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 349
    Par défaut
    Faudrait plus de précisions...


    Citation Envoyé par ToTo13
    Elles étaient contenu dans un structure image très classique et fiable.
    Quoi comme structure?


    Citation Envoyé par ToTo13
    J'ai donc redimensionné le Glubyte
    Glubyte n'est qu'un synonyme de byte (un simple #define pour raisons de portabilité). Je ne vois pas comment tu peux le redimensionner??? Un byte vaut toujours 8 bits

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    - ma structure image est de la forme
    typedef struct
    {
    int width, height, size ;
    Pixel *data ;
    } Image ;
    C'est tout ce qu'il y a de plus classique pour contenir un image. Pixel est de type short.


    - En OpenGL, il faut convertir l'image en GLubyte afin de pouvoir l'afficher à l'aide de glDrawPixel. J'ai donc un "GLubyte *I" qui me sert à l'affichage. Je doit ainsi le redimensionner en fonction de la taille de chacune des images à afficher.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    - Y-a-t-il une raison pour ne pas utiliser des textures?

    - Est-ce qu'on peut voir le code pour ta redimension et ton affichage avec glDrawPixels?

    Jc

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 349
    Par défaut
    Ok si je comprends bien tu veux afficher trois images de tailles différentes, et il te faut donc passer trois tableaux de tailles différentes à glDrawPixel.

    Le "segmentation fault" intervient lorsque ton programme essaye de lire une adresse mémoire qui n'existe pas. Par exemple tu passes à ton glDrawPixel un tableau de taille 16 et tu lui spécifies qu'il a une taille de 32, il va donc lire "trop loin" (en dehors du tableau).

    Il faudrait effectivement nous montrer ton code où tu crées ton tableau de bytes et l'appel à glDrawPixel.

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    je connaissais effectivement le principe du "Segmentation fault"

    Pour ce qui est du code, voilà les parties concernées :
    GLubyte *I = NULL ; /* le glubyte général */


    /* la fonction qui remplit le GLubyte afin de pouvoir l'afficher */
    void BasculeImage(Image *image, GLubyte *Ima)
    {
    int i, j ;

    if ( Ima != NULL ) free(Ima) ;

    if ( (Ima=(GLubyte *)malloc(image->size*sizeof(GLubyte))) == NULL )
    {
    printf("Impossible d'allouer l'image a afficher\n");
    exit(EXIT_FAILURE) ;
    }
    assert(Ima != NULL) ;

    for (i=0 ; i < image->size ; i++)
    Ima[i]=(GLubyte)image->data[i] ;
    }



    /* Le glDrawPixel situé dans ma procédure affichage */
    glDrawPixels(Im[ImageCourante].width, Im[ImageCourante].height, GL_LUMINANCE, GL_UNSIGNED_BYTE, I) ;

    Le seul souci, c'est que lorsque j'ai traqué le segmentation fault à coup de printf et de gdb, il intervenait APRES l'affichage !!!!!

    C'est là que j'ai pas compris....

    Merci...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Clarion] Connaissez vous ?
    Par lil_jam63 dans le forum Autres langages
    Réponses: 3
    Dernier message: 09/10/2008, 15h42
  2. Connaissez vous SAPdb
    Par XavierZERO dans le forum SAP
    Réponses: 4
    Dernier message: 29/01/2007, 23h32
  3. Quel site connaissez-vous pour la physique ?
    Par dips dans le forum Physique
    Réponses: 5
    Dernier message: 02/06/2004, 16h17
  4. Connaissez vous un routeur pour ...
    Par loki dans le forum Développement
    Réponses: 3
    Dernier message: 18/09/2002, 09h05
  5. [langage] connaissez-vous autre chose que -d
    Par Sébastien dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 20h13

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