From 9c1466e19315852352886078d988579a80162c41 Mon Sep 17 00:00:00 2001 From: "U. Artie Eoff" Date: Fri, 22 Nov 2013 15:07:14 -0800 Subject: [PATCH] evas/examples: fix clipper colors in evas-object-manipulation This makes the clipper colors correct and also gets rid of the following error message spam: ERR..._color_set() Evas only handles pre multiplied colors! Fixes T557 Signed-off-by: U. Artie Eoff --- src/examples/evas/evas-object-manipulation-eo.c | 6 ++++++ src/examples/evas/evas-object-manipulation.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/examples/evas/evas-object-manipulation-eo.c b/src/examples/evas/evas-object-manipulation-eo.c index 2fc5c8d887..03941aad22 100644 --- a/src/examples/evas/evas-object-manipulation-eo.c +++ b/src/examples/evas/evas-object-manipulation-eo.c @@ -77,10 +77,13 @@ _on_keydown(void *data EINA_UNUSED, int alpha, r, g, b; eo_do(d.clipper, evas_obj_color_get(&r, &g, &b, &alpha)); + evas_color_argb_unpremul(alpha, &r, &g, &b); + alpha -= 20; if (alpha < 0) alpha = 255; + evas_color_argb_premul(alpha, &r, &g, &b); eo_do(d.clipper, evas_obj_color_set(r, g, b, alpha)); fprintf(stdout, "Changing clipper's opacity: %d%%\n", @@ -96,6 +99,8 @@ _on_keydown(void *data EINA_UNUSED, fprintf(stdout, "Changing clipper's color to"); eo_do(d.clipper, evas_obj_color_get(&r, &g, &b, &alpha)); + evas_color_argb_unpremul(alpha, &r, &g, &b); + if (g > 0) { fprintf(stdout, "red\n"); @@ -107,6 +112,7 @@ _on_keydown(void *data EINA_UNUSED, g = b = 255; } + evas_color_argb_premul(alpha, &r, &g, &b); eo_do(d.clipper, evas_obj_color_set(r, g, b, alpha)); return; } diff --git a/src/examples/evas/evas-object-manipulation.c b/src/examples/evas/evas-object-manipulation.c index 2ecc2b503d..adc031667d 100644 --- a/src/examples/evas/evas-object-manipulation.c +++ b/src/examples/evas/evas-object-manipulation.c @@ -70,10 +70,13 @@ _on_keydown(void *data EINA_UNUSED, int alpha, r, g, b; evas_object_color_get(d.clipper, &r, &g, &b, &alpha); + evas_color_argb_unpremul(alpha, &r, &g, &b); + alpha -= 20; if (alpha < 0) alpha = 255; + evas_color_argb_premul(alpha, &r, &g, &b); evas_object_color_set(d.clipper, r, g, b, alpha); fprintf(stdout, "Changing clipper's opacity: %d%%\n", @@ -89,6 +92,8 @@ _on_keydown(void *data EINA_UNUSED, fprintf(stdout, "Changing clipper's color to"); evas_object_color_get(d.clipper, &r, &g, &b, &alpha); + evas_color_argb_unpremul(alpha, &r, &g, &b); + if (g > 0) { fprintf(stdout, "red\n"); @@ -100,6 +105,7 @@ _on_keydown(void *data EINA_UNUSED, g = b = 255; } + evas_color_argb_premul(alpha, &r, &g, &b); evas_object_color_set(d.clipper, r, g, b, alpha); return; }