summaryrefslogtreecommitdiffstats
path: root/src/display/canvas-arena.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2007-02-27 05:50:17 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2007-02-27 05:50:17 +0000
commit1cb293c383d8eb9c38cfe4ffababe934bb5f5fcd (patch)
tree8ee03f9044b1b1540f3b6b64fa7374b0eb80c6fd /src/display/canvas-arena.cpp
parentadded new paint bucket; changed some colors; resaved with less precision and ... (diff)
downloadinkscape-1cb293c383d8eb9c38cfe4ffababe934bb5f5fcd.tar.gz
inkscape-1cb293c383d8eb9c38cfe4ffababe934bb5f5fcd.zip
more comments
(bzr r2458)
Diffstat (limited to 'src/display/canvas-arena.cpp')
-rw-r--r--src/display/canvas-arena.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp
index a7615b3d7..863d86f7c 100644
--- a/src/display/canvas-arena.cpp
+++ b/src/display/canvas-arena.cpp
@@ -248,9 +248,15 @@ sp_canvas_arena_render (SPCanvasItem *item, SPCanvasBuf *buf)
}
}
-/* fixme: RGB transformed bitmap blit is not implemented (Lauris) */
-/* And even if it would be, unless it uses MMX there is little reason to go RGB */
-// CAIRO FIXME: undefine this so that arena renders directly into SPCanvasBuf, without blitting and squishing (32bpp -> 24bpp packed) from a pixblock
+/*
+This define chooses between two modes: When on, arena renders into a temporary
+32bpp buffer, and the result is then squished into the SPCanvasBuf. When off, arena
+renders directly to SPCanvasBuf. However currently this gives no speed advantage,
+perhaps because the lack of squishing is offset by the need for arena items to render
+to the inconvenient (and probably slower) 24bpp buffer. When SPCanvasBuf is
+switched to 32bpp and cairo drawing, however, this define should be removed to
+streamline rendering.
+*/
#define STRICT_RGBA
for (y = buf->rect.y0; y < buf->rect.y1; y += sh) {
@@ -282,6 +288,7 @@ sp_canvas_arena_render (SPCanvasItem *item, SPCanvasBuf *buf)
pb.visible_area = buf->visible_rect;
if (pb.data.px != NULL) {
nr_arena_item_invoke_render (arena->root, &area, &pb, 0);
+ // this does the 32->24 squishing, using an assembler routine:
nr_blit_pixblock_pixblock (&cb, &pb);
}
nr_pixblock_release (&pb);