...
|
...
|
@@ -76,26 +76,12 @@ static uint32_t pixel_diff(uint32_t x, uint32_t y, const uint32_t *r2y)
|
76
|
76
|
}
|
77
|
77
|
|
78
|
78
|
#define ALPHA_BLEND_128_W(dst, src) dst = ((src & LB_MASK) >> 1) + ((dst & LB_MASK) >> 1)
|
79
|
|
-
|
80
|
|
-#define ALPHA_BLEND_32_W(dst, src) \
|
81
|
|
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
|
82
|
|
- (dst & RED_BLUE_MASK))) >> 3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
83
|
|
- ((((src & GREEN_MASK) - (dst & GREEN_MASK))) >> 3))))
|
84
|
|
-
|
85
|
|
-#define ALPHA_BLEND_64_W(dst, src) \
|
86
|
|
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
|
87
|
|
- (dst & RED_BLUE_MASK))) >> 2))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
88
|
|
- ((((src & GREEN_MASK) - (dst & GREEN_MASK))) >> 2))))
|
89
|
|
-
|
90
|
|
-#define ALPHA_BLEND_192_W(dst, src) \
|
91
|
|
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
|
92
|
|
- (dst & RED_BLUE_MASK)) * 3) >> 2))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
93
|
|
- ((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 3) >> 2))))
|
94
|
|
-
|
95
|
|
-#define ALPHA_BLEND_224_W(dst, src) \
|
96
|
|
- dst = ((RED_BLUE_MASK & ((dst & RED_BLUE_MASK) + ((((src & RED_BLUE_MASK) - \
|
97
|
|
- (dst & RED_BLUE_MASK)) * 7) >> 3))) | (GREEN_MASK & ((dst & GREEN_MASK) + \
|
98
|
|
- ((((src & GREEN_MASK) - (dst & GREEN_MASK)) * 7) >> 3))))
|
|
79
|
+#define ALPHA_BLEND_BASE(a, b, m, s) ( (RED_BLUE_MASK & (((a) & RED_BLUE_MASK) + (((((b) & RED_BLUE_MASK) - ((a) & RED_BLUE_MASK)) * (m)) >> (s)))) \
|
|
80
|
+ | (GREEN_MASK & (((a) & GREEN_MASK) + (((((b) & GREEN_MASK) - ((a) & GREEN_MASK)) * (m)) >> (s)))))
|
|
81
|
+#define ALPHA_BLEND_32_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 1, 3)
|
|
82
|
+#define ALPHA_BLEND_64_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 1, 2)
|
|
83
|
+#define ALPHA_BLEND_192_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 3, 2)
|
|
84
|
+#define ALPHA_BLEND_224_W(dst, src) dst = ALPHA_BLEND_BASE(dst, src, 7, 3)
|
99
|
85
|
|
100
|
86
|
#define df(A, B) pixel_diff(A, B, r2y)
|
101
|
87
|
#define eq(A, B) (df(A, B) < 155)
|