summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2005-03-19 18:05:45 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2005-03-19 18:05:45 +0000
commit7f37d2f559c3fade21f6518799d1dae338c0c7e5 (patch)
treebc8362f72f2d278e809ecf9e3064feaca37e90af /render
parent5703b71610a5f9d9dd6993e682edc4bfe111ea57 (diff)
downloadnetsurf-7f37d2f559c3fade21f6518799d1dae338c0c7e5.tar.gz
netsurf-7f37d2f559c3fade21f6518799d1dae338c0c7e5.tar.bz2
[project @ 2005-03-19 18:05:45 by rjw]
Further updates to the colour highlighting algorithm. svn path=/import/netsurf/; revision=1547
Diffstat (limited to 'render')
-rw-r--r--render/html_redraw.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/render/html_redraw.c b/render/html_redraw.c
index 4e8899f6a..a6d35d466 100644
--- a/render/html_redraw.c
+++ b/render/html_redraw.c
@@ -540,17 +540,14 @@ bool html_redraw_borders(struct box *box, int x, int y,
* \param c colour
* \return a darker shade of c
*/
+
+#define mix_colour(c0, c1) ((((c0 >> 16) + 3 * (c1 >> 16)) >> 2) << 16) | \
+ (((((c0 >> 8) & 0xff) + 3 * ((c1 >> 8) & 0xff)) >> 2) << 8) | \
+ ((((c0 & 0xff) + 3 * (c1 & 0xff)) >> 2) << 0);
colour html_redraw_darker(colour c)
-{
- int modified, channel;
- channel = ((((int)c & 0xff) * 15) - 256) >> 4;
- modified = channel > 0 ? channel : 0;
- channel = (((((int)c >> 8) & 0xff) * 15) - 256) >> 4;
- modified |= channel > 0 ? channel << 8 : 0;
- channel = (((((int)c >> 16) & 0xff) * 15) - 256) >> 4;
- modified |= channel > 0 ? channel << 16 : 0;
- return modified;
+{
+ return mix_colour(0x000000, c)
}
@@ -563,14 +560,7 @@ colour html_redraw_darker(colour c)
colour html_redraw_lighter(colour c)
{
- int modified, channel;
- channel = ((((int)c & 0xff) * 17) + 256) >> 4;
- modified = channel < 255 ? channel : 255;
- channel = (((((int)c >> 8) & 0xff) * 17) + 256) >> 4;
- modified |= channel < 255 ? channel << 8 : 255 << 8;
- channel = (((((int)c >> 16) & 0xff) * 17) + 256) >> 4;
- modified |= channel < 255 ? channel << 16 : 255 << 16;
- return modified;
+ return mix_colour(0xffffff, c)
}