summaryrefslogtreecommitdiff
path: root/framebuffer/framebuffer.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2010-07-08 20:38:48 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2010-07-08 20:38:48 +0000
commitbffa2b64dee70c29d0b16dcfe9ecde7c46f4f393 (patch)
tree35e989304c92dd0c3dbdca27fa83460edce67d84 /framebuffer/framebuffer.c
parent1fb697782a40412a85c0fe99b8af9352054d0a29 (diff)
downloadnetsurf-bffa2b64dee70c29d0b16dcfe9ecde7c46f4f393.tar.gz
netsurf-bffa2b64dee70c29d0b16dcfe9ecde7c46f4f393.tar.bz2
Treat tiled images scaled to 1x1 as flat fills of the tiled area.
svn path=/trunk/netsurf/; revision=10616
Diffstat (limited to 'framebuffer/framebuffer.c')
-rw-r--r--framebuffer/framebuffer.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/framebuffer/framebuffer.c b/framebuffer/framebuffer.c
index e97d63ab4..bed356863 100644
--- a/framebuffer/framebuffer.c
+++ b/framebuffer/framebuffer.c
@@ -215,6 +215,18 @@ framebuffer_plot_bitmap(int x, int y,
}
}
+ /* Optimise tiled plots of bitmaps scaled to 1x1 by replacing with
+ * a flat fill of the area. Can only be done when image is fully
+ * opaque. */
+ if ((width == 1) && (height == 1)) {
+ if (bitmap->opaque) {
+ /** TODO: Currently using top left pixel. Maybe centre
+ * pixel or average value would be better. */
+ return nsfb_plot_rectangle_fill(nsfb, &clipbox,
+ *(nsfb_colour_t *)bitmap->pixdata);
+ }
+ }
+
/* get left most tile position */
if (repeat_x)
for (; x > clipbox.x0; x -= width);