Evas: Filter: Use some ARGB joins.

SVN revision: 58772
This commit is contained in:
Brett Nash 2011-04-21 06:01:48 +00:00
parent 9862b4bf5d
commit f19bea3bf1
1 changed files with 38 additions and 50 deletions

View File

@ -654,12 +654,10 @@ gaussian_filter_h(int rad, uint32_t *in, int w, uint32_t *out)
if ((k + i) >= w) continue;
all(+=, a, r, g, b, points[k + rad], in + k + i);
}
// FIXME: use ARGB_JOIN
*(out) =
(wavg(a, weight) << 24) |
(wavg(r, weight) << 16) |
(wavg(g, weight) << 8) |
(wavg(b, weight));
*(out) = ARGB_JOIN(wavg(a, weight),
wavg(r, weight),
wavg(g, weight),
wavg(b, weight));
out++;
}
return 0;
@ -686,12 +684,10 @@ gaussian_filter_hd(int rad, uint32_t *in, int w, uint32_t *out)
if ((k + i) >= w) continue;
all(+=, a, r, g, b, points[k + rad], in + k + i);
}
// FIXME: use ARGB_JOIN
*(out) =
(wavgd(a, weight) << 24) |
(wavgd(r, weight) << 16) |
(wavgd(g, weight) << 8) |
(wavgd(b, weight));
*(out) = ARGB_JOIN(wavgd(a, weight),
wavgd(r, weight),
wavgd(g, weight),
wavgd(b, weight));
out++;
}
return 0;
@ -717,12 +713,10 @@ gaussian_filter_h64(int rad, uint32_t *in, int w, uint32_t *out)
if ((k + i) >= w) continue;
all(+=, a, r, g, b, points[k + rad], in + k + i);
}
// FIXME: use ARGB_JOIN
*(out) =
(wavg(a, weight) << 24) |
(wavg(r, weight) << 16) |
(wavg(g, weight) << 8) |
(wavg(b, weight));
*(out) = ARGB_JOIN(wavg(a, weight),
wavg(r, weight),
wavg(g, weight),
wavg(b, weight));
out++;
}
return 0;
@ -751,12 +745,10 @@ gaussian_filter_v(int rad, uint32_t *in, int h, int skip, uint32_t *out)
if ((k + i) >= h) continue;
all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
}
// FIXME: use ARGB_JOIN
*(out) =
(wavg(a, weight) << 24) |
(wavg(r, weight) << 16) |
(wavg(g, weight) << 8) |
(wavg(b, weight));
*(out) = ARGB_JOIN(wavg(a, weight),
wavg(r, weight),
wavg(g, weight),
wavg(b, weight));
out += skip;
}
return 0;
@ -785,12 +777,10 @@ gaussian_filter_v64(int rad, uint32_t *in, int h, int skip, uint32_t *out)
if ((k + i) >= h) continue;
all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
}
// FIXME: use ARGB_JOIN
*(out) =
(wavg(a, weight) << 24) |
(wavg(r, weight) << 16) |
(wavg(g, weight) << 8) |
(wavg(b, weight));
*(out) = ARGB_JOIN(wavg(a, weight),
wavg(r, weight),
wavg(g, weight),
wavg(b, weight));
out += skip;
}
return 0;
@ -819,12 +809,10 @@ gaussian_filter_vd(int rad, uint32_t *in, int h, int skip, uint32_t *out)
if ((k + i) >= h) continue;
all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
}
// FIXME: use ARGB_JOIN
*(out) =
(wavgd(a, weight) << 24) |
(wavgd(r, weight) << 16) |
(wavgd(g, weight) << 8) |
(wavgd(b, weight));
*(out) = ARGB_JOIN(wavgd(a, weight),
wavgd(r, weight),
wavgd(g, weight),
wavgd(b, weight));
out += skip;
}
return 0;