GDK_IS_DRAWABLE (drawable)' failed. Dessin avec GTK
Bonjour à tous,
TEST 1 :
J'éssaye de déclarer un pixmap et de tracer un rectangle sur celui-ci. Or à l'exécution, le programme retourne l'erreur suivante :
Code:
1 2
| (visu_detou:27739): Gdk-CRITICAL **: gdk_draw_rectangle: assertion `GDK_IS_DRAWABLE (drawable)' failed
t_chemin_images : /home/julien/Edres-svn/tools/aaaImg/ |
Voici le code :
Code:
1 2 3 4 5 6 7
| GdkPixmap *pix_masque;
pix_masque = gdk_pixmap_new(ps_Struct->p_window,
400,
300,-1);
GdkGC *gc;
gc = gdk_gc_new(ps_Struct->p_image[i]->window);
gdk_draw_rectangle(pix_masque, gc, TRUE,0,0,60,60); |
J'ai également éssayé de récuperer le pixbuf d'une image existante et tracer dessus :
Code:
pix_masque = gtk_image_get_pixbuf(ps_Struct->p_image[i]);
Voila, je pense que je n'ai pas encore compri très bien le mécanisme de dessin avec GTK, Merci de m'éclairer.
TEST 2:
Je met mon pix buf dans un pix map pour le manipuler effectuer un traitement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| // Chargement du pixbuf
pix_buf = gtk_image_get_pixbuf(ps_Struct->p_image[i]);
// Creation pixmap
pix_map=gdk_pixmap_new(ps_Struct->p_window,
gdk_pixbuf_get_width(pix_buf),
gdk_pixbuf_get_height(pix_buf),
gdk_visual_get_system()->depth);
// Insertion du pixbuf dans le pixmap
gdk_draw_pixbuf(pix_map, ps_Struct->p_window->style->fg_gc[GTK_WIDGET_STATE ( ps_Struct->p_window)],
pix_buf,0,0,0,0,
gdk_pixbuf_get_width(pix_buf),
gdk_pixbuf_get_height(pix_buf),
gdk_visual_get_system()->depth,0,0);
// Sauvegarde du pixbuf
if( !gdk_pixbuf_save(pix_map, c_chemin_complet, "jpeg", (GError **) NULL, "quality", "100", NULL) )
{
printf("Erreur save pixbuf\n");
} |
Marche pas :
Code:
1 2 3 4 5 6 7 8
|
(visu_detou:31537): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed
(visu_detou:31537): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(visu_detou:31537): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(visu_detou:31537): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed |
Julien.