Re: cairo & pixmap
- From: "control H" <control h gmail com>
- To: "Philip Withnall" <philip tecnocode co uk>
- Cc: gtk-app-devel <gtk-app-devel-list gnome org>
- Subject: Re: cairo & pixmap
- Date: Wed, 23 May 2007 21:45:10 +0200
Ah, I just found out the solution is trivial.
GdkPixmap *pixmap;
/* Create a new backing pixmap of the appropriate size */
static gint
configure_event (GtkWidget *widget, GdkEventConfigure *event)
{
cairo_t *cr;
if (pixmap)
gdk_pixmap_unref(pixmap);
pixmap = gdk_pixmap_new(widget->window,
widget->allocation.width,
widget->allocation.height,
-1);
cr = gdk_cairo_create (pixmap);
/* do your drawing here */
cairo_destroy (cr);
return TRUE;
}
static gint
expose_event_cb (GtkWidget *widget, GdkEventExpose *event)
{
/* copy relevant part of pixmap back to screen */
gdk_draw_pixmap(widget->window,
widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
pixmap,
event->area.x, event->area.y,
event->area.x, event->area.y,
event->area.width, event->area.height);
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]