diff options
author | Claudio Ciccani <klan@users.sourceforge.net> | 2006-07-08 09:40:03 +0000 |
---|---|---|
committer | Claudio Ciccani <klan@users.sourceforge.net> | 2006-07-08 09:40:03 +0000 |
commit | 9b94eb8b51f19403fa9bb7d086de1dc89802e903 (patch) | |
tree | 394863e7eec19d750c396b2eb85df7a2e9cbf7e3 | |
parent | b3e6c23b68b84e1a8a99b46be32b04a226784678 (diff) | |
download | xine-lib-9b94eb8b51f19403fa9bb7d086de1dc89802e903.tar.gz xine-lib-9b94eb8b51f19403fa9bb7d086de1dc89802e903.tar.bz2 |
Patch by Petri Hintukainen <Petri.Hintukainen@hut.fi>:
modify blend algo to avoid division (too slow on some machines).
Result is still acceptable.
CVS patchset: 8093
CVS date: 2006/07/08 09:40:03
-rw-r--r-- | src/xine-engine/alphablend.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/xine-engine/alphablend.c b/src/xine-engine/alphablend.c index 6f224ca30..3eafc6ac3 100644 --- a/src/xine-engine/alphablend.c +++ b/src/xine-engine/alphablend.c @@ -38,9 +38,9 @@ #include "bswap.h" -#define BLEND_COLOR(dst, src, mask, o) ((((src&mask)*o + ((dst&mask)*(0x0f-o)))/0xf) & mask) +#define BLEND_COLOR(dst, src, mask, o) ((((((src&mask)-(dst&mask))*(o*0x1111+1))>>16)+(dst&mask))&mask) -#define BLEND_BYTE(dst, src, o) (((src)*o + ((dst)*(0xf-o)))/0xf) +#define BLEND_BYTE(dst, src, o) (((((src)-(dst))*(o*0x1111+1))>>16)+(dst)) static void mem_blend16(uint16_t *mem, uint16_t clr, uint8_t o, int len) { uint16_t *limit = mem + len; |