[evolution/rendering-cleanup: 5/63] gnome-canvas: Remove GnomeCanvasItem->render vfunc



commit a986206b0cd106c50b29a613b34b65a170291182
Author: Benjamin Otte <otte redhat com>
Date:   Fri Oct 8 15:37:55 2010 +0200

    gnome-canvas: Remove GnomeCanvasItem->render vfunc
    
    It's unused now

 libgnomecanvas/gnome-canvas-clipgroup.c |  168 -------------------------------
 libgnomecanvas/gnome-canvas-line.c      |   55 ----------
 libgnomecanvas/gnome-canvas-pixbuf.c    |   92 -----------------
 libgnomecanvas/gnome-canvas-rich-text.c |    9 --
 libgnomecanvas/gnome-canvas-shape.c     |   21 ----
 libgnomecanvas/gnome-canvas-text.c      |  116 ---------------------
 libgnomecanvas/gnome-canvas-widget.c    |   18 ----
 libgnomecanvas/gnome-canvas.c           |   32 ------
 libgnomecanvas/gnome-canvas.h           |    8 --
 9 files changed, 0 insertions(+), 519 deletions(-)
---
diff --git a/libgnomecanvas/gnome-canvas-clipgroup.c b/libgnomecanvas/gnome-canvas-clipgroup.c
index 350cb64..fae19fa 100644
--- a/libgnomecanvas/gnome-canvas-clipgroup.c
+++ b/libgnomecanvas/gnome-canvas-clipgroup.c
@@ -73,20 +73,6 @@ static void gnome_canvas_clipgroup_update          (GnomeCanvasItem           *i
  * although I am not sure.
  */
 
-#define GCG_BUF_WIDTH 128
-#define GCG_BUF_HEIGHT 128
-#define GCG_BUF_PIXELS (GCG_BUF_WIDTH * GCG_BUF_HEIGHT)
-#define GCG_BUF_SIZE (GCG_BUF_WIDTH * GCG_BUF_HEIGHT * 3)
-
-#define noSHOW_SHADOW
-
-static guchar *gcg_buf_new (void);
-static void gcg_buf_free (guchar *buf);
-static guchar *gcg_mask_new (void);
-static void gcg_mask_free (guchar *mask);
-
-static void gnome_canvas_clipgroup_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
-
 static GnomeCanvasGroupClass *parent_class;
 
 GType
@@ -129,7 +115,6 @@ gnome_canvas_clipgroup_class_init (GnomeCanvasClipgroupClass *klass)
 	gobject_class->get_property = gnome_canvas_clipgroup_get_property;
 	item_class->destroy	    = gnome_canvas_clipgroup_destroy;
 	item_class->update	    = gnome_canvas_clipgroup_update;
-	item_class->render	    = gnome_canvas_clipgroup_render;
 
         g_object_class_install_property (gobject_class,
                                          PROP_PATH,
@@ -292,156 +277,3 @@ gnome_canvas_clipgroup_update (GnomeCanvasItem *item, gdouble *affine, ArtSVP *c
 		item->y2 = MIN (item->y2, cbox.y1 + 1.0);
 	}
 }
-
-/* non-premultiplied composition into RGB */
-
-#define COMPOSEN11(fc,fa,bc) (((255 - (guint) (fa)) * (guint) (bc) + (guint) (fc) * (guint) (fa) + 127) / 255)
-
-static void
-gnome_canvas_clipgroup_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
-{
-	GnomeCanvasClipgroup *cg;
-	GnomeCanvasBuf lbuf;
-	guchar *mask;
-
-	cg = GNOME_CANVAS_CLIPGROUP (item);
-
-	if (cg->svp) {
-		gint bw, bh, sw, sh;
-		gint x, y;
-
-		/* fixme: We could optimize background handling (lauris) */
-
-		if (buf->is_bg) {
-			gnome_canvas_buf_ensure_buf (buf);
-			buf->is_bg = FALSE;
-			buf->is_buf = TRUE;
-		}
-
-		bw = buf->rect.x1 - buf->rect.x0;
-		bh = buf->rect.y1 - buf->rect.y0;
-		if ((bw < 1) || (bh < 1)) return;
-
-		if (bw * bh <= GCG_BUF_PIXELS) {
-			/* We can go with single buffer */
-			sw = bw;
-			sh = bh;
-		} else if (bw <= (GCG_BUF_PIXELS >> 3)) {
-			/* Go with row buffer */
-			sw = bw;
-			sh =  GCG_BUF_PIXELS / bw;
-		} else if (bh <= (GCG_BUF_PIXELS >> 3)) {
-			/* Go with column buffer */
-			sw = GCG_BUF_PIXELS / bh;
-			sh = bh;
-		} else {
-			/* Tile buffer */
-			sw = GCG_BUF_WIDTH;
-			sh = GCG_BUF_HEIGHT;
-		}
-
-		/* Set up local buffer */
-		lbuf.buf = gcg_buf_new ();
-		lbuf.bg_color = buf->bg_color;
-		lbuf.is_bg = FALSE;
-		lbuf.is_buf = TRUE;
-		/* Allocate mask */
-		mask = gcg_mask_new ();
-
-		for (y = buf->rect.y0; y < buf->rect.y1; y += sh) {
-			for (x = buf->rect.x0; x < buf->rect.x1; x += sw) {
-				gint r, xx, yy;
-				/* Set up local buffer */
-				lbuf.rect.x0 = x;
-				lbuf.rect.y0 = y;
-				lbuf.rect.x1 = MIN (x + sw, buf->rect.x1);
-				lbuf.rect.y1 = MIN (y + sh, buf->rect.y1);
-				lbuf.buf_rowstride = 3 * (lbuf.rect.x1 - lbuf.rect.x0);
-				/* Copy background */
-				for (r = lbuf.rect.y0; r < lbuf.rect.y1; r++) {
-					memcpy (lbuf.buf + (r - lbuf.rect.y0) * lbuf.buf_rowstride,
-						buf->buf + (r - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 3,
-						(lbuf.rect.x1 - lbuf.rect.x0) * 3);
-				}
-				/* Invoke render method */
-				if (((GnomeCanvasItemClass *) parent_class)->render)
-					((GnomeCanvasItemClass *) parent_class)->render (item, &lbuf);
-				/* Render mask */
-				art_gray_svp_aa (cg->svp, lbuf.rect.x0, lbuf.rect.y0, lbuf.rect.x1, lbuf.rect.y1,
-						 mask, lbuf.rect.x1 - lbuf.rect.x0);
-				/* Combine */
-				for (yy = lbuf.rect.y0; yy < lbuf.rect.y1; yy++) {
-					guchar *s, *m, *d;
-					s = lbuf.buf + (yy - lbuf.rect.y0) * lbuf.buf_rowstride;
-					m = mask + (yy - lbuf.rect.y0) * (lbuf.rect.x1 - lbuf.rect.x0);
-					d = buf->buf + (yy - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 3;
-					for (xx = lbuf.rect.x0; xx < lbuf.rect.x1; xx++) {
-#ifndef SHOW_SHADOW
-						d[0] = COMPOSEN11 (s[0], m[0], d[0]);
-						d[1] = COMPOSEN11 (s[1], m[0], d[1]);
-						d[2] = COMPOSEN11 (s[2], m[0], d[2]);
-#else
-						d[0] = COMPOSEN11 (s[0], m[0] | 0x7f, d[0]);
-						d[1] = COMPOSEN11 (s[1], m[0] | 0x7f, d[1]);
-						d[2] = COMPOSEN11 (s[2], m[0] | 0x7f, d[2]);
-#endif
-						s += 3;
-						m += 1;
-						d += 3;
-					}
-				}
-			}
-		}
-		/* Free buffers */
-		gcg_mask_free (mask);
-		gcg_buf_free (lbuf.buf);
-	} else {
-		if (((GnomeCanvasItemClass *) parent_class)->render)
-			((GnomeCanvasItemClass *) parent_class)->render (item, buf);
-	}
-}
-
-static GSList *gcg_buffers = NULL;
-static GSList *gcg_masks = NULL;
-
-static guchar *
-gcg_buf_new (void)
-{
-	guchar *buf;
-
-	if (!gcg_buffers) {
-		buf = g_new (guchar, GCG_BUF_SIZE);
-	} else {
-		buf = (guchar *) gcg_buffers->data;
-		gcg_buffers = g_slist_remove (gcg_buffers, buf);
-	}
-
-	return buf;
-}
-
-static void
-gcg_buf_free (guchar *buf)
-{
-	gcg_buffers = g_slist_prepend (gcg_buffers, buf);
-}
-
-static guchar *
-gcg_mask_new (void)
-{
-	guchar *mask;
-
-	if (!gcg_masks) {
-		mask = g_new (guchar, GCG_BUF_PIXELS);
-	} else {
-		mask = (guchar *) gcg_masks->data;
-		gcg_masks = g_slist_remove (gcg_masks, mask);
-	}
-
-	return mask;
-}
-
-static void
-gcg_mask_free (guchar *mask)
-{
-	gcg_masks = g_slist_prepend (gcg_masks, mask);
-}
diff --git a/libgnomecanvas/gnome-canvas-line.c b/libgnomecanvas/gnome-canvas-line.c
index 7488eff..c862a1f 100644
--- a/libgnomecanvas/gnome-canvas-line.c
+++ b/libgnomecanvas/gnome-canvas-line.c
@@ -102,7 +102,6 @@ static void   gnome_canvas_line_draw        (GnomeCanvasItem *item, GdkDrawable
 static gdouble gnome_canvas_line_point       (GnomeCanvasItem *item, gdouble x, gdouble y,
 					     gint cx, gint cy, GnomeCanvasItem **actual_item);
 static void   gnome_canvas_line_bounds      (GnomeCanvasItem *item, gdouble *x1, gdouble *y1, gdouble *x2, gdouble *y2);
-static void   gnome_canvas_line_render      (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
 
 static GnomeCanvasItemClass *parent_class;
 
@@ -259,8 +258,6 @@ gnome_canvas_line_class_init (GnomeCanvasLineClass *class)
 	item_class->draw = gnome_canvas_line_draw;
 	item_class->point = gnome_canvas_line_point;
 	item_class->bounds = gnome_canvas_line_bounds;
-
-	item_class->render = gnome_canvas_line_render;
 }
 
 static void
@@ -955,58 +952,6 @@ gnome_canvas_line_get_property (GObject              *object,
 }
 
 static void
-gnome_canvas_line_render (GnomeCanvasItem *item,
-			  GnomeCanvasBuf *buf)
-{
-	GnomeCanvasLine *line;
-
-	line = GNOME_CANVAS_LINE (item);
-
-	if (line->fill_svp != NULL)
-		gnome_canvas_render_svp (buf, line->fill_svp, line->fill_rgba);
-
-	if (line->first_svp != NULL)
-		gnome_canvas_render_svp (buf, line->first_svp, line->fill_rgba);
-
-	if (line->last_svp != NULL)
-		gnome_canvas_render_svp (buf, line->last_svp, line->fill_rgba);
-}
-
-static ArtSVP *
-svp_from_points (const gdouble *item_coords, gint num_points, const gdouble affine[6])
-{
-	ArtVpath *vpath;
-	ArtSVP *svp;
-	gdouble x, y;
-	gint i;
-
-	vpath = art_new (ArtVpath, num_points + 2);
-
-	for (i = 0; i < num_points; i++) {
-		vpath[i].code = i == 0 ? ART_MOVETO : ART_LINETO;
-		x = item_coords[i * 2];
-		y = item_coords[i * 2 + 1];
-		vpath[i].x = x * affine[0] + y * affine[2] + affine[4];
-		vpath[i].y = x * affine[1] + y * affine[3] + affine[5];
-	}
-#if 0
-	vpath[i].code = ART_LINETO;
-	vpath[i].x = vpath[0].x;
-	vpath[i].y = vpath[0].y;
-	i++;
-#endif
-	vpath[i].code = ART_END;
-	vpath[i].x = 0;
-	vpath[i].y = 0;
-
-	svp = art_svp_from_vpath (vpath);
-
-	art_free (vpath);
-
-	return svp;
-}
-
-static void
 gnome_canvas_line_update (GnomeCanvasItem *item, gdouble *affine, ArtSVP *clip_path, gint flags)
 {
 	GnomeCanvasLine *line;
diff --git a/libgnomecanvas/gnome-canvas-pixbuf.c b/libgnomecanvas/gnome-canvas-pixbuf.c
index 3ea3f64..39324dc 100644
--- a/libgnomecanvas/gnome-canvas-pixbuf.c
+++ b/libgnomecanvas/gnome-canvas-pixbuf.c
@@ -97,7 +97,6 @@ static void gnome_canvas_pixbuf_update (GnomeCanvasItem *item, gdouble *affine,
 					ArtSVP *clip_path, gint flags);
 static void gnome_canvas_pixbuf_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
 				      gint x, gint y, gint width, gint height);
-static void gnome_canvas_pixbuf_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
 static gdouble gnome_canvas_pixbuf_point (GnomeCanvasItem *item,
 					 gdouble x,
 					 gdouble y,
@@ -238,7 +237,6 @@ gnome_canvas_pixbuf_class_init (GnomeCanvasPixbufClass *class)
 	item_class->destroy = gnome_canvas_pixbuf_destroy;
 	item_class->update = gnome_canvas_pixbuf_update;
 	item_class->draw = gnome_canvas_pixbuf_draw;
-	item_class->render = gnome_canvas_pixbuf_render;
 	item_class->point = gnome_canvas_pixbuf_point;
 	item_class->bounds = gnome_canvas_pixbuf_bounds;
 }
@@ -883,96 +881,6 @@ gnome_canvas_pixbuf_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
 	g_free (buf);
 }
 
-/* Render handler for the pixbuf canvas item */
-static void
-gnome_canvas_pixbuf_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
-{
-	GnomeCanvasPixbuf *gcp;
-	PixbufPrivate *priv;
-	gdouble i2c[6], render_affine[6];
-
-	gcp = GNOME_CANVAS_PIXBUF (item);
-	priv = gcp->priv;
-
-	if (!priv->pixbuf)
-		return;
-
-	gnome_canvas_item_i2c_affine (item, i2c);
-	compute_render_affine (gcp, render_affine, i2c);
-        gnome_canvas_buf_ensure_buf (buf);
-
-	if ((fabs (render_affine[1]) < GNOME_CANVAS_EPSILON) &&
-	    (fabs (render_affine[2]) < GNOME_CANVAS_EPSILON) &&
-	    render_affine[0] > 0.0 &&
-	    render_affine[3] > 0.0)
-	  {
-	    GdkPixbuf *dest_pixbuf;
-	    gint x0, y0, x1, y1;
-
-	    dest_pixbuf = gdk_pixbuf_new_from_data (buf->buf,
-						    GDK_COLORSPACE_RGB,
-						    FALSE,
-						    8,
-						    buf->rect.x1 - buf->rect.x0,
-						    buf->rect.y1 - buf->rect.y0,
-						    buf->buf_rowstride,
-						    NULL, NULL);
-
-	    x0 = floor (render_affine[4] - buf->rect.x0 + 0.5);
-	    y0 = floor (render_affine[5] - buf->rect.y0 + 0.5);
-
-	    x1 = x0 + floor (gdk_pixbuf_get_width (priv->pixbuf) * render_affine[0] + 0.5);
-	    y1 = y0 + floor (gdk_pixbuf_get_height (priv->pixbuf) * render_affine[3] + 0.5);
-
-	    x0 = MAX (x0, 0);
-	    x0 = MIN (x0, buf->rect.x1 - buf->rect.x0);
-	    y0 = MAX (y0, 0);
-	    y0 = MIN (y0, buf->rect.y1 - buf->rect.y0);
-
-	    x1 = MAX (x1, 0);
-	    x1 = MIN (x1, buf->rect.x1 - buf->rect.x0);
-	    y1 = MAX (y1, 0);
-	    y1 = MIN (y1, buf->rect.y1 - buf->rect.y0);
-
-	    gdk_pixbuf_composite  (priv->pixbuf,
-				   dest_pixbuf,
-				   x0, y0,
-				   x1 - x0, y1 - y0,
-				   render_affine[4] - buf->rect.x0,
-				   render_affine[5] - buf->rect.y0,
-				   render_affine[0],
-				   render_affine[3],
-				   GDK_INTERP_BILINEAR,
-				   255);
-
-	    g_object_unref (dest_pixbuf);
-	  }
-	else if (gdk_pixbuf_get_has_alpha (priv->pixbuf))
-		art_rgb_rgba_affine (buf->buf,
-				     buf->rect.x0, buf->rect.y0, buf->rect.x1, buf->rect.y1,
-				     buf->buf_rowstride,
-				     gdk_pixbuf_get_pixels (priv->pixbuf),
-				     gdk_pixbuf_get_width (priv->pixbuf),
-				     gdk_pixbuf_get_height (priv->pixbuf),
-				     gdk_pixbuf_get_rowstride (priv->pixbuf),
-				     render_affine,
-				     ART_FILTER_NEAREST,
-				     NULL);
-	else
-		art_rgb_affine (buf->buf,
-				buf->rect.x0, buf->rect.y0, buf->rect.x1, buf->rect.y1,
-				buf->buf_rowstride,
-				gdk_pixbuf_get_pixels (priv->pixbuf),
-				gdk_pixbuf_get_width (priv->pixbuf),
-				gdk_pixbuf_get_height (priv->pixbuf),
-				gdk_pixbuf_get_rowstride (priv->pixbuf),
-				render_affine,
-				ART_FILTER_NEAREST,
-				NULL);
-
-	buf->is_bg = 0;
-}
-
 
 
 /* Point handler for the pixbuf canvas item */
diff --git a/libgnomecanvas/gnome-canvas-rich-text.c b/libgnomecanvas/gnome-canvas-rich-text.c
index bd988ae..32d1dbd 100644
--- a/libgnomecanvas/gnome-canvas-rich-text.c
+++ b/libgnomecanvas/gnome-canvas-rich-text.c
@@ -129,8 +129,6 @@ static gdouble gnome_canvas_rich_text_point (GnomeCanvasItem *item,
 static void gnome_canvas_rich_text_draw (GnomeCanvasItem *item,
 					GdkDrawable *drawable,
 					gint x, gint y, gint width, gint height);
-static void gnome_canvas_rich_text_render (GnomeCanvasItem *item,
-					  GnomeCanvasBuf *buf);
 static gint gnome_canvas_rich_text_event (GnomeCanvasItem *item,
 					 GdkEvent *event);
 static void gnome_canvas_rich_text_get_bounds (GnomeCanvasItem *text,
@@ -394,7 +392,6 @@ gnome_canvas_rich_text_class_init (GnomeCanvasRichTextClass *klass)
 	item_class->unrealize = gnome_canvas_rich_text_unrealize;
 	item_class->draw = gnome_canvas_rich_text_draw;
 	item_class->point = gnome_canvas_rich_text_point;
-	item_class->render = gnome_canvas_rich_text_render;
 	item_class->event = gnome_canvas_rich_text_event;
 	item_class->bounds = gnome_canvas_rich_text_get_bounds;
 } /* gnome_canvas_rich_text_class_init */
@@ -2173,12 +2170,6 @@ gnome_canvas_rich_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
 		NULL);
 } /* gnome_canvas_rich_text_draw */
 
-static void
-gnome_canvas_rich_text_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
-{
-	g_warning ("rich text item not implemented for anti-aliased canvas");
-} /* gnome_canvas_rich_text_render */
-
 #if 0
 static GtkTextTag *
 gnome_canvas_rich_text_add_tag (GnomeCanvasRichText *text, gchar *tag_name,
diff --git a/libgnomecanvas/gnome-canvas-shape.c b/libgnomecanvas/gnome-canvas-shape.c
index fa8a4ba..eb502d2 100644
--- a/libgnomecanvas/gnome-canvas-shape.c
+++ b/libgnomecanvas/gnome-canvas-shape.c
@@ -79,7 +79,6 @@ static void   gnome_canvas_shape_draw        (GnomeCanvasItem *item, GdkDrawable
                                               gint x, gint y, gint width, gint height);
 static gdouble gnome_canvas_shape_point       (GnomeCanvasItem *item, gdouble x, gdouble y,
                                               gint cx, gint cy, GnomeCanvasItem **actual_item);
-static void   gnome_canvas_shape_render      (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
 static void   gnome_canvas_shape_bounds      (GnomeCanvasItem *item,
 					      gdouble *x1, gdouble *y1, gdouble *x2, gdouble *y2);
 
@@ -221,7 +220,6 @@ gnome_canvas_shape_class_init (GnomeCanvasShapeClass *class)
 	item_class->unrealize = gnome_canvas_shape_unrealize;
 	item_class->draw = gnome_canvas_shape_draw;
 	item_class->point = gnome_canvas_shape_point;
-	item_class->render = gnome_canvas_shape_render;
 	item_class->bounds = gnome_canvas_shape_bounds;
 }
 
@@ -665,25 +663,6 @@ gnome_canvas_shape_unrealize (GnomeCanvasItem *item)
 }
 
 static void
-gnome_canvas_shape_render (GnomeCanvasItem *item,
-			     GnomeCanvasBuf *buf)
-{
-	GnomeCanvasShape *shape;
-
-	shape = GNOME_CANVAS_SHAPE (item);
-
-	if (shape->priv->fill_svp != NULL)
-		gnome_canvas_render_svp (buf,
-			shape->priv->fill_svp,
-			shape->priv->fill_rgba);
-
-	if (shape->priv->outline_svp != NULL)
-		gnome_canvas_render_svp (buf,
-			shape->priv->outline_svp,
-			shape->priv->outline_rgba);
-}
-
-static void
 gnome_canvas_shape_draw (GnomeCanvasItem *item,
 	GdkDrawable *drawable,
 	gint x,
diff --git a/libgnomecanvas/gnome-canvas-text.c b/libgnomecanvas/gnome-canvas-text.c
index 8ab2b13..e1d996e 100644
--- a/libgnomecanvas/gnome-canvas-text.c
+++ b/libgnomecanvas/gnome-canvas-text.c
@@ -129,7 +129,6 @@ static gdouble gnome_canvas_text_point (GnomeCanvasItem *item,
 				       GnomeCanvasItem **actual_item);
 static void gnome_canvas_text_bounds (GnomeCanvasItem *item,
 				      gdouble *x1, gdouble *y1, gdouble *x2, gdouble *y2);
-static void gnome_canvas_text_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
 
 static void gnome_canvas_text_set_markup (GnomeCanvasText *textitem,
 					  const gchar     *markup);
@@ -518,7 +517,6 @@ gnome_canvas_text_class_init (GnomeCanvasTextClass *class)
 	item_class->draw = gnome_canvas_text_draw;
 	item_class->point = gnome_canvas_text_point;
 	item_class->bounds = gnome_canvas_text_bounds;
-	item_class->render = gnome_canvas_text_render;
 }
 
 /* Object initialization function for the text item */
@@ -1459,120 +1457,6 @@ gnome_canvas_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
 		gdk_gc_set_clip_rectangle (text->gc, NULL);
 }
 
-/* Render handler for the text item */
-static void
-gnome_canvas_text_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
-{
-	GnomeCanvasText *text;
-	guint32 fg_color;
-	gint render_x = 0, render_y = 0; /* offsets for text rendering,
-					 * for clipping rectangles */
-	gint x, y;
-	gint w, h;
-	guchar *dst, *src;
-	gint src_dx, src_dy;
-	gint i, alpha;
-	gint bm_rows, bm_width;
-
-	text = GNOME_CANVAS_TEXT (item);
-
-	if (!text->text)
-		return;
-
-	fg_color = text->rgba;
-
-        gnome_canvas_buf_ensure_buf (buf);
-
-	bm_rows = (text->clip) ? text->clip_cheight : text->height;
-	bm_width = (text->clip) ? text->clip_cwidth : text->max_width;
-	if (text->priv->render_dirty ||
-	   bm_rows != text->priv->bitmap.rows ||
-	   bm_width != text->priv->bitmap.width) {
-		if (text->priv->bitmap.buffer) {
-			g_free (text->priv->bitmap.buffer);
-		}
-		text->priv->bitmap.rows =  bm_rows;
-		text->priv->bitmap.width = bm_width;
-		text->priv->bitmap.pitch = (text->priv->bitmap.width+3)&~3;
-		text->priv->bitmap.buffer = g_malloc0 (
-			text->priv->bitmap.rows * text->priv->bitmap.pitch);
-		text->priv->bitmap.num_grays = 256;
-		text->priv->bitmap.pixel_mode = ft_pixel_mode_grays;
-
-		/* What this does is when a clipping rectangle is
-		   being used shift the rendering of the text by the
-		   correct amount so that the correct result is
-		   obtained as if all text was rendered, then clipped.
-		   In this sense we can use smaller buffers and less
-		   rendeirng since hopefully FreeType2 checks to see
-		   if the glyph falls in the bounding box before
-		   rasterizing it. */
-
-		if (text->clip) {
-			render_x = text->cx - text->clip_cx;
-			render_y = text->cy - text->clip_cy;
-		}
-
-		pango_ft2_render_layout (&text->priv->bitmap, text->layout, render_x, render_y);
-
-		text->priv->render_dirty = 0;
-	}
-
-	if (text->clip) {
-		x = text->clip_cx - buf->rect.x0;
-		y = text->clip_cy - buf->rect.y0;
-	} else {
-		x = text->cx - buf->rect.x0;
-		y = text->cy - buf->rect.y0;
-	}
-
-	w = text->priv->bitmap.width;
-	h = text->priv->bitmap.rows;
-
-	src_dx = src_dy = 0;
-
-	if (x + w > buf->rect.x1 - buf->rect.x0) {
-		w = buf->rect.x1 - buf->rect.x0 - x;
-	}
-
-	if (y + h > buf->rect.y1 - buf->rect.y0) {
-		h = buf->rect.y1 - buf->rect.y0 - y;
-	}
-
-	if (x < 0) {
-		w -= - x;
-		src_dx += - x;
-		x = 0;
-	}
-
-	if (y < 0) {
-		h -= -y;
-		src_dy += - y;
-		y = 0;
-	}
-
-	dst = buf->buf + y * buf->buf_rowstride + x * 3;
-	src = text->priv->bitmap.buffer +
-		src_dy * text->priv->bitmap.pitch + src_dx;
-	while (h-- > 0) {
-		i = w;
-		while (i-- > 0) {
-			/* FIXME: Do the libart thing instead of divide by 255 */
-			alpha = ((fg_color & 0xff) * (*src)) / 255;
-			dst[0] = (dst[0] * (255 - alpha) + ((fg_color >> 24) & 0xff) * alpha) / 255;
-			dst[1] = (dst[1] * (255 - alpha) + ((fg_color >> 16) & 0xff) * alpha) / 255;
-			dst[2] = (dst[2] * (255 - alpha) + ((fg_color >> 8) & 0xff) * alpha) / 255;
-			dst += 3;
-			src += 1;
-		}
-		dst += buf->buf_rowstride - w*3;
-		src += text->priv->bitmap.pitch - w;
-	}
-
-	buf->is_bg = 0;
-	return;
-}
-
 /* Point handler for the text item */
 static double
 gnome_canvas_text_point (GnomeCanvasItem *item, gdouble x, gdouble y,
diff --git a/libgnomecanvas/gnome-canvas-widget.c b/libgnomecanvas/gnome-canvas-widget.c
index fbcb0a6..36cffad 100644
--- a/libgnomecanvas/gnome-canvas-widget.c
+++ b/libgnomecanvas/gnome-canvas-widget.c
@@ -75,8 +75,6 @@ static void	gnome_canvas_widget_bounds	(GnomeCanvasItem *item,
 						 gdouble *x2,
 						 gdouble *y2);
 
-static void	gnome_canvas_widget_render	(GnomeCanvasItem *item,
-						 GnomeCanvasBuf *buf);
 static void	gnome_canvas_widget_draw	(GnomeCanvasItem *item,
 						 GdkDrawable *drawable,
 						 gint x,
@@ -174,7 +172,6 @@ gnome_canvas_widget_class_init (GnomeCanvasWidgetClass *class)
 	item_class->update = gnome_canvas_widget_update;
 	item_class->point = gnome_canvas_widget_point;
 	item_class->bounds = gnome_canvas_widget_bounds;
-	item_class->render = gnome_canvas_widget_render;
 	item_class->draw = gnome_canvas_widget_draw;
 }
 
@@ -479,21 +476,6 @@ gnome_canvas_widget_update (GnomeCanvasItem *item,
 }
 
 static void
-gnome_canvas_widget_render (GnomeCanvasItem *item,
-			    GnomeCanvasBuf *buf)
-{
-#if 0
-	GnomeCanvasWidget *witem;
-
-	witem = GNOME_CANVAS_WIDGET (item);
-
-	if (witem->widget)
-		gtk_widget_queue_draw (witem->widget);
-#endif
-
-}
-
-static void
 gnome_canvas_widget_draw (GnomeCanvasItem *item,
 			  GdkDrawable *drawable,
 			  gint x, gint y,
diff --git a/libgnomecanvas/gnome-canvas.c b/libgnomecanvas/gnome-canvas.c
index 9b3ad03..e0b6e03 100644
--- a/libgnomecanvas/gnome-canvas.c
+++ b/libgnomecanvas/gnome-canvas.c
@@ -1377,8 +1377,6 @@ static gdouble gnome_canvas_group_point       (GnomeCanvasItem *item,
 static void   gnome_canvas_group_bounds      (GnomeCanvasItem *item,
 					      gdouble *x1, gdouble *y1,
 					      gdouble *x2, gdouble *y2);
-static void   gnome_canvas_group_render      (GnomeCanvasItem *item,
-					      GnomeCanvasBuf *buf);
 
 static GnomeCanvasItemClass *group_parent_class;
 
@@ -1454,7 +1452,6 @@ gnome_canvas_group_class_init (GnomeCanvasGroupClass *class)
 	item_class->map = gnome_canvas_group_map;
 	item_class->unmap = gnome_canvas_group_unmap;
 	item_class->draw = gnome_canvas_group_draw;
-	item_class->render = gnome_canvas_group_render;
 	item_class->point = gnome_canvas_group_point;
 	item_class->bounds = gnome_canvas_group_bounds;
 }
@@ -1848,35 +1845,6 @@ gnome_canvas_group_bounds (GnomeCanvasItem *item,
 	*y2 = maxy;
 }
 
-/* Render handler for canvas groups */
-static void
-gnome_canvas_group_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
-{
-	GnomeCanvasGroup *group;
-	GnomeCanvasItem *child;
-	GList *list;
-
-	group = GNOME_CANVAS_GROUP (item);
-
-	for (list = group->item_list; list; list = list->next) {
-		child = list->data;
-
-		if (((child->flags & GNOME_CANVAS_ITEM_VISIBLE)
-		     && ((child->x1 < buf->rect.x1)
-			 && (child->y1 < buf->rect.y1)
-			 && (child->x2 > buf->rect.x0)
-			 && (child->y2 > buf->rect.y0)))
-		    || ((child->flags & GNOME_CANVAS_ITEM_ALWAYS_REDRAW)
-			&& (child->x1 < child->canvas->redraw_x2)
-			&& (child->y1 < child->canvas->redraw_y2)
-			&& (child->x2 > child->canvas->redraw_x1)
-			&& (child->y2 > child->canvas->redraw_y2)))
-			if (GNOME_CANVAS_ITEM_GET_CLASS (child)->render)
-				(* GNOME_CANVAS_ITEM_GET_CLASS (child)->render) (
-					child, buf);
-	}
-}
-
 /* Adds an item to a group */
 static void
 group_add (GnomeCanvasGroup *group, GnomeCanvasItem *item)
diff --git a/libgnomecanvas/gnome-canvas.h b/libgnomecanvas/gnome-canvas.h
index b8a7308..d6b35f0 100644
--- a/libgnomecanvas/gnome-canvas.h
+++ b/libgnomecanvas/gnome-canvas.h
@@ -197,14 +197,6 @@ struct _GnomeCanvasItemClass {
 	void (* draw) (GnomeCanvasItem *item, GdkDrawable *drawable,
 		       gint x, gint y, gint width, gint height);
 
-	/* Render the item over the buffer given.  The buf data structure
-	 * contains both a pointer to a packed 24-bit RGB array, and the
-	 * coordinates.  This method is only used for antialiased canvases.
-	 *
-	 * TODO: figure out where clip paths fit into the rendering framework.
-	 */
-	void (* render) (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
-
 	/* Calculate the distance from an item to the specified point.  It also
          * returns a canvas item which is the item itself in the case of the
          * object being an actual leaf item, or a child in case of the object



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]