evas/examples: fix clipper colors in evas-object-manipulation
authorU. Artie Eoff <ullysses.a.eoff@intel.com>
Fri, 22 Nov 2013 23:07:14 +0000 (15:07 -0800)
committerU. Artie Eoff <ullysses.a.eoff@intel.com>
Fri, 22 Nov 2013 23:35:03 +0000 (15:35 -0800)
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 <ullysses.a.eoff@intel.com>
src/examples/evas/evas-object-manipulation-eo.c
src/examples/evas/evas-object-manipulation.c

index 2fc5c8d..03941aa 100644 (file)
@@ -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;
      }
index 2ecc2b5..adc0316 100644 (file)
@@ -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;
      }