diff --git a/legacy/evas/src/modules/engines/software_16/evas_soft16_dither_mask.c b/legacy/evas/src/modules/engines/software_16/evas_soft16_dither_mask.c index a496908145..cae1faaf19 100644 --- a/legacy/evas/src/modules/engines/software_16/evas_soft16_dither_mask.c +++ b/legacy/evas/src/modules/engines/software_16/evas_soft16_dither_mask.c @@ -142,14 +142,15 @@ static inline void _soft16_convert_from_rgba_pt(const DATA32 *src, DATA16 *dst, DATA8 *alpha, const int x, const int y) { - DATA8 orig_r, orig_g, orig_b, orig_a; + DATA8 orig_r, orig_g, orig_b, orig_a, a; orig_r = R_VAL(src); orig_g = G_VAL(src); orig_b = B_VAL(src); orig_a = A_VAL(src); + a = orig_a >> 3; - if (orig_a == 255) + if (a == 31) { DATA8 dith5, dith6, dith, r, g, b; @@ -166,23 +167,22 @@ _soft16_convert_from_rgba_pt(const DATA32 *src, DATA16 *dst, DATA8 *alpha, if (((orig_b - (b << 3)) >= dith5) && (b < 0x1f)) b++; *dst = (r << 11) | (g << 5) | b; - *alpha = 31; + *alpha = 32; } - else if (orig_a == 0) + else if (a == 0) { *dst = 0; *alpha = 0; } else { - DATA8 r, g, b, a; + DATA8 r, g, b; r = orig_r >> 3; g = orig_g >> 2; b = orig_b >> 3; - a = (orig_a >> 3) + 1; *dst = (r << 11) | (g << 5) | b; - *alpha = a; + *alpha = a + 1; } } diff --git a/legacy/evas/src/modules/engines/software_16/evas_soft16_image_scaled_sampled.c b/legacy/evas/src/modules/engines/software_16/evas_soft16_image_scaled_sampled.c index 3e5dbfebd3..fbcefa8c0e 100644 --- a/legacy/evas/src/modules/engines/software_16/evas_soft16_image_scaled_sampled.c +++ b/legacy/evas/src/modules/engines/software_16/evas_soft16_image_scaled_sampled.c @@ -234,7 +234,7 @@ _soft16_image_draw_scaled_solid_solid_mul_color(Soft16_Image *src, dst_itr = dst->pixels + dst_offset; - if (alpha == 31) + if (alpha == 32) for (y = 0; y < h; y++, dst_itr += dst->stride) { DATA16 *d, *s; @@ -310,7 +310,7 @@ _soft16_image_draw_scaled_transp_solid_mul_color(Soft16_Image *src, dst_itr = dst->pixels + dst_offset; - if (alpha == 31) + if (alpha == 32) for (y = 0; y < h; y++, dst_itr += dst->stride) { DATA16 *d, *s; @@ -407,7 +407,7 @@ _soft16_image_draw_scaled_mul(Soft16_Image *src, Soft16_Image *dst, int *offset_x, int *offset_y, DATA8 r, DATA8 g, DATA8 b, DATA8 a) { - if ((a == r) && (a == (g >> 1)) && (a == b)) + if ((r == b) && (r == (g >> 1)) && (r == (a - 1))) _soft16_image_draw_scaled_mul_alpha (src, dst, dc, dst_offset, w, h, offset_x, offset_y, a); else @@ -428,7 +428,8 @@ soft16_image_draw_scaled_sampled(Soft16_Image *src, Soft16_Image *dst, if (!dc->mul.use) { - r = b = a = 31; + a = 32; + r = b = 31; g = 63; mul_rgb565 = 0xffff; } @@ -445,6 +446,7 @@ soft16_image_draw_scaled_sampled(Soft16_Image *src, Soft16_Image *dst, if (r > a) r = a; if (g > (a << 1)) g = (a << 1); if (b > a) b = a; + a++; mul_rgb565 = (r << 11) || (g << 5) | b; } @@ -461,7 +463,6 @@ soft16_image_draw_scaled_sampled(Soft16_Image *src, Soft16_Image *dst, dst_offset = cr.x + (cr.y * dst->stride); - if (mul_rgb565 == 0xffff) _soft16_image_draw_scaled_no_mul (src, dst, dc, dst_offset, cr.w, cr.h, offset_x, offset_y); diff --git a/legacy/evas/src/modules/engines/software_16/evas_soft16_image_unscaled.c b/legacy/evas/src/modules/engines/software_16/evas_soft16_image_unscaled.c index bf5144bd08..7da2fe772e 100644 --- a/legacy/evas/src/modules/engines/software_16/evas_soft16_image_unscaled.c +++ b/legacy/evas/src/modules/engines/software_16/evas_soft16_image_unscaled.c @@ -149,7 +149,7 @@ _soft16_image_draw_unscaled_solid_solid_mul_color(Soft16_Image *src, src_itr = src->pixels + src_offset; dst_itr = dst->pixels + dst_offset; - if (a == 31) + if (a == 32) for (y = 0; y < h; y++) { _soft16_scanline_blend_solid_solid_mul_color_solid @@ -185,7 +185,7 @@ _soft16_image_draw_unscaled_transp_solid_mul_color(Soft16_Image *src, alpha_itr = src->alpha + src_offset; dst_itr = dst->pixels + dst_offset; - if (a == 31) + if (a == 32) for (y = 0; y < h; y++) { _soft16_scanline_blend_transp_solid_mul_color_solid @@ -232,7 +232,7 @@ _soft16_image_draw_unscaled_mul(Soft16_Image *src, Soft16_Image *dst, int width, int height, DATA8 r, DATA8 g, DATA8 b, DATA8 a) { - if ((a == r) && (a == (g >> 1)) && (a == b)) + if ((r == b) && (r == (g >> 1)) && (r == (a - 1))) _soft16_image_draw_unscaled_mul_alpha(src, dst, dc, src_offset, dst_offset, width, height, a); else @@ -254,7 +254,8 @@ soft16_image_draw_unscaled(Soft16_Image *src, Soft16_Image *dst, if (!dc->mul.use) { - r = b = a = 31; + a = 32; + r = b = 31; g = 63; mul_rgb565 = 0xffff; } @@ -271,6 +272,7 @@ soft16_image_draw_unscaled(Soft16_Image *src, Soft16_Image *dst, if (r > a) r = a; if (g > (a << 1)) g = (a << 1); if (b > a) b = a; + a++; mul_rgb565 = (r << 11) || (g << 5) | b; } diff --git a/legacy/evas/src/modules/engines/software_16/evas_soft16_scanline_blend.c b/legacy/evas/src/modules/engines/software_16/evas_soft16_scanline_blend.c index a7f5c7324b..90d04f4140 100644 --- a/legacy/evas/src/modules/engines/software_16/evas_soft16_scanline_blend.c +++ b/legacy/evas/src/modules/engines/software_16/evas_soft16_scanline_blend.c @@ -14,7 +14,7 @@ static inline void _soft16_pt_blend_transp_solid(DATA16 *p_dst, DATA16 src, DATA8 alpha) { - if (alpha == 31) *p_dst = src; + if (alpha == 32) *p_dst = src; else if (alpha != 0) { DATA32 a, b; @@ -359,7 +359,7 @@ _soft16_pt_blend_transp_solid_mul_color_solid(DATA16 *p_dst, DATA16 src, DATA8 a g1 = ((((src >> 5) & 0x3f) * g) >> 6) & 0x3f; b1 = (((src & 0x1f) * b) >> 5) & 0x1f; - if (alpha == 31) *p_dst = (r1 << 11) | (g1 << 5) | b1; + if (alpha == 32) *p_dst = (r1 << 11) | (g1 << 5) | b1; else { DATA32 rgb_unpack, d;