demos: Convert to drawing with Cairo instead of GdkRGB
This commit is contained in:
@ -89,20 +89,14 @@ load_pixbufs (void)
|
|||||||
static gint
|
static gint
|
||||||
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||||
{
|
{
|
||||||
guchar *pixels;
|
cairo_t *cr;
|
||||||
int rowstride;
|
|
||||||
|
|
||||||
rowstride = gdk_pixbuf_get_rowstride (frame);
|
cr = gdk_cairo_create (event->window);
|
||||||
|
gdk_cairo_set_source_pixbuf (cr, frame, 0, 0);
|
||||||
|
gdk_cairo_rectangle (cr, &event->area);
|
||||||
|
cairo_fill (cr);
|
||||||
|
|
||||||
pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3;
|
cairo_destroy (cr);
|
||||||
|
|
||||||
gdk_draw_rgb_image_dithalign (widget->window,
|
|
||||||
widget->style->black_gc,
|
|
||||||
event->area.x, event->area.y,
|
|
||||||
event->area.width, event->area.height,
|
|
||||||
GDK_RGB_DITHER_NORMAL,
|
|
||||||
pixels, rowstride,
|
|
||||||
event->area.x, event->area.y);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user