[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