uint32_t *in, *out;
int i,j;
int w,h;
- uint32_t mask,a;
+ uint32_t a;
+ uint8_t r,g,b;
#if BUILD_NEON0
if (evas_common_cpu_has_feature(CPU_FEATURE_NEON) &&
{
for (j = 0; j < w; j++)
{
- a = (*in >> 24) & 0xff;
- mask = a | (a << 8) | (a << 16);
- // FIXME: use *out = ARGB_JOIN(a, r, g, b);
- *out = (mask - (*in & 0xffffff)) | (a << 24);
+ a = A_VAL(in);
+ r = R_VAL(in);
+ g = G_VAL(in);
+ b = B_VAL(in);
+ *out = ARGB_JOIN(a, a - r, a - g, a - b);
out++;
in++;
}
{
for (j = 0; j < w; j++)
{
- // FIXME: use *out = ARGB_JOIN(a, r, g, b);
- *out = ~(*in & ~0xff000000) | ((*in) & 0xff000000);
+ a = A_VAL(in);
+ r = R_VAL(in);
+ g = G_VAL(in);
+ b = B_VAL(in);
+ *out = ARGB_JOIN(a, ~r, ~g, ~b);
out++;
in++;
}
uint32_t *in, *out;
int i, j;
int w, h;
- uint32_t r, g, b, nr, ng, nb;
+ uint32_t a, r, g, b, nr, ng, nb;
in = src->image.data;
out = dst->image.data;
{
for (j = 0; j < w; j++)
{
+ a = A_VAL(in);
r = R_VAL(in);
g = G_VAL(in);
b = B_VAL(in);
if (nr > 255) nr = 255;
if (ng > 255) ng = 255;
if (nb > 255) nb = 255;
- // FIXME: use *out = ARGB_JOIN(a, r, g, b);
- *out = (*in & 0xff000000) | (nr << 16) | (ng << 8) | nb;
+ *out = ARGB_JOIN(a, nr, ng, nb);
out++;
in++;
}
g = G_VAL(in);
b = B_VAL(in);
cur = (r * 0.3) + (g * 0.59) + (b * 0.11);
- cur |= cur << 16;
- // FIXME: use *out = ARGB_JOIN(a, r, g, b);
- *out = (a << 24) | cur | (cur << 8);
+ *out = ARGB_JOIN(a, r, g, b);
out++;
in++;
}
g = G_VAL(in);
b = B_VAL(in);
cur = r * 0.3 + g * 0.59 + b * 0.11;
- cur |= cur << 16;
- // FIXME: use *out = ARGB_JOIN(a, r, g, b);
- *out = 0xff000000 | cur | (cur << 8);
+ *out = ARGB_JOIN(255, r, g, b);
out++;
in++;
}