Lines Matching refs:da
1075 F dr,dg,db,da;
1114 F& r, F& g, F& b, F& a, F& dr, F& dg, F& db, F& da); \
1118 params->dr, params->dg, params->db, params->da); \
1123 F& r, F& g, F& b, F& a, F& dr, F& dg, F& db, F& da)
1127 F& r, F& g, F& b, F& a, F& dr, F& dg, F& db, F& da); \
1129 F r, F g, F b, F a, F dr, F dg, F db, F da) { \
1130 name##_k(Ctx{program},dx,dy,tail, r,g,b,a, dr,dg,db,da); \
1132 next(tail,program,dx,dy, r,g,b,a, dr,dg,db,da); \
1135 F& r, F& g, F& b, F& a, F& dr, F& dg, F& db, F& da)
1291 dr = dg = db = da = 0;
1339 // load 4 floats from memory, and splat them into dr,dg,db,da
1344 da = c->a;
1376 // load registers dr,dg,db,da from context (mirrors store_dst)
1381 da = sk_unaligned_load<F>(ptr + 3*N);
1384 // store registers dr,dg,db,da into context (mirrors load_dst)
1389 sk_unaligned_store(ptr + 3*N, da);
1394 SI F name##_channel(F s, F d, F sa, F da); \
1396 r = name##_channel(r,dr,a,da); \
1397 g = name##_channel(g,dg,a,da); \
1398 b = name##_channel(b,db,a,da); \
1399 a = name##_channel(a,da,a,da); \
1401 SI F name##_channel(F s, F d, F sa, F da)
1408 BLEND_MODE(srcatop) { return s*da + d*inv(sa); }
1409 BLEND_MODE(dstatop) { return d*sa + s*inv(da); }
1410 BLEND_MODE(srcin) { return s * da; }
1412 BLEND_MODE(srcout) { return s * inv(da); }
1415 BLEND_MODE(dstover) { return mad(s, inv(da), d); }
1418 BLEND_MODE(multiply) { return s*inv(da) + d*inv(sa) + s*d; }
1421 BLEND_MODE(xor_) { return s*inv(da) + d*inv(sa); }
1426 SI F name##_channel(F s, F d, F sa, F da); \
1428 r = name##_channel(r,dr,a,da); \
1429 g = name##_channel(g,dg,a,da); \
1430 b = name##_channel(b,db,a,da); \
1431 a = mad(da, inv(a), a); \
1433 SI F name##_channel(F s, F d, F sa, F da)
1435 BLEND_MODE(darken) { return s + d - max(s*da, d*sa) ; }
1436 BLEND_MODE(lighten) { return s + d - min(s*da, d*sa) ; }
1437 BLEND_MODE(difference) { return s + d - two(min(s*da, d*sa)); }
1441 return if_then_else(d == da, d + s*inv(da),
1443 sa*(da - min(da, (da-d)*sa*rcp_fast(s))) + s*inv(da) + d*inv(sa)));
1446 return if_then_else(d == 0, /* d + */ s*inv(da),
1448 sa*min(da, (d*sa)*rcp_fast(sa - s)) + s*inv(da) + d*inv(sa)));
1451 return s*inv(da) + d*inv(sa)
1452 + if_then_else(two(s) <= sa, two(s*d), sa*da - two((da-d)*(sa-s)));
1455 return s*inv(da) + d*inv(sa)
1456 + if_then_else(two(d) <= da, two(s*d), sa*da - two((da-d)*(sa-s)));
1460 F m = if_then_else(da > 0, d / da, 0),
1475 liteSrc = d*sa + da*(s2 - sa) * if_then_else(two(two(d)) <= da, darkDst, liteDst); // 2 or 3?
1476 return s*inv(da) + d*inv(sa) + if_then_else(s2 <= sa, darkSrc, liteSrc); // 1 or (2 or 3)?
1533 clip_color(&R,&G,&B, a*da);
1535 r = r*inv(da) + dr*inv(a) + R;
1536 g = g*inv(da) + dg*inv(a) + G;
1537 b = b*inv(da) + db*inv(a) + B;
1538 a = a + da - a*da;
1545 set_sat(&R, &G, &B, sat( r, g, b)*da);
1547 clip_color(&R,&G,&B, a*da);
1549 r = r*inv(da) + dr*inv(a) + R;
1550 g = g*inv(da) + dg*inv(a) + G;
1551 b = b*inv(da) + db*inv(a) + B;
1552 a = a + da - a*da;
1555 F R = r*da,
1556 G = g*da,
1557 B = b*da;
1560 clip_color(&R,&G,&B, a*da);
1562 r = r*inv(da) + dr*inv(a) + R;
1563 g = g*inv(da) + dg*inv(a) + G;
1564 b = b*inv(da) + db*inv(a) + B;
1565 a = a + da - a*da;
1572 set_lum(&R, &G, &B, lum(r,g,b)*da);
1573 clip_color(&R,&G,&B, a*da);
1575 r = r*inv(da) + dr*inv(a) + R;
1576 g = g*inv(da) + dg*inv(a) + G;
1577 b = b*inv(da) + db*inv(a) + B;
1578 a = a + da - a*da;
1588 da = cast((dst >> 24) );
1589 // {dr,dg,db,da} are in [0,255]
1595 a = mad(da, inv(a), a*255.0f);
1660 da = a;
1666 a = da;
1672 std::swap(a, da);
1681 dr = dr * da;
1682 dg = dg * da;
1683 db = db * da;
1694 STAGE(force_opaque_dst, Ctx::None) { da = 1; }
1739 SI F alpha_coverage_from_rgb_coverage(F a, F da, F cr, F cg, F cb) {
1740 return if_then_else(a < da, min(cr, min(cg,cb))
1767 F ca = alpha_coverage_from_rgb_coverage(a,da, cr,cg,cb);
1783 a = lerp(da, a, *c);
1797 a = lerp(da, a, c);
1808 a = lerp(da, a, c);
1816 F ca = alpha_coverage_from_rgb_coverage(a,da, cr,cg,cb);
1821 a = lerp(da, a, ca);
1946 da = from_byte(load<U8>(ptr, tail));
1971 da = 1.0f;
1994 from_4444(load<U16>(ptr, tail), &dr,&dg,&db,&da);
2016 from_8888(load<U32>(ptr, tail), &dr,&dg,&db,&da);
2043 da = 1;
2066 da = from_short(load<U16>(ptr, tail));
2090 da = 1;
2113 from_16161616(load<U64>(ptr, tail), &dr, &dg, &db, &da);
2138 from_1010102(load<U32>(ptr, tail), &dr,&dg,&db,&da);
2173 da = from_half(A);
2220 da = from_half(A);
2251 da = 1;
2277 load4(ptr,tail, &dr,&dg,&db,&da);
2356 dr = dg = db = da;
2357 da = 1;
2601 da = mad(scale, a, da);
2934 U16 dr,dg,db,da;
2941 U16 dr, U16 dg, U16 db, U16 da);
2983 // and will have (x,y) geometry and/or (r,g,b,a, dr,dg,db,da) pixel arguments as appropriate.
3002 U16& dr, U16& dg, U16& db, U16& da); \
3007 params->dr,params->dg,params->db,params->da); \
3013 U16& dr, U16& dg, U16& db, U16& da)
3018 U16& dr, U16& dg, U16& db, U16& da); \
3021 params->dr,params->dg,params->db,params->da); \
3027 U16& dr, U16& dg, U16& db, U16& da)
3033 U16 dr, U16 dg, U16 db, U16 da) { \
3040 next(tail,program,dx,dy, r,g,b,a, dr,dg,db,da); \
3047 U16& dr, U16& dg, U16& db, U16& da); \
3050 U16 dr, U16 dg, U16 db, U16 da) { \
3053 name##_k(Ctx{program}, dx,dy,tail, x,y, r,g,b,a, dr,dg,db,da); \
3055 next(tail,program,dx,dy, r,g,b,a, dr,dg,db,da); \
3059 U16& dr, U16& dg, U16& db, U16& da)
3064 U16& dr, U16& dg, U16& db, U16& da); \
3067 U16 dr, U16 dg, U16 db, U16 da) { \
3068 name##_k(Ctx{program}, dx,dy,tail, r,g,b,a, dr,dg,db,da); \
3070 next(tail,program,dx,dy, r,g,b,a, dr,dg,db,da); \
3074 U16& dr, U16& dg, U16& db, U16& da)
3322 da = c->rgba[3];
3353 dr = div255_accurate(dr * da);
3354 dg = div255_accurate(dg * da);
3355 db = div255_accurate(db * da);
3359 STAGE_PP(force_opaque_dst, Ctx::None) { da = 255; }
3376 da = a;
3383 a = da;
3390 std::swap(a, da);
3397 SI U16 name##_channel(U16 s, U16 d, U16 sa, U16 da); \
3399 r = name##_channel(r,dr,a,da); \
3400 g = name##_channel(g,dg,a,da); \
3401 b = name##_channel(b,db,a,da); \
3402 a = name##_channel(a,da,a,da); \
3404 SI U16 name##_channel(U16 s, U16 d, U16 sa, U16 da)
3407 BLEND_MODE(srcatop) { return div255( s*da + d*inv(sa) ); }
3408 BLEND_MODE(dstatop) { return div255( d*sa + s*inv(da) ); }
3409 BLEND_MODE(srcin) { return div255( s*da ); }
3411 BLEND_MODE(srcout) { return div255( s*inv(da) ); }
3414 BLEND_MODE(dstover) { return d + div255( s*inv(da) ); }
3416 BLEND_MODE(multiply) { return div255( s*inv(da) + d*inv(sa) + s*d ); }
3419 BLEND_MODE(xor_) { return div255( s*inv(da) + d*inv(sa) ); }
3424 SI U16 name##_channel(U16 s, U16 d, U16 sa, U16 da); \
3426 r = name##_channel(r,dr,a,da); \
3427 g = name##_channel(g,dg,a,da); \
3428 b = name##_channel(b,db,a,da); \
3429 a = a + div255( da*inv(a) ); \
3431 SI U16 name##_channel(U16 s, U16 d, U16 sa, U16 da)
3433 BLEND_MODE(darken) { return s + d - div255( max(s*da, d*sa) ); }
3434 BLEND_MODE(lighten) { return s + d - div255( min(s*da, d*sa) ); }
3435 BLEND_MODE(difference) { return s + d - 2*div255( min(s*da, d*sa) ); }
3439 return div255( s*inv(da) + d*inv(sa) +
3440 if_then_else(2*s <= sa, 2*s*d, sa*da - 2*(sa-s)*(da-d)) );
3443 return div255( s*inv(da) + d*inv(sa) +
3444 if_then_else(2*d <= da, 2*s*d, sa*da - 2*(sa-s)*(da-d)) );
3641 load_8888_(ptr_at_xy<const uint32_t>(ctx, dx,dy), tail, &dr,&dg,&db,&da);
3687 da = 255;
3732 load_4444_(ptr_at_xy<const uint16_t>(ctx, dx,dy), tail, &dr,&dg,&db,&da);
3797 da = 255;
3825 da = load_8(ptr_at_xy<const uint8_t>(ctx, dx,dy), tail);
3842 dr = dg = db = da;
3843 da = 255;
3874 da = sk_unaligned_load<U16>(ptr + 3*N);
3880 sk_unaligned_store(ptr + 3*N, da);
3897 a = lerp(da, a, c);
3912 a = lerp(da, a, c);
3927 a = lerp(da, a, c);
3931 SI U16 alpha_coverage_from_rgb_coverage(U16 a, U16 da, U16 cr, U16 cg, U16 cb) {
3932 return if_then_else(a < da, min(cr, min(cg,cb))
3938 U16 ca = alpha_coverage_from_rgb_coverage(a,da, cr,cg,cb);
3948 U16 ca = alpha_coverage_from_rgb_coverage(a,da, cr,cg,cb);
3953 a = lerp(da, a, ca);
4218 load_8888_(ptr, tail, &dr,&dg,&db,&da);
4222 a = a + div255( da*inv(a) );