summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Ciccani <klan@users.sourceforge.net>2006-07-08 09:40:03 +0000
committerClaudio Ciccani <klan@users.sourceforge.net>2006-07-08 09:40:03 +0000
commit9b94eb8b51f19403fa9bb7d086de1dc89802e903 (patch)
tree394863e7eec19d750c396b2eb85df7a2e9cbf7e3
parentb3e6c23b68b84e1a8a99b46be32b04a226784678 (diff)
downloadxine-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.c4
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;