Subtract O = MAX(0, D - S)
(int dst, int src)
| 2611 | * O = MAX(0, D - S) |
| 2612 | */ |
| 2613 | private static int blend_sub_pin(int dst, int src) { |
| 2614 | int a = src >>> 24; |
| 2615 | |
| 2616 | int s_a = a + (a >= 0x7F ? 1 : 0); |
| 2617 | |
| 2618 | int rb = ((src & RB_MASK) * s_a >>> 8); |
| 2619 | int gn = ((src & GREEN_MASK) * s_a >>> 8); |
| 2620 | |
| 2621 | return min((dst >>> 24) + a, 0xFF) << 24 | |
| 2622 | max((dst & RED_MASK) - (rb & RED_MASK), 0) | |
| 2623 | max((dst & GREEN_MASK) - (gn & GREEN_MASK), 0) | |
| 2624 | max((dst & BLUE_MASK) - (rb & BLUE_MASK), 0); |
| 2625 | } |
| 2626 | |
| 2627 | |
| 2628 | /** |
no test coverage detected