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

GTK+ avec C & C++ Discussion :

gdk_pixmap_create_from_data () et Ubuntu-10.0.4


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 329
    Points : 606
    Points
    606
    Par défaut gdk_pixmap_create_from_data () et Ubuntu-10.0.4
    Bonjour,
    J'utilise sans problème gdk_pixmap_create_from_data () avec NULL comme premier argument mais en donnant la profondeur (depth), comme indiqué dans la doc:
    drawable : a GdkDrawable, used to determine default values for the new pixmap. Can be NULL, if the depth is given.

    Ceci, avec ma Debian Lenny et sous Windows (GTK+-2.16). Mais hier, j'ai mis à jour Ubuntu-8.0.4 vers Ubuntu-10.0.4 (comme proposé par le site) et depuis, j'ai le message:

    Gdk-CRITICAL **: _gdk_drawable_get_source_drawable: assertion `GDK_IS_DRAWABLE (drawable)' failed

    J'ai cherché dans http://bugzilla.gnome.org et je n'ai rien trouvé à ce sujet.

    S'agit-il d'un bogue de la version 20 de GTK ou de Ubuntu?

    Je dois dire que je ne suis pas un utilisateur régulier de Ubuntu et que je ne sais pas trop comment procéder pour savoir si c'est un bogue connu, ou s'il ne l'est pas, et comment le signaler.
    Je joins un petit programme pour illustrer le problème.

    Merci de votre attention,
    P. Vincent
    Fichiers attachés Fichiers attachés
    GraceGTK: a plotting tool at https://sourceforge.net/projects/gracegtk

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    En effet ton programme fonctionne tout de même mais le message d'erreur apparait. Je suis aussi sous Ubuntu 10.04. Apparemment il considère que le premier paramètre ne peut pas être NULL.

    Ceci évite le message d'erreur mais bien sûr n'explique pas pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pixmap = gdk_pixmap_create_from_data (window->window  //UBUNTU-10.0.4  window->window
                                          ,(char*) grace_icon_bits
                                          , grace_icon_width
                                          , grace_icon_height
                                          , gg_depth  //UBUNTU-10.0.4 -1
                                          ,&black ,&white);

  3. #3
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 329
    Points : 606
    Points
    606
    Par défaut
    Merci de ta réponse rapide.
    J'ai contourné la difficulté en utilisant le GdkDrawable, mais je pense que c'est un bogue de GTK.
    GraceGTK: a plotting tool at https://sourceforge.net/projects/gracegtk

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Possible. Ou alors une erreur dans la documentation. Le premier argument n'accepte pas la valeur NULL.

    A suivre...

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    C'est un bug de GTK introduit dans la version 2.18. La valeur de "drawable" n'est pas testée.

    Comparer gdk_pixmap_new:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    GdkPixmap *
    gdk_pixmap_new (GdkDrawable *drawable,
                    gint         width,
                    gint         height,
                    gint         depth)
    {
      GdkDrawable *source_drawable;
     
      if (drawable)
        source_drawable = _gdk_drawable_get_source_drawable (drawable);
      else
        source_drawable = NULL;
      return _gdk_pixmap_new (source_drawable, width, height, depth);
    }
    et gdk_pixmap_create_from_data:
    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
    GdkPixmap*
    gdk_pixmap_create_from_data (GdkDrawable    *drawable,
                                 const gchar    *data,
                                 gint            width,
                                 gint            height,
                                 gint            depth,
                                 const GdkColor *fg,
                                 const GdkColor *bg)
    {
      GdkDrawable *source_drawable;
    
      source_drawable = _gdk_drawable_get_source_drawable (drawable);
      return _gdk_pixmap_create_from_data (source_drawable,
                                           data, width, height,
                                           depth, fg,bg);
    }
    Il aurait fallu écrire:
    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
    GdkPixmap*
    gdk_pixmap_create_from_data (GdkDrawable    *drawable,
                                 const gchar    *data,
                                 gint            width,
                                 gint            height,
                                 gint            depth,
                                 const GdkColor *fg,
                                 const GdkColor *bg)
    {
      GdkDrawable *source_drawable;
    
      if (drawable)
        source_drawable = _gdk_drawable_get_source_drawable (drawable);
      else
        source_drawable = NULL;
      return _gdk_pixmap_create_from_data (source_drawable,
                                           data, width, height,
                                           depth, fg,bg);
    }
    Un volontaire pour ouvrir un bug sur le bugzilla ? Au passage, le code est ouvert, on peut voir rapidement quand un bug a été introduit
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  6. #6
    Membre actif Avatar de Gamall
    Profil pro
    Étudiant ENSEA
    Inscrit en
    Août 2009
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant ENSEA

    Informations forums :
    Inscription : Août 2009
    Messages : 252
    Points : 221
    Points
    221
    Par défaut
    Vive l'open source

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Je me suis lancé : Bug 631332.

  8. #8
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Merci . Si personne ne s'y colle, j'irai commiter le correctif, ça me permettra de dérouiller mon accès aux serveurs
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  9. #9
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Je n'ai pas voulu ajouter ta solution pour ne pas me l'approprier. Il faut savoir rendre à César ce qui appartient à César

  10. #10
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Ouais, enfin sur un patch d'un centaine de lignes, je veux bien, mais pour 3 lignes faut p'têt pas déconner, je vais pas les breveter non plus . Je peux d'ailleurs vous annoncer que le patch a déjà été commité et le bug résolu . Ah, la magie du libre.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

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

Discussions similaires

  1. Ubuntu ne peut pas démarrer serveur X
    Par Invité4 dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 02/07/2005, 16h57
  2. [UBUNTU] Blocage a l'installation
    Par Invité4 dans le forum Ubuntu
    Réponses: 3
    Dernier message: 02/07/2005, 15h04
  3. [UBUNTU] Pages Web Iso-8859-15
    Par troumad dans le forum Ubuntu
    Réponses: 6
    Dernier message: 03/06/2005, 17h11
  4. [Linux]Lancement d'Eclipse sous Ubuntu x86_64
    Par sylbal dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 08/03/2005, 11h17
  5. PhpMyAdmin vs Mysql sous Ubuntu
    Par PiTiLeZarD dans le forum Installation
    Réponses: 11
    Dernier message: 12/01/2005, 23h02

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