diff options
author | Adrian Lees <adrian@aemulor.com> | 2005-04-15 05:54:44 +0000 |
---|---|---|
committer | Adrian Lees <adrian@aemulor.com> | 2005-04-15 05:54:44 +0000 |
commit | 89993a5bf2e2a326af47cf5c34c75d7f39ae34a3 (patch) | |
tree | 30e1418e677aa7b1eb53cb94d02dd441531e22e6 /riscos/bitmap.c | |
parent | edfcfad31d9626faaa7d5f212435e27a31dcad7a (diff) | |
download | netsurf-89993a5bf2e2a326af47cf5c34c75d7f39ae34a3.tar.gz netsurf-89993a5bf2e2a326af47cf5c34c75d7f39ae34a3.tar.bz2 |
[project @ 2005-04-15 05:54:44 by adrianl]
Text selection, page drag scrolling, drag-saving images and a few SaveAs improvements
svn path=/import/netsurf/; revision=1640
Diffstat (limited to 'riscos/bitmap.c')
-rw-r--r-- | riscos/bitmap.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/riscos/bitmap.c b/riscos/bitmap.c index f30f43957..7bdf1bde4 100644 --- a/riscos/bitmap.c +++ b/riscos/bitmap.c @@ -102,9 +102,23 @@ bool bitmap_test_opaque(struct bitmap *bitmap) (osspriteop_header *) (&(bitmap->sprite_area) + 1); unsigned int height = (sprite_header->height + 1); unsigned int size = width * height; - for (unsigned int i = 3; i < size; i += 4) - if (sprite[i] != 0xff) + unsigned *p = (unsigned*)sprite; + unsigned *ep; + + ep = (unsigned*)(sprite + (size & ~31)); + while (p < ep) { + /* \todo prefetch(p, 128)? */ + if (((p[0] & p[1] & p[2] & p[3] & p[4] & p[5] & p[6] & p[7]) + & 0xff000000U) != 0xff000000U) return false; + p += 8; + } + ep = (unsigned*)(sprite + size); + while (p < ep) { + if ((*p & 0xff000000U) != 0xff000000U) return false; + p++; + } + return true; } |