[cairo-commit] goocanvas ChangeLog,1.50,1.51

Damon Chaplin commit at pdx.freedesktop.org
Wed Aug 30 05:18:49 PDT 2006


Committed by: damon

Update of /cvs/cairo/goocanvas
In directory kemper:/tmp/cvs-serv7123

Modified Files:
	ChangeLog 
Log Message:
2006-08-30  Damon Chaplin  <damon at gnome.org>

	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_update) 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_update): 
	added a workaround for cairo limits. Cairo uses fixed point integer
	maths and is currently limited to 16-bits for the integer component.
	So we remove any current translation before calculating the bounds
	of the item, then add it back to the results. This means the 16-bit
	limit only applies to items' user space rather than the entire canvas.

	* src/goocanvasitemviewsimple.c
	(goo_canvas_item_view_simple_get_item_view_at): 
	* src/goocanvaspolylineview.c
	(goo_canvas_polyline_view_get_item_view_at): as above, remove any
	current translation before checking if the point is in the item.

	* demo/scalability-demo.c: updated to create ~100,000 items, either
	rectangles or images. For images it now reuses a single cairo pattern
	rather than passing the pixbuf to the GooCanvasImage (which created a
	new pattern for each one and ran out of memory). It takes about 10
	seconds to setup the canvas which is slower than I'd like, but once
	created it seems to work fast enough.



Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/goocanvas/ChangeLog,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- ChangeLog	27 Aug 2006 12:20:40 -0000	1.50
+++ ChangeLog	30 Aug 2006 12:18:47 -0000	1.51
@@ -1,3 +1,26 @@
+2006-08-30  Damon Chaplin  <damon at gnome.org>
+
+	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_update) 
+	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_update): 
+	added a workaround for cairo limits. Cairo uses fixed point integer
+	maths and is currently limited to 16-bits for the integer component.
+	So we remove any current translation before calculating the bounds
+	of the item, then add it back to the results. This means the 16-bit
+	limit only applies to items' user space rather than the entire canvas.
+
+	* src/goocanvasitemviewsimple.c
+	(goo_canvas_item_view_simple_get_item_view_at): 
+	* src/goocanvaspolylineview.c
+	(goo_canvas_polyline_view_get_item_view_at): as above, remove any
+	current translation before checking if the point is in the item.
+
+	* demo/scalability-demo.c: updated to create ~100,000 items, either
+	rectangles or images. For images it now reuses a single cairo pattern
+	rather than passing the pixbuf to the GooCanvasImage (which created a
+	new pattern for each one and ran out of memory). It takes about 10
+	seconds to setup the canvas which is slower than I'd like, but once
+	created it seems to work fast enough.
+
 2006-08-27  Damon Chaplin  <damon at gnome.org>
 
 	* src/goocanvasview.c (goo_canvas_view_class_init): 



More information about the cairo-commit mailing list