// 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)], GDK_PIXBUF(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);
Marsh Posté le 25-04-2008 à 10:56:33
Bonjour à tous,
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 :
(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 :
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 :
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.
Marche pas :
TEST 3 :
Creation gDk_window sur laquelle je fais le test 2 :
GdkWindowAttr attributes;
gint attributes_mask;
attributes_mask = GDK_WA_VISUAL | GDK_WA_X | GDK_WA_Y | GDK_WA_COLORMAP;
myWin = gdk_window_new (ps_Struct->p_window, &attributes, attributes_mask);
// Chargement du pixbuf
pix_buf = gtk_image_get_pixbuf(GTK_IMAGE(ps_Struct->p_image[i]));
// Creation pixmap
pix_map = gdk_pixmap_new(myWin,
gdk_pixbuf_get_width(GDK_PIXBUF(pix_buf)),
gdk_pixbuf_get_height(GDK_PIXBUF(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)],
GDK_PIXBUF(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);
mais... toujours pas :
(visu_detou:5094): Gdk-CRITICAL **: gdk_drawable_get_screen: assertion `GDK_IS_DRAWABLE (drawable)' failed
(visu_detou:5094): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
(visu_detou:5094): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(visu_detou:5094): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed
Julien.
Message édité par jijiz le 25-04-2008 à 15:34:04