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

Caml Discussion :

Plantage du module Graphics


Sujet :

Caml

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Plantage du module Graphics
    Bonsoir à tous,
    pour un projet j'utilise le module Camlimages, mais je rencontre un problème que je mets en évidence dans le code ci-dessous.
    Pour celà, tout bêtement, je charge une image png, puis je l'affiche une centaine de fois, et j'obtiens une jolie erreur du module Graphics.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #load "graphics.cma";;
    #use "topfind";;
    #load "camlimages/camlimages.cma";;
    #load "lablgtk2/lablgtk.cma";;
    #require "camlimages";;
     
    open Graphics;;
    open Images;;
    open Graphic_image;;
     
    let charge_image chemin =
    	let temp = Images.load chemin [] in
    		Graphic_image.array_of_image temp
    ;;
     
    let affiche_im im = 
      let temp = make_image im in
      Graphics.draw_image temp 0 0
    ;;
     
    let im = charge_image "/home/engu/tux.png";;
     
    for i = 0 to 100 do
    open_graph "";
    affiche_im im;
    close_graph ();
    done;;
    Ce qui me donne le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Exception:
    Graphics.Graphic_failure "Xlib error: BadPixmap (invalid Pixmap parameter)".
    Si je relance la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Exception: Graphics.Graphic_failure "fatal I/O error".
    Et cela fini par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ocamlrun: ../../src/xcb_io.c:528: _XAllocID: Assertion `ret != inval_id' failed.
     
    Process caml-toplevel abandon (core dumped)
    Ne sachant plus quoi faire, je m'en remets à vos aides et suggestions.
    Merci d'avance,
    Engu

    EDIT : Précision (il me semble) intéressante :
    - Si j'enlève "affiche_im im;" dans la boucle, le programme ne plante plus.
    - Si je supprime les "open_graph "";" et "close_graph ();" de la boucle et que j'ouvre le graph au préalable (la boucle ne contient plus que "affiche_im im;"), le programme ne plante plus.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Est-ce que ça marche si tu boucles de 0 à 5 au lieu de 0 à 100 ?

    Visiblement ton système a des limitations bizarres sur le nombre de pixmap que X accepte d'allouer (ça ne semble pas être spécialement lié à Caml). Quel environnement (système d'exploitation, sa version, etc.) utilises-tu ?

    Je ne comprends pas pourquoi tu tiens à ouvrir et fermer la fenêtre graphique à l'intérieur de la boucle -- à quel besoin cela correspond-il ? Le faire à l'extérieur me semble naturel et résout ton problème de plantage.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    PS: visiblement des gens mieux informés ont discuté de ton problème plus en détail [sur progmod]. N'hésite pas à aller leur poser la question directement !

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    En réalité sortir le open_graph / close_graph ne résout pas tout à fait tout (pour ne risquer aucun bug il faut l'ouvrir / le fermer une seule fois). Finalement je fais un open_graph au tout début, un close_graph à la toute fin.
    Pour information, le programme a été lancé sous Ubuntu 12.04.
    Merci à toi

Discussions similaires

  1. module graphics caml
    Par faelnirv59 dans le forum Caml
    Réponses: 0
    Dernier message: 12/04/2012, 21h20
  2. Probleme d'affichage [Module Graphics]
    Par larchicha dans le forum Caml
    Réponses: 2
    Dernier message: 08/01/2012, 15h22
  3. module graphics en ocaml
    Par nhella22 dans le forum Caml
    Réponses: 4
    Dernier message: 29/11/2011, 18h54
  4. Deux trois questions (notamment sur le module Graphics)
    Par drunkskater dans le forum Caml
    Réponses: 2
    Dernier message: 05/11/2010, 20h57
  5. [XL-2007] Plantage excel module VBE6.DLL
    Par Zeph1008 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/06/2010, 14h53

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