MCPcopy Create free account
hub / github.com/benfry/processing4 / blend_multiply

Method blend_multiply

core/src/processing/core/PImage.java:2581–2603  ·  view source on GitHub ↗
(int dst, int src)

Source from the content-addressed store, hash-verified

2579 * O = DS
2580 */
2581 private static int blend_multiply(int dst, int src) {
2582 int a = src >>> 24;
2583
2584 int s_a = a + (a >= 0x7F ? 1 : 0);
2585 int d_a = 0x100 - s_a;
2586
2587 int d_gn = dst & GN_MASK;
2588
2589 int f_r = (dst & RED_MASK) >> 16;
2590 int f_b = (dst & BLUE_MASK);
2591
2592 int rb =
2593 ((src & RED_MASK) * (f_r + 1) |
2594 (src & BLUE_MASK) * (f_b + 1))
2595 >>> 8 & RB_MASK;
2596 int gn =
2597 (src & GREEN_MASK) * (d_gn + 0x100)
2598 >>> 16 & GN_MASK;
2599
2600 return min((dst >>> 24) + a, 0xFF) << 24 |
2601 ((dst & RB_MASK) * d_a + rb * s_a) >>> 8 & RB_MASK |
2602 (d_gn * d_a + gn * s_a) >>> 8 & GN_MASK;
2603 }
2604
2605
2606 /**

Callers 3

blendColorMethod · 0.95
blitResizeBilinearMethod · 0.95
blitResizeNearestMethod · 0.95

Calls 1

minMethod · 0.95

Tested by

no test coverage detected