efl/evas/filters: say goodbye.
authorGustavo Sverzut Barbieri <barbieri@gmail.com>
Wed, 5 Dec 2012 13:03:51 +0000 (13:03 +0000)
committerGustavo Sverzut Barbieri <barbieri@gmail.com>
Wed, 5 Dec 2012 13:03:51 +0000 (13:03 +0000)
This task wasn't completed and it was all disabled in code, then
remove it so it doesn't add cruft to be looked at.

SVN revision: 80240

50 files changed:
src/Makefile_Evas.am
src/lib/evas/canvas/evas_filter.c [deleted file]
src/lib/evas/canvas/evas_object_image.c
src/lib/evas/canvas/evas_object_main.c
src/lib/evas/common/evas_image_main.c
src/lib/evas/include/evas_common.h
src/lib/evas/include/evas_private.h
src/modules/evas/engines/gl_cocoa/evas_engine.c
src/modules/evas/engines/gl_common/evas_gl_common.h
src/modules/evas/engines/gl_common/evas_gl_filter.c [deleted file]
src/modules/evas/engines/gl_common/evas_gl_image.c
src/modules/evas/engines/gl_common/evas_gl_shader.c
src/modules/evas/engines/gl_common/shader/filter_blur.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_bgra.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_bgra.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_vert.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_blur_vert.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_bgra.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_bgra.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_invert_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.shd [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.h [deleted file]
src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.shd [deleted file]
src/modules/evas/engines/gl_sdl/evas_engine.c
src/modules/evas/engines/gl_x11/evas_engine.c
src/modules/evas/engines/software_generic/evas_engine.c
src/modules/evas/engines/wayland_egl/evas_engine.c

index bcd5fe7..497d092 100644 (file)
@@ -45,7 +45,6 @@ lib/evas/canvas/evas_common_interface.c \
 lib/evas/canvas/evas_data.c \
 lib/evas/canvas/evas_device.c \
 lib/evas/canvas/evas_events.c \
-lib/evas/canvas/evas_filter.c \
 lib/evas/canvas/evas_focus.c \
 lib/evas/canvas/evas_key.c \
 lib/evas/canvas/evas_key_grab.c \
@@ -490,7 +489,6 @@ modules/evas/engines/gl_common/evas_gl_image.c \
 modules/evas/engines/gl_common/evas_gl_font.c \
 modules/evas/engines/gl_common/evas_gl_polygon.c \
 modules/evas/engines/gl_common/evas_gl_line.c \
-modules/evas/engines/gl_common/evas_gl_filter.c \
 modules/evas/engines/gl_common/evas_gl_core.c \
 modules/evas/engines/gl_common/evas_gl_api_ext.h \
 modules/evas/engines/gl_common/evas_gl_api_ext_def.h \
@@ -524,22 +522,6 @@ modules/evas/engines/gl_common/shader/tex_frag.h \
 modules/evas/engines/gl_common/shader/tex_vert.h \
 modules/evas/engines/gl_common/shader/tex_nomul_frag.h \
 modules/evas/engines/gl_common/shader/tex_nomul_vert.h \
-modules/evas/engines/gl_common/shader/filter_invert.h \
-modules/evas/engines/gl_common/shader/filter_invert_nomul.h \
-modules/evas/engines/gl_common/shader/filter_invert_bgra.h \
-modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.h \
-modules/evas/engines/gl_common/shader/filter_sepia.h \
-modules/evas/engines/gl_common/shader/filter_sepia_nomul.h \
-modules/evas/engines/gl_common/shader/filter_sepia_bgra.h \
-modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.h \
-modules/evas/engines/gl_common/shader/filter_greyscale.h \
-modules/evas/engines/gl_common/shader/filter_greyscale_nomul.h \
-modules/evas/engines/gl_common/shader/filter_greyscale_bgra.h \
-modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.h \
-modules/evas/engines/gl_common/shader/filter_blur.h \
-modules/evas/engines/gl_common/shader/filter_blur_nomul.h \
-modules/evas/engines/gl_common/shader/filter_blur_bgra.h \
-modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.h \
 modules/evas/engines/gl_common/shader/yuy2_frag.h \
 modules/evas/engines/gl_common/shader/yuy2_vert.h \
 modules/evas/engines/gl_common/shader/yuy2_nomul_frag.h \
@@ -570,22 +552,6 @@ modules/evas/engines/gl_common/shader/tex_frag.shd \
 modules/evas/engines/gl_common/shader/tex_vert.shd \
 modules/evas/engines/gl_common/shader/tex_nomul_frag.shd \
 modules/evas/engines/gl_common/shader/tex_nomul_vert.shd \
-modules/evas/engines/gl_common/shader/filter_invert.shd \
-modules/evas/engines/gl_common/shader/filter_invert_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_invert_bgra.shd \
-modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_greyscale.shd \
-modules/evas/engines/gl_common/shader/filter_greyscale_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_greyscale_bgra.shd \
-modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_sepia.shd \
-modules/evas/engines/gl_common/shader/filter_sepia_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_sepia_bgra.shd \
-modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_blur.shd \
-modules/evas/engines/gl_common/shader/filter_blur_nomul.shd \
-modules/evas/engines/gl_common/shader/filter_blur_bgra.shd \
-modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.shd \
 modules/evas/engines/gl_common/shader/nv12_frag.h \
 modules/evas/engines/gl_common/shader/nv12_frag.shd \
 modules/evas/engines/gl_common/shader/nv12_nomul_frag.h \
diff --git a/src/lib/evas/canvas/evas_filter.c b/src/lib/evas/canvas/evas_filter.c
deleted file mode 100644 (file)
index 80a11b4..0000000
+++ /dev/null
@@ -1,1428 +0,0 @@
-/*
- * Filter implementation for evas
- */
-
-#if 0 // filtering disabled
-typedef enum
-{
-   /** Apply any filter effects to this object (Default) */
-   EVAS_FILTER_MODE_OBJECT,
-   /** Filter all objects beneath this object on the canvas */
-   EVAS_FILTER_MODE_BELOW,
-} Evas_Filter_Mode;
-typedef enum
-{
-   /** No filter: Default */
-   EVAS_FILTER_NONE,
-   /** A blur filter.  Params are quality (float), and radius (int). */
-   EVAS_FILTER_BLUR,
-   /** Negates the colors of an image.  Also called solarize */
-   EVAS_FILTER_INVERT,
-   EVAS_FILTER_SOLARIZE = EVAS_FILTER_INVERT,
-   /** Makes a sepia version of the image. */
-   EVAS_FILTER_SEPIA,
-   /** Makes a greyscale version of the image.  Params are 'red',
-    * 'green', 'blue' (all floats) which must add to 1.  The defaults are
-    * 0.3, 0.59 and 0.11 which approximates human vision. Setting 'all'
-    * sets rgb to the same value. */
-   EVAS_FILTER_GREYSCALE,
-   EVAS_FILTER_GRAYSCALE = EVAS_FILTER_GREYSCALE,
-   /** Brighten (or darken) image.  Param 'adjust' float (-1.0 to 1.0)
-    * amount to adjust. */
-   EVAS_FILTER_BRIGHTNESS,
-   /** Enhance contrast on image.  Param 'adjust' float (-1.0 to 1.0)
-    * amount to adjust. */
-   EVAS_FILTER_CONTRAST,
-   
-   EVAS_FILTER_LAST = EVAS_FILTER_CONTRAST
-} Evas_Filter;
-
-/**
- * Set the filter mode for an object.
- *
- * There are two valid filtering modes currently:
- *  - EVAS_FILTER_MODE_OBJECT: which applies the filter to the object itself
- *  - EVAS_FILTER_MODE_BELOW: which makes the object invisible and filters
- *  what is below the object.
- *
- * The default filter mode is EVAS_FILTER_MODE_OBJECT.
- *
- * @param o Object to set filter mode on.
- * @param mode Mode to set.
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
- */
-   EAPI Eina_Bool                            evas_object_filter_mode_set      (Evas_Object *o, Evas_Filter_Mode mode);
-
-/**
- * Get the current filtering mode for an object.
- *
- * By default all objects are in object filtering mode, even if no filter is
- * set.
- *
- * @param o Object to get filter mode of.
- * @return Filter mode (default EVAS_FILTER_MODE_OBJECT)
- */
-   EAPI Evas_Filter_Mode                     evas_object_filter_mode_get      (Evas_Object *o);
-
-/**
- * Set the current filter type.
- *
- * This sets the filter type, whether a blur, color filter or some other type
- * of filter.  This is normally the only filter call necessary, although some
- * filters require additional parameters.
- *
- * If the object has a filter already, and existing parameters will be
- * cleared.
- *
- * Setting the blur to EVAS_FILTER_NONE removes any filter.
- *
- * @param o Object to set the filter on.
- * @param filter Filter to set.
- * @return @c EINA_TRUE on success.
- */
-   EAPI Eina_Bool                            evas_object_filter_set           (Evas_Object *o, Evas_Filter filter);
-
-/**
- * Get the current filter.
- *
- * @param o Object to get filter of.
- * @return The filter if set, or EVAS_FILTER_NONE.
- */
-   EAPI Evas_Filter                          evas_object_filter_get           (Evas_Object *o);
-
-/**
- * Set an integer parameter of a filter.
- *
- * This sets an integer parameter of a filter, if such parameter is known to
- * the filter.  Note that some parameters may actually set multiple fields.
- * The individual filters define the specific parameters available.
- *
- * It should be noted that filter parameters are lost after the filter type
- * changes, so set the filter type, then the parameters.
- *
- * @param o Object to set parameter on.
- * @param param Name of parameter to set.
- * @param val Value to set.
- * @return @c EINA_TRUE if at least one parameter was set, @c EINA_FALSE
- * otherwise.
- */
-   EAPI Eina_Bool                            evas_object_filter_param_int_set (Evas_Object *o, const char *param, int val);
-
-/**
- * Get an integer value parameter from a filter.
- *
- * Gets the first matching parameter for a filter.  Note there is no way to
- * later fields if they do not have their own accessor name.
- *
- * Also note that there is no way to tell the difference between a -1 as a
- * value, and the error code.  Ask your filter writer to use a different
- * range.
- *
- * @param o The object.
- * @Param param Name of the parameter to get.
- * @return The value, or -1 on error.
- */
-   EAPI int                                  evas_object_filter_param_int_get (Evas_Object *o, const char *param);
-
-/**
- * Set a string parameter on a filter
- * 
- * Currently unimplemented as no filters use this yet
- */
-   EAPI Eina_Bool                            evas_object_filter_param_str_set (Evas_Object *o, const char *param, const char *val);
-
-/**
- * Get a string parameter from a filter
- *
- * Currently unimplemented as no filters use this yet
- */
-   EAPI const char                          *evas_object_filter_param_str_get (Evas_Object *o, const char *param);
-
-/**
- * Set an object parameter on a filter
- * 
- * Currently unimplemented as no filters use this yet
- */
-   EAPI Eina_Bool                            evas_object_filter_param_obj_set (Evas_Object *o, const char *param, Evas_Object *val);
-
-/**
- * get an object parameter from a filter
- * 
- * Currently unimplemented as no filters use this yet
- */
-   EAPI Evas_Object                         *evas_object_filter_param_obj_get (Evas_Object *o, const char *param);
-
-/**
- * Set a float parameter of a filter.
- *
- * This is the same as evas_object_filter_param_int_set(), but for floating
- * point values.
- *
- * @param o Object to set value on.
- * @param param Name of the parameter to set.
- * @param @c EINA_TRUE if at least one parameter was set, @c EINA_FALSE
- * otherwise.
- */
-   EAPI Eina_Bool                            evas_object_filter_param_float_set(Evas_Object *o, const char *param, double val);
-
-/**
- * Get a float parameter of a filter.
- *
- * This is the same as evas_object_filter_param_int_get(), but for floating
- * point values.
- *
- * @param o Object to set value on.
- * @param param Name of the parameter to set.
- * @return The value, or -1 on error.
- */
-   EAPI double                               evas_object_filter_param_float_get(Evas_Object *o, const char *param);
-
-#include <stddef.h>     // offsetof
-
-#include "evas_common.h"
-#include "evas_private.h"
-
-#include <assert.h>
-/* disable neon - even after fixes:
- * Error: ARM register expected -- vdup.u32 q14,$0xff000000'
- * not going to fix now
-#ifdef BUILD_NEON
-# define BUILD_NEON0 1
-#else
-# define BUILD_NEON0 0
-#endif
-*/
-
-#define BUILD_NEON0 0
-
-typedef struct Evas_Filter_Info_Blur
-{
-   double quality;
-   int radius;
-} Evas_Filter_Info_Blur;
-
-typedef struct Evas_Filter_Info_GreyScale
-{
-   double r,g,b;
-} Evas_Filter_Info_GreyScale;
-
-typedef struct Evas_Filter_Info_Brightness
-{
-   double adjust;
-} Evas_Filter_Info_Brightness;
-
-typedef struct Evas_Filter_Info_Contrast
-{
-   double adjust;
-} Evas_Filter_Info_Contrast;
-
-typedef int (*Filter_Size_FN)(Evas_Filter_Info *,int,int,int*,int*,Eina_Bool);
-typedef uint8_t *(*Key_FN)(const Evas_Filter_Info  *, uint32_t *);
-
-struct fieldinfo
-{
-   const char *field;
-   int type;
-   size_t offset;
-};
-
-struct filterinfo
-{
-   Evas_Software_Filter_Fn filter;
-   const size_t datasize;
-   Filter_Size_FN sizefn;
-   Key_FN keyfn;
-   Eina_Bool alwaysalpha;
-};
-
-enum
-{
-   TYPE_INT,
-   TYPE_FLOAT
-};
-
-static int blur_size_get(Evas_Filter_Info*, int, int, int *, int *, Eina_Bool);
-static uint8_t *gaussian_key_get(const Evas_Filter_Info *, uint32_t *);
-
-static Eina_Bool gaussian_filter(Evas_Filter_Info *, RGBA_Image*, RGBA_Image*);
-static Eina_Bool negation_filter(Evas_Filter_Info *, RGBA_Image*, RGBA_Image*);
-static Eina_Bool sepia_filter(Evas_Filter_Info *, RGBA_Image*, RGBA_Image*);
-static Eina_Bool greyscale_filter(Evas_Filter_Info*, RGBA_Image*, RGBA_Image*);
-static Eina_Bool brightness_filter(Evas_Filter_Info*, RGBA_Image*, RGBA_Image*);
-static Eina_Bool contrast_filter(Evas_Filter_Info *, RGBA_Image*, RGBA_Image*);
-
-struct filterinfo filterinfo[] =
-{
-   /* None */
-   { NULL, 0, NULL, NULL, EINA_FALSE},
-   /* Blur */
-   { gaussian_filter, sizeof(Evas_Filter_Info_Blur), blur_size_get, gaussian_key_get, EINA_TRUE },
-   /* Negation */
-   { negation_filter, 0, NULL, NULL, EINA_FALSE },
-   /* Sepia */
-   { sepia_filter, 0, NULL, NULL, EINA_FALSE },
-   /* Greyscale */
-   { greyscale_filter, sizeof(Evas_Filter_Info_GreyScale), NULL, NULL, EINA_FALSE },
-   /* Brightness */
-   { brightness_filter, sizeof(Evas_Filter_Info_Brightness), NULL, NULL, EINA_FALSE },
-   /* Contrast */
-   { contrast_filter, sizeof(Evas_Filter_Info_Contrast), NULL, NULL, EINA_FALSE},
-};
-
-
-static struct fieldinfo blurfields[] =
-{
-   { "quality",  TYPE_FLOAT, offsetof(Evas_Filter_Info_Blur, quality) },
-   { "radius",  TYPE_INT, offsetof(Evas_Filter_Info_Blur, radius) },
-   { NULL, 0, 0 },
-};
-
-static struct fieldinfo greyfields[] =
-{
-   { "red",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, r) },
-   { "green",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, g) },
-   { "blue",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, b) },
-
-   { "all",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, r) },
-   { "all",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, g) },
-   { "all",  TYPE_FLOAT, offsetof(Evas_Filter_Info_GreyScale, b) },
-   { NULL, 0, 0 },
-};
-
-static struct fieldinfo brightnessfields[] =
-{
-   { "adjust",  TYPE_FLOAT, offsetof(Evas_Filter_Info_Brightness, adjust) },
-   { NULL, 0, 0 },
-};
-
-static struct fieldinfo contrastfields[] =
-{
-   { "adjust",  TYPE_FLOAT, offsetof(Evas_Filter_Info_Contrast, adjust) },
-   { NULL, 0, 0 },
-};
-
-static struct fieldinfo *filterfields[] =
-{
-   NULL,
-   blurfields,
-   NULL,
-   NULL,
-   greyfields,
-   brightnessfields,
-   contrastfields,
-};
-
-static Evas_Filter_Info *filter_alloc(Evas_Object *o);
-
-EAPI Eina_Bool
-evas_object_filter_mode_set(Evas_Object *o, Evas_Filter_Mode mode)
-{
-   Evas_Filter_Info *info;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EINA_FALSE;
-   MAGIC_CHECK_END();
-
-   if ((mode != EVAS_FILTER_MODE_OBJECT) && (mode != EVAS_FILTER_MODE_BELOW))
-      return EINA_FALSE;
-
-   if (!o->filter)
-     {
-        filter_alloc(o);
-     }
-   if (!o->filter) return EINA_FALSE;
-   info = o->filter;
-
-   if (info->mode == mode) return EINA_TRUE; /* easy case */
-   info->mode = mode;
-   info->dirty = 1;
-   return EINA_TRUE;
-}
-
-EAPI Evas_Filter_Mode
-evas_object_filter_mode_get(Evas_Object *o)
-{
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EVAS_FILTER_MODE_OBJECT;
-   MAGIC_CHECK_END();
-
-   if (!o->filter) return EVAS_FILTER_MODE_OBJECT;
-   return o->filter->mode;
-}
-
-EAPI Eina_Bool
-evas_object_filter_set(Evas_Object *o, Evas_Filter filter)
-{
-   Evas_Filter_Info *info;
-   struct filterinfo *finfo;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EINA_FALSE;
-   MAGIC_CHECK_END();
-
-   /* force filter to be signed: else gcc complains, but enums may always be
-    * signed */
-   if (((int)filter < (int)EVAS_FILTER_NONE) || (filter > EVAS_FILTER_LAST))
-      return EINA_FALSE;
-
-   /* Don't alloc on no-op */
-   if (!o-filter && filter == EVAS_FILTER_NONE) return EINA_TRUE;
-
-   if (!o->filter) filter_alloc(o);
-   if (!o->filter) return EINA_FALSE;
-
-   info = o->filter;
-
-   if (info->filter == filter) return EINA_TRUE;
-
-   finfo = filterinfo + filter;
-   info->filter = filter;
-   info->dirty = 1;
-   if (info->data)
-     {
-        if (info->data_free)
-           info->data_free(info->data);
-        else
-           free(info->data);
-     }
-   info->datalen = finfo->datasize;
-   if (finfo->datasize)
-     {
-        info->data = calloc(1, finfo->datasize);
-        if (!info->data)
-          {
-             o->filter = EVAS_FILTER_NONE;
-             return EINA_FALSE;
-          }
-     }
-   else
-      info->data = NULL;
-   info->data_free = NULL;
-
-   return EINA_TRUE;
-}
-
-EAPI Evas_Filter
-evas_object_filter_get(Evas_Object *o)
-{
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EVAS_FILTER_NONE;
-   MAGIC_CHECK_END();
-
-   if (!o->filter) return EVAS_FILTER_NONE;
-   return o->filter->filter;
-}
-
-EAPI Eina_Bool
-evas_object_filter_param_int_set(Evas_Object *o, const char *param, int val)
-{
-   char *data;
-   const struct fieldinfo *fields;
-   Eina_Bool found;
-   int i;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EINA_FALSE;
-   MAGIC_CHECK_END();
-
-   if ((!o->filter) || (!o->filter->data)) return EINA_FALSE;
-
-   fields = filterfields[o->filter->filter];
-   data = o->filter->data;
-   found = EINA_FALSE;
-   for (i = 0; fields[i].field; i++)
-     {
-        if (!strcmp(fields[i].field, param))
-          {
-             if (fields[i].type != TYPE_INT) continue;
-             *(int *)(data + fields[i].offset) = val;
-             o->filter->dirty = 1;
-             evas_object_change(o);
-             found = EINA_TRUE;
-          }
-     }
-   return found;
-}
-
-EAPI int
-evas_object_filter_param_int_get(Evas_Object *o, const char *param)
-{
-   char *data;
-   const struct fieldinfo *fields;
-   int val;
-   int i;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return -1;
-   MAGIC_CHECK_END();
-
-   if ((!o->filter) || (!o->filter->data)) return -1;
-
-   fields = filterfields[o->filter->filter];
-   if (!fields) return -1;
-   data = o->filter->data;
-
-   for (i = 0; fields[i].field; i++)
-     {
-        if (!strcmp(fields[i].field, param))
-          {
-             if (fields[i].type != TYPE_INT) continue;
-             val = *(int *)(data + fields[i].offset);
-             return val;
-          }
-     }
-   return -1;
-}
-
-EAPI Eina_Bool
-evas_object_filter_param_str_set(Evas_Object *o EINA_UNUSED,
-                                 const char *param EINA_UNUSED,
-                                 const char *val EINA_UNUSED)
-{
-   return EINA_FALSE;
-}
-
-EAPI const char *
-evas_object_filter_param_str_get(Evas_Object *o EINA_UNUSED,
-                                 const char *param EINA_UNUSED)
-{
-   return NULL;
-}
-
-EAPI Eina_Bool
-evas_object_filter_param_obj_set(Evas_Object *o EINA_UNUSED,
-                                 const char *param EINA_UNUSED,
-                                 Evas_Object *val EINA_UNUSED)
-{
-   return EINA_FALSE;
-}
-
-EAPI Evas_Object *
-evas_object_filter_param_obj_get(Evas_Object *o EINA_UNUSED,
-                                 const char *param EINA_UNUSED)
-{
-   return NULL;
-}
-
-EAPI Eina_Bool
-evas_object_filter_param_float_set(Evas_Object *o, const char *param,
-                                   double val)
-{
-   char *data;
-   const struct fieldinfo *fields;
-   int i;
-   Eina_Bool rv;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return EINA_FALSE;
-   MAGIC_CHECK_END();
-
-   if ((!o->filter) || (!o->filter->data)) return EINA_FALSE;
-
-   rv = EINA_FALSE;
-   fields = filterfields[o->filter->filter];
-   if (!fields) return EINA_FALSE;
-
-   data = o->filter->data;
-
-   for (i = 0; fields[i].field; i++)
-     {
-        if (!strcmp(fields[i].field, param))
-          {
-             if (fields[i].type != TYPE_FLOAT) continue;
-             *(double *)(data + fields[i].offset) = val;
-             o->filter->dirty = 1;
-             o->changed = 1;
-             evas_object_change(o);
-             rv = EINA_TRUE;
-          }
-     }
-   return rv;
-}
-
-EAPI double
-evas_object_filter_param_float_get(Evas_Object *o, const char *param)
-{
-   char *data;
-   const struct fieldinfo *fields;
-   double val;
-   int i;
-
-   MAGIC_CHECK(o, Evas_Object, MAGIC_OBJ);
-   return -1;
-   MAGIC_CHECK_END();
-
-   if ((!o->filter) || (!o->filter->data)) return -1;
-
-   fields = filterfields[o->filter->filter];
-   if (!fields) return -1;
-   data = o->filter->data;
-
-   for (i = 0; fields[i].field; i++)
-     {
-        if (!strcmp(fields[i].field, param))
-          {
-             if (fields[i].type != TYPE_FLOAT) continue;
-             val = *(double *)(data + fields[i].offset);
-             return val;
-          }
-     }
-   return -1;
-}
-
-
-
-
-
-/*
- * Internal call
- */
-int
-evas_filter_get_size(Evas_Filter_Info *info, int inw, int inh,
-                     int *outw, int *outh, Eina_Bool inv)
-{
-   if (!info) return -1;
-   if ((!outw) && (!outh)) return 0;
-
-   if (filterinfo[info->filter].sizefn)
-      return filterinfo[info->filter].sizefn(info, inw, inh, outw, outh, inv);
-
-   if (outw) *outw = inw;
-   if (outh) *outh = inh;
-   return 0;
-}
-
-Eina_Bool
-evas_filter_always_alpha(Evas_Filter_Info *info)
-{
-   if (!info) return EINA_FALSE;
-   return filterinfo[info->filter].alwaysalpha;
-}
-
-/*
- * Another internal call:
- *    Given a filterinfo, generate a unique key for it
- *
- * For simple filters, it's just the filter type.
- * for more complex filters, it's the type, with it's params.
- *
- * Note management of the key data is up to the caller, that is it should
- * probably be freed after use.
- *
- * Note the automatic fallback generation places the single byte at the end so
- * the memcpy will be aligned.  Micro-optimisations FTW!
- *
- * @param info Filter info to generate from
- * @param len Length of the buffer returned.
- * @return key Key buffer
- */
-uint8_t *
-evas_filter_key_get(const Evas_Filter_Info *info, uint32_t *lenp)
-{
-   struct filterinfo *finfo;
-   uint8_t *key;
-   int len;
-
-   if (!info) return NULL;
-
-   finfo = filterinfo + info->filter;
-   if (finfo->keyfn) return finfo->keyfn(info, lenp);
-
-   len = 1 + finfo->datasize;
-   key = malloc(len);
-   if (!key) return NULL;
-   if (finfo->datasize) memcpy(key, info->data, finfo->datasize);
-   key[finfo->datasize] = info->filter;
-   if (lenp) *lenp = len;
-   return key;
-}
-
-Evas_Software_Filter_Fn
-evas_filter_software_get(Evas_Filter_Info *info)
-{
-   return filterinfo[info->filter].filter;
-}
-
-void
-evas_filter_free(Evas_Object *o)
-{
-   if (!o->filter) return;
-   if (o->filter->key) free(o->filter->key);
-   free(o->filter);
-   o->filter = NULL;
-}
-
-
-
-
-/*
- * Private calls
- */
-static Evas_Filter_Info *
-filter_alloc(Evas_Object *o)
-{
-   Evas_Filter_Info *info;
-
-   if (!o) return NULL;
-   info = calloc(1,sizeof(struct Evas_Filter_Info));
-   if (!info) return NULL;
-   info->dirty = 1;
-   info->filter = EVAS_FILTER_NONE;
-   info->mode = EVAS_FILTER_MODE_OBJECT;
-   info->datalen = 0;
-
-   o->filter = info;
-
-   return info;
-}
-
-static int
-blur_size_get(Evas_Filter_Info *info, int inw, int inh, int *outw, int *outh,
-              Eina_Bool inv)
-{
-   Evas_Filter_Info_Blur *blur = info->data;
-
-   if (inv)
-     {
-        if (outw) *outw = MAX(inw - (blur->radius * 2), 0);
-        if (outh) *outh = MAX(inh - (blur->radius * 2), 0);
-     }
-   else
-     {
-        if (outw) *outw = inw + (blur->radius * 2);
-        if (outh) *outh = inh + (blur->radius * 2);
-     }
-   return 0;
-}
-
-/*
- * Generate a key for the Gaussian generator.
- *
- * The size is:
- *    - 1 byte for the type (blur)
- *    - 1 byte for the quality (0-1 -> 0-255)
- *    - 2 bytes for radius (max is 508 anyway)
- *
- * @param info Filter info
- * @param len Length of the returned buffer
- * @return new buffer
- */
-static uint8_t *
-gaussian_key_get(const Evas_Filter_Info *info, uint32_t *lenp)
-{
-   struct Evas_Filter_Info_Blur *blur;
-   uint8_t *key;
-
-   if ((!info) || (!info->data)) return NULL;
-   blur = info->data;
-
-   if (lenp) *lenp = 4;
-   key = malloc(4);
-   if (!key) return NULL;
-   key[0] = EVAS_FILTER_BLUR;
-   key[1] = blur->quality * 255;
-   key[2] = blur->radius >> 8;
-   key[3] = blur->radius;
-
-   return key;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/**
- * Software implementations
- */
-#define all(OP, A, R, G, B, W, I) \
-   do { \
-      A OP A_VAL(I) * W; \
-      R OP R_VAL(I) * W; \
-      G OP G_VAL(I) * W; \
-      B OP B_VAL(I) * W; \
-   } while (0)
-#define wavg(x,n)        (((x) / (n)) & 0xff)
-#define wavgd(x,n)       ((uint32_t)((x) / (n)) & 0xff)
-
-typedef int (*FilterH)(int, uint32_t *, int, uint32_t *);
-typedef int (*FilterV)(int, uint32_t *, int, int, uint32_t *);
-
-static int gaussian_filter_h(int rad, uint32_t *in, int w, uint32_t *out);
-static int gaussian_filter_h64(int rad, uint32_t *in, int w, uint32_t *out);
-static int gaussian_filter_hd(int rad, uint32_t *in, int w, uint32_t *out);
-static int gaussian_filter_v(int rad, uint32_t *in, int h, int skip, uint32_t *out);
-static int gaussian_filter_v64(int rad, uint32_t *in, int h, int skip, uint32_t *out);
-static int gaussian_filter_vd(int rad, uint32_t *in, int h, int skip, uint32_t *out);
-static const uint32_t *gaussian_row_get(int row, int *npoints, uint32_t *weight);
-static const uint64_t *gaussian_row_get64(int row, int *npoints, uint64_t *weight);
-static const double *gaussian_row_getd(int row, int *npoints, double *weight);
-
-static Eina_Bool
-gaussian_filter(Evas_Filter_Info *filter, RGBA_Image *src, RGBA_Image *dst)
-{
-   int i;
-   uint32_t nw, nh;
-   uint32_t *in, *tmp, *out;
-   FilterV filter_v = gaussian_filter_v;
-   FilterH filter_h = gaussian_filter_h;
-   Evas_Filter_Info_Blur *blur;
-   int w, h;
-
-   blur = filter->data;
-
-   /* Use 64 bit version if we are going to overflow */
-   if (blur->radius > 508) /** too big for doubles: Bail out */
-      return EINA_FALSE;
-   else if (blur->radius > 28)
-     {
-        filter_v = gaussian_filter_vd;
-        filter_h = gaussian_filter_hd;
-     } 
-   else if (blur->radius > 12)
-     {
-        filter_v = gaussian_filter_v64;
-        filter_h = gaussian_filter_h64;
-     }
-   
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-   in = src->image.data;
-   
-   if (!in) return EINA_FALSE;
-   
-   nw = w + (2 * blur->radius);
-   nh = h + (2 * blur->radius);
-   
-   out = dst->image.data;
-   if (!out) return EINA_FALSE;
-   tmp = malloc(nw * h * sizeof(uint32_t));
-   
-   for (i = 0; i < h; i++)
-      filter_h(blur->radius,in + (i * w), w, tmp + (i * nw));
-   
-   for (i = 0; i < (int)nw; i++)
-      filter_v(blur->radius,tmp + i, h, nw, out + i);
-
-   free(tmp);
-   return EINA_TRUE;
-}
-
-/* Blur only horizontally */
-static int
-gaussian_filter_h(int rad, uint32_t *in, int w, uint32_t *out)
-{
-   const uint32_t *points;
-   int npoints = 0;
-   uint32_t weight = 0;
-   int i = 0, k = 0;
-   uint32_t r, g, b, a;
-   
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_get(rad * 2, &npoints, &weight);
-   for (i = -rad; i < (w + rad); i++)
-     {
-        r = g = b = a = 0;
-        for (k = -rad; k <= rad; k++)
-          {
-             if ((k + i) < 0) continue;
-             if ((k + i) >= w) continue;
-             all(+=, a, r, g, b, points[k + rad], in + k + i);
-          }
-        *(out) = ARGB_JOIN(wavg(a, weight),
-                           wavg(r, weight),
-                           wavg(g, weight),
-                           wavg(b, weight));
-        out++;
-     }
-   return 0;
-}
-
-/* Blur only horizontally */
-static int
-gaussian_filter_hd(int rad, uint32_t *in, int w, uint32_t *out)
-{
-   const double *points;
-   int npoints = 0;
-   double weight = 0.0;
-   int i = 0, k = 0;
-   double r, g, b, a;
-
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_getd(rad * 2, &npoints, &weight);
-   for (i = -rad; i < (w + rad); i++)
-     {
-        r = g = b = a = 0;
-        for (k = -rad; k <= rad; k++)
-          {
-             if ((k + i) < 0) continue;
-             if ((k + i) >= w) continue;
-             all(+=, a, r, g, b, points[k + rad], in + k + i);
-          }
-        *(out) = ARGB_JOIN(wavgd(a, weight),
-                           wavgd(r, weight),
-                           wavgd(g, weight),
-                           wavgd(b, weight));
-        out++;
-   }
-   return 0;
-}
-
-
-/* Blur only horizontally */
-static int
-gaussian_filter_h64(int rad, uint32_t *in, int w, uint32_t *out)
-{
-   const uint64_t *points;
-   int npoints = 0;
-   uint64_t weight = 0;
-   int i = 0, k = 0;
-   uint64_t r, g, b, a;
-
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_get64(rad * 2, &npoints, &weight);
-   for (i = -rad ; i < w + rad; i ++){
-      r = g = b = a = 0;
-      for (k = -rad ; k <= rad ; k ++){
-         if ((k + i) < 0) continue;
-         if ((k + i) >= w) continue;
-         all(+=, a, r, g, b, points[k + rad], in + k + i);
-      }
-      *(out) = ARGB_JOIN(wavg(a, weight),
-                         wavg(r, weight),
-                         wavg(g, weight),
-                         wavg(b, weight));
-      out++;
-   }
-   return 0;
-}
-
-static int
-gaussian_filter_v(int rad, uint32_t *in, int h, int skip, uint32_t *out)
-{
-   const uint32_t *points;
-   int npoints = 0;
-   uint32_t weight = 0;
-   int i = 0, k = 0;
-   uint32_t r, g, b, a;
-
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_get(rad * 2, &npoints, &weight);
-   weight = 0;
-   for (i = 0; i < npoints; i++) weight += points[i];
-
-   for (i = -rad; i < (h + rad); i++)
-     {
-        r = g = b = a = 0;
-        for (k = -rad; k <= rad; k++)
-          {
-             if ((k + i) < 0) continue;
-             if ((k + i) >= h) continue;
-             all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
-          }
-        *(out) = ARGB_JOIN(wavg(a, weight),
-                           wavg(r, weight),
-                           wavg(g, weight),
-                           wavg(b, weight));
-        out += skip;
-     }
-   return 0;
-}
-
-static int
-gaussian_filter_v64(int rad, uint32_t *in, int h, int skip, uint32_t *out)
-{
-   const uint64_t *points;
-   int npoints = 0;
-   uint64_t weight;
-   int i = 0, k = 0;
-   uint64_t r, g, b, a;
-
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_get64(rad * 2, &npoints, &weight);
-   weight = 0;
-   for (i = 0; i < npoints; i++) weight += points[i];
-
-   for (i = -rad; i < (h + rad); i++)
-     {
-        r = g = b = a = 0;
-        for (k = -rad ; k <= rad ; k++)
-          {
-             if ((k + i) < 0) continue;
-             if ((k + i) >= h) continue;
-             all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
-          }
-        *(out) = ARGB_JOIN(wavg(a, weight),
-                           wavg(r, weight),
-                           wavg(g, weight),
-                           wavg(b, weight));
-        out += skip;
-     }
-   return 0;
-}
-
-static int
-gaussian_filter_vd(int rad, uint32_t *in, int h, int skip, uint32_t *out)
-{
-   const double *points;
-   int npoints = 0;
-   double weight = 0.0;
-   int i = 0, k = 0;
-   double r, g, b, a;
-
-   /* Get twice the radius: even rows have 1 element */
-   points = gaussian_row_getd(rad * 2, &npoints, &weight);
-   weight = 0;
-   for (i = 0 ; i < npoints ; i ++) weight += points[i];
-
-   for (i = -rad ; i < h + rad; i ++)
-     {
-        r = g = b = a = 0;
-        for (k = -rad ; k <= rad ; k ++)
-          {
-             if ((k + i) < 0) continue;
-             if ((k + i) >= h) continue;
-             all(+=, a, r, g, b, points[k + rad], in + (skip * (k + i)));
-          }
-        *(out) = ARGB_JOIN(wavgd(a, weight),
-                           wavgd(r, weight),
-                           wavgd(g, weight),
-                           wavgd(b, weight));
-        out += skip;
-     }
-   return 0;
-}
-
-static const uint32_t *
-gaussian_row_get(int row, int *npoints, uint32_t *weight)
-{
-   static uint32_t *points = NULL;
-   static int last = -1;
-   static uint32_t lastweight = -1;
-   int c, k;
-
-   if (row < 0) return NULL;
-
-   if (npoints) *npoints = row + 1;
-
-   if (last == row)
-     {
-        if (weight) *weight = lastweight;
-        return points;
-     }
-   if (points) free(points);
-
-   points = malloc((row + 1) * sizeof(uint32_t));
-   if (!points)
-     {
-        last = -1;
-        return NULL;
-     }
-   last = row;
-
-   c = 1;
-   for (k = 0; k <= row; k++)
-     {
-        points[k] = c;
-        c = c * (row - k) / (k + 1);
-     }
-
-   for (k = 0, lastweight = 0; k <= row; k++) lastweight += points[k];
-   if (weight) *weight = lastweight;
-   return points;
-}
-
-static const uint64_t *
-gaussian_row_get64(int row, int *npoints, uint64_t *weight)
-{
-   static uint64_t *points = NULL;
-   static int last = -1;
-   static uint64_t lastweight = -1;
-   uint64_t c;
-   int k;
-
-   if (row < 0) return NULL;
-
-   if (npoints) *npoints = row + 1;
-   if (last == row)
-     {
-        if (weight) *weight = lastweight;
-        return points;
-     }
-   if (points) free(points);
-   
-   points = malloc((row + 1) * sizeof(uint64_t));
-   if (!points)
-     {
-        last = -1;
-        return NULL;
-     }
-   last = row;
-   
-   c = 1;
-   for (k = 0; k <= row; k++)
-     {
-        points[k] = c;
-        c = c * (row - k) / (k + 1);
-     }
-   
-   for (k = 0, lastweight = 0; k <= row; k ++) lastweight += points[k];
-   if (weight) *weight = lastweight;
-   
-   return points;
-}
-
-static const double *
-gaussian_row_getd(int row, int *npoints, double *weight)
-{
-   static double *points = NULL;
-   static int last = -1;
-   static double lastweight = -1;
-   double c;
-   int k;
-   
-   if (row < 0) return NULL;
-   
-   if (last == row)
-     {
-        if (weight) *weight = lastweight;
-        return points;
-     }
-   
-   if (points) free(points);
-   points = malloc((row + 1) * sizeof(double));
-   if (!points)
-     {
-        last = -1;
-        return NULL;
-     }
-   last = row;
-   
-   if (npoints) *npoints = row + 1;
-   
-   c = 1;
-   for (k = 0; k <= row; k++)
-     {
-        points[k] = c;
-        c = c * (row - k) / (k + 1);
-     }
-   
-   for (k = 0, lastweight = 0; k <= row; k++) lastweight += points[k];
-   if (weight) *weight = lastweight;
-   
-   return points;
-}
-
-#if BUILD_NEON0
-static Eina_Bool
-negation_filter_neon(Evas_Filter_Info *info, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t tmp;
-
-   if (src->cache_entry.flags.alpha)
-     {
-        // FIXME: not implemented
-     }
-   else
-     {
-        /* No alpha */
-#define AP  "NEG_FILTER_NA"
-        asm volatile (
-
-           ".fpu neon                                       \n\t"
-           "vdup.u32    q14,   $0xff000000                   \n\t"
-           "vmvn.u32    q15,   q1                            \n\t"
-
-           // fixme: do check for small loops
-           AP"loopinit:                                     \n\t"
-               "sub     %[tmp], %[e], #31                   \n\t"
-
-           AP"loop:                                         \n\t"
-               "vldm    %[s]!,    {d0,d1,d2,d3}             \n\t"
-               "vand    q2,   q0, q15                       \n\t"
-               "vand    q3,   q1, q15                       \n\t"
-               "vand    q4,   q0, q14                       \n\t"
-               "vand    q5,   q1, q14                       \n\t"
-                        // fixme: can i do this with xor
-               "cmp     %[tmp], %[s]                        \n\t"
-
-               "vmvn    q6,   q2                            \n\t"
-               "vmvn    q7,   q3                            \n\t"
-
-               "vorr     q0,   q6,q4                         \n\t"
-               "vorr     q1,   q7,q5                         \n\t"
-
-               "vstm    %[d]!,  {d0,d1,d2,d3}               \n\t"
-
-               "bhi     "AP"loop                            \n\t"
-
-            : // no out
-            : // input
-               [e] "r" (src->image.data+ src->cache_entry.w*src->cache_entry.h),
-               [s] "r" (src->image.data),
-               [tmp] "r" (tmp),
-               [d] "r" (dst->image.data)
-            : "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q14", "q15",
-                  "memory"
-         );
-#undef AP
-     }
-   return EINA_TRUE;
-}
-#endif
-
-static Eina_Bool
-negation_filter(Evas_Filter_Info *info, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t *in, *out;
-   int i,j;
-   int w,h;
-   uint32_t a;
-   uint8_t r,g,b;
-
-#if BUILD_NEON0
-   if (evas_common_cpu_has_feature(CPU_FEATURE_NEON) &&
-      (!src->cache_entry.flags.alpha))
-      return negation_filter_neon(info, src, dst);
-#endif
-   
-   in = src->image.data;
-   out = dst->image.data;
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-
-   if (src->cache_entry.flags.alpha)
-     {
-        for (i = 0; i < h; i++)
-          {
-             for (j = 0; j < w; j++)
-               {
-                  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++;
-               }
-          }
-     }
-   else
-     {
-        for (i = 0; i < h; i++)
-          {
-             for (j = 0; j < w; j++)
-               {
-                  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++;
-               }
-          }
-     }
-   return EINA_TRUE;
-   info = NULL;
-}
-
-static Eina_Bool
-sepia_filter(Evas_Filter_Info *info EINA_UNUSED, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t *in, *out;
-   int i, j;
-   int w, h;
-   uint32_t a, r, g, b, nr, ng, nb;
-
-   in = src->image.data;
-   out = dst->image.data;
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-
-   for (i = 0; i < h; i++)
-     {
-        for (j = 0; j < w; j++)
-          {
-             a = A_VAL(in);
-             r = R_VAL(in);
-             g = G_VAL(in);
-             b = B_VAL(in);
-             nr = ((uint32_t)((r * 0.393) + (g * 0.769) + (b * 0.189)));
-             ng = ((uint32_t)((r * 0.349) + (g * 0.686) + (b * 0.168)));
-             nb = ((uint32_t)((r * 0.272) + (g * 0.534) + (b * 0.131)));
-             if (nr > 255) nr = 255;
-             if (ng > 255) ng = 255;
-             if (nb > 255) nb = 255;
-             *out = ARGB_JOIN(a, nr, ng, nb);
-             out++;
-             in++;
-          }
-     }
-
-   return EINA_TRUE;
-
-}
-
-static Eina_Bool
-greyscale_filter(Evas_Filter_Info *info EINA_UNUSED, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t *in, *out;
-   int i, j;
-   int w, h;
-   uint32_t cur;
-   uint32_t a, r, g, b;
-
-   in = src->image.data;
-   out = dst->image.data;
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-
-   if (src->cache_entry.flags.alpha)
-     {
-        for (i = 0; i < h; i++)
-          {
-             for (j = 0; j < w; j++)
-               {
-                  a = A_VAL(in);
-                  r = R_VAL(in);
-                  g = G_VAL(in);
-                  b = B_VAL(in);
-                  cur = (r * 0.3) + (g * 0.59) + (b * 0.11);
-                  *out = ARGB_JOIN(a, r, g, b);
-                  out++;
-                  in++;
-               }
-          }
-     }
-   else
-     {
-        for (i = 0 ; i < h ; i ++)
-          {
-             for (j = 0; j < w ; j ++)
-               {
-                  r = R_VAL(in);
-                  g = G_VAL(in);
-                  b = B_VAL(in);
-                  cur = r * 0.3 + g * 0.59 + b * 0.11;
-                  *out = ARGB_JOIN(255, r, g, b);
-                  out++;
-                  in++;
-               }
-          }
-     }
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-brightness_filter(Evas_Filter_Info *info, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t *in, *out;
-   int i, j;
-   int w, h;
-   int a,r,g,b;
-   int delta;
-   int adjdelta;
-   Evas_Filter_Info_Brightness *bness;
-
-   in = src->image.data;
-   out = dst->image.data;
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-   bness = info->data;
-
-   delta = bness->adjust * 255;
-   if (delta > 255)
-      delta = 255;
-   else if (delta < -255)
-      delta = -255;
-
-   /* Note we could optimise the -255, 0 and 255 cases, but why would people
-    * be doing that */
-   if (delta >= 0)
-     {
-       for (i = 0; i < h; i++)
-         {
-            for (j = 0; j < w; j++)
-              {
-                 a = A_VAL(in);
-                 r = R_VAL(in);
-                 g = G_VAL(in);
-                 b = B_VAL(in);
-                 adjdelta = (a * delta) >> 8;
-                 r = MIN(r + adjdelta, a);
-                 g = MIN(g + adjdelta, a);
-                 b = MIN(b + adjdelta, a);
-                 *out = ARGB_JOIN(a, r ,g, b);
-                 out++;
-                 in++;
-              }
-         }
-     }
-   else
-     {
-        /* Delta negative */
-        for (i = 0; i < h; i++)
-          {
-             for (j = 0; j < w; j++)
-               {
-                  a = A_VAL(in);
-                  r = R_VAL(in);
-                  g = G_VAL(in);
-                  b = B_VAL(in);
-                  adjdelta = (a * delta) >> 8;
-                  r = MAX(r + adjdelta, 0);
-                  g = MAX(g + adjdelta, 0);
-                  b = MAX(b + adjdelta, 0);
-                  *out = ARGB_JOIN(a, r ,g, b);
-                  out++;
-                  in++;
-               }
-          }
-     }
-
-   return EINA_TRUE;
-
-}
-
-static Eina_Bool
-contrast_filter(Evas_Filter_Info *info EINA_UNUSED, RGBA_Image *src, RGBA_Image *dst)
-{
-   uint32_t *in, *out;
-   int i, j;
-   int w, h;
-
-   in = src->image.data;
-   out = dst->image.data;
-   w = src->cache_entry.w;
-   h = src->cache_entry.h;
-
-   for (i = 0; i < h; i++)
-     {
-        for (j = 0; j < w; j++)
-          {
-             // FIXME: not even implemented
-             out++;
-             in++;
-          }
-     }
-
-   return EINA_TRUE;
-
-}
-#endif
-
-/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
index dd26568..0831946 100644 (file)
@@ -2873,158 +2873,6 @@ _proxy_subrender(Evas *eo_e, Evas_Object *eo_source)
  */
 }
 
-#if 0 // filtering disabled
-/*
- *
- * Note that this is similar to proxy_subrender_recurse.  It should be
- * possible to merge I guess
- */
-static void
-image_filter_draw_under_recurse(Evas *eo_e, Evas_Object *eo_obj, Evas_Object *stop,
-                                void *output, void *ctx, void *surface,
-                                int x, int y)
-{
-   Evas_Object *eo_obj2;
-   
-   if (obj->clip.clipees) return;
-   /* FIXME: Doing bounding box test */
-   if (!evas_object_is_in_output_rect(eo_obj, stop->cur.geometry.x,
-                                      stop->cur.geometry.y,
-                                      stop->cur.geometry.w,
-                                      stop->cur.geometry.h))
-      return;
-   
-   if (!evas_object_is_visible(eo_obj)) return;
-   obj->pre_render_done = 1;
-   ctx = e->engine.func->context_new(output);
-   
-   if (obj->is_smart)
-     {
-        EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), obj2)
-          {
-             if (obj2 == stop) return;
-             image_filter_draw_under_recurse(e, obj2, stop, output, surface, 
-                                             ctx, x, y);
-          }
-     }
-   else
-      obj->func->render(eo_obj, output, ctx, surface, x ,y);
-   e->engine.func->context_free(output, ctx);
-}
-
-/*
- * Draw all visible objects intersecting an object which are _beneath_ it.
- */
-static void
-image_filter_draw_under(Evas *eo_e, Evas_Object *stop, void *output, void *ctx, void *surface, int dx, int dy)
-{
-   Evas_Layer *lay;
-   int x, y;
-   
-   x = stop->cur.geometry.x - dx;
-   y = stop->cur.geometry.y - dy;
-   
-   EINA_INLIST_FOREACH(e->layers, lay)
-     {
-        Evas_Object *eo_obj;
-        EINA_INLIST_FOREACH(lay->objects, obj)
-          {
-             if (obj->delete_me) continue;
-             if (obj == stop) return;
-             /* FIXME: Do bounding box check */
-             image_filter_draw_under_recurse(e, obj, stop, output, ctx, 
-                                             surface, -x, -y);
-          }
-     }
-   e->engine.func->image_dirty_region(output, surface, 0, 0, 300, 300);
-   e->engine.func->output_flush(output);
-}
-
-/*
- * Update the filtered object.
- *
- * Creates a new context, and renders stuff (filtered) onto that.
- */
-Filtered_Image *
-image_filter_update(Evas *eo_e, Evas_Object *eo_obj, void *src, int imagew, int imageh, int *outw, int *outh)
-{
-   int w, h;
-   void *ctx;
-   Evas_Filter_Info *info;
-   void *surface;
-   Eina_Bool alpha;
-   
-   info = obj->filter;
-   
-   if (info->mode == EVAS_FILTER_MODE_BELOW)
-     {
-        w = obj->cur.geometry.w;
-        h = obj->cur.geometry.h;
-        evas_filter_get_size(info, w, h, &imagew, &imageh, EINA_TRUE);
-        alpha = EINA_FALSE;
-     }
-   else
-     {
-        evas_filter_get_size(info, imagew, imageh, &w, &h, EINA_FALSE);
-        alpha = e->engine.func->image_alpha_get(e->engine.data.output, src);
-     }
-   
-   /* Certain filters may make alpha images anyway */
-   if (alpha == EINA_FALSE) alpha = evas_filter_always_alpha(info);
-   
-   surface = e->engine.func->image_map_surface_new(e->engine.data.output, w, h,
-                                                   alpha);
-   
-   if (info->mode == EVAS_FILTER_MODE_BELOW)
-     {
-        void *subsurface;
-        int disw, dish;
-        int dx, dy;
-        disw = obj->cur.geometry.w;
-        dish = obj->cur.geometry.h;
-        dx = (imagew - w) >> 1;
-        dy = (imageh - h) >> 1;
-        subsurface = e->engine.func->image_map_surface_new
-           (e->engine.data.output, imagew, imageh, 1);
-        ctx = e->engine.func->context_new(e->engine.data.output);
-        e->engine.func->context_color_set(e->engine.data.output, ctx, 0, 255, 0, 255);
-        e->engine.func->context_render_op_set(e->engine.data.output, ctx, EVAS_RENDER_COPY);
-        e->engine.func->rectangle_draw(e->engine.data.output, ctx,
-                                       subsurface, 0, 0, imagew, imageh);
-        
-        image_filter_draw_under(e, obj, e->engine.data.output, ctx,
-                                subsurface, dx, dy);
-        
-        e->engine.func->context_free(e->engine.data.output, ctx);
-        
-        ctx = e->engine.func->context_new(e->engine.data.output);
-        
-        e->engine.func->image_draw_filtered(e->engine.data.output,
-                                            ctx, surface, subsurface, info);
-        
-        e->engine.func->context_free(e->engine.data.output, ctx);
-        
-        e->engine.func->image_map_surface_free(e->engine.data.output,
-                                               subsurface);
-     }
-   else
-     {
-        ctx = e->engine.func->context_new(e->engine.data.output);
-        e->engine.func->image_draw_filtered(e->engine.data.output,
-                                            ctx, surface, src, info);
-        e->engine.func->context_free(e->engine.data.output, ctx);
-     }
-   
-   e->engine.func->image_dirty_region(e->engine.data.output, surface, 
-                                      0, 0, w, h);
-   if (outw) *outw = w;
-   if (outh) *outh = h;
-   return e->engine.func->image_filtered_save(src, surface,
-                                              obj->filter->key,
-                                              obj->filter->len);
-}
-#endif
-
 static void
 evas_object_image_unload(Evas_Object *eo_obj, Eina_Bool dirty)
 {
@@ -3365,57 +3213,6 @@ evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, v
         o->proxyrendering = EINA_FALSE;
      }
 
-#if 0 // filtering disabled
-   /* Now check/update filter */
-   if (obj->filter && obj->filter->filter)
-     {
-        Filtered_Image *fi = NULL;
-        //printf("%p has filter: %s\n", obj,obj->filter->dirty?"dirty":"clean");
-        if (obj->filter->dirty)
-          {
-             if (obj->filter->mode != EVAS_FILTER_MODE_BELOW)
-               {
-                  uint32_t len;
-                  uint8_t *key;
-                  
-                  if (obj->filter->key) free(obj->filter->key);
-                  obj->filter->key = NULL;
-                  obj->filter->len = 0;
-                  key = evas_filter_key_get(obj->filter, &len);
-                  if (key)
-                    {
-                       obj->filter->key = key;
-                       obj->filter->len = len;
-                       fi = obj->layer->evas->engine.func->image_filtered_get
-                          (o->engine_data, key, len);
-                       if (obj->filter->cached && fi != obj->filter->cached)
-                         {
-                            obj->layer->evas->engine.func->image_filtered_free
-                               (o->engine_data, obj->filter->cached);
-                            obj->filter->cached = NULL;
-                         }
-                    }
-               }
-             else if (obj->filter->cached)
-               {
-                  obj->layer->evas->engine.func->image_filtered_free
-                     (o->engine_data, obj->filter->cached);
-               }
-             if (!fi)
-                fi = image_filter_update(obj->layer->evas, obj, pixels, 
-                                         imagew, imageh, &imagew, &imageh);
-             pixels = fi->image;
-             obj->filter->dirty = 0;
-             obj->filter->cached = fi;
-          }
-        else
-          {
-             fi = obj->filter->cached;
-             pixels = fi->image;
-          }
-     }
-#endif
-
    if (pixels)
      {
         Evas_Coord idw, idh, idx, idy;
@@ -3944,12 +3741,6 @@ evas_object_image_render_pre(Evas_Object *eo_obj, Evas_Object_Protected_Data *ob
               }
          }
      }
-#if 0 // filtering disabled
-   if (obj->filter && obj->filter->dirty)
-     {
-        evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
-     }
-#endif
    /* it obviously didn't change - add a NO obscure - this "unupdates"  this */
    /* area so if there were updates for it they get wiped. don't do it if we */
    /* aren't fully opaque and we are visible */
index 6a9bce8..8cde87a 100644 (file)
@@ -88,9 +88,6 @@ evas_object_free(Evas_Object *eo_obj, int clean_layer)
 
    int was_smart_child = 0;
 
-#if 0 // filtering disabled
-   evas_filter_free(eo_obj);
-#endif
    if (!strcmp(obj->type, "image")) evas_object_image_video_surface_set(eo_obj, NULL);
    evas_object_map_set(eo_obj, NULL);
    if (obj->prev.map) evas_map_free(obj->prev.map);
index 05cc9aa..5262d5f 100644 (file)
@@ -203,20 +203,7 @@ _evas_common_rgba_image_delete(Image_Entry *ie)
            ie->file, ie->key);
    // if (ie->data1) evas_cserve2_image_free(ie);
 #endif
-/*
- * FIXME: This doesn't seem to be needed... But I'm not sure why.
- *      -- nash
-     {
-        Filtered_Image *fi;
 
-        EINA_LIST_FREE(im->filtered, fi)
-          {
-             free(fi->key);
-             _evas_common_rgba_image_delete((Image_Entry *)(fi->image));
-             free(fi);
-          }
-     }
-*/
    if (ie->frames)
      {
         Eina_List *l;
index cdc6a0e..349598b 100644 (file)
@@ -487,10 +487,6 @@ typedef enum _Font_Rend_Flags
 
 /*****************************************************************************/
 
-#if 0 // filtering disabled
-typedef struct _Filtered_Image Filtered_Image;
-#endif
-
 struct _RGBA_Image_Loadopts
 {
    int                  scale_down_by; // if > 1 then use this
@@ -806,10 +802,6 @@ struct _RGBA_Image
       Eina_Bool          dirty: 1;
    } mask;
 
-#if 0 // filtering disabled
-   Eina_List            *filtered;
-#endif
-
    struct {
       LK(lock);
       Eina_List *list;
@@ -859,16 +851,6 @@ struct _RGBA_Map
    RGBA_Map_Point pts[1];
 };
 
-#if 0 // filtering disabled
-struct _Filtered_Image
-{
-   void       *key;
-   size_t      keylen;
-   RGBA_Image *image;
-   int ref;
-};
-#endif
-
 // for fonts...
 /////
 typedef struct _Fash_Item_Index_Map Fash_Item_Index_Map;
index 357eae0..de5903f 100644 (file)
@@ -487,35 +487,6 @@ struct _Evas_Map
    Evas_Map_Point        points[]; // actual points
 };
 
-#if 0 // filtering disabled
-/* nash: Split into two bits */
-typedef struct Evas_Filter_Info
-{
-   Evas_Filter filter;
-   Evas_Filter_Mode mode;
-
-   Eina_Bool dirty : 1;
-
-   int datalen;
-   void *data;
-   void (*data_free)(void *);
-
-   uint8_t *key;
-   uint32_t len;
-   Filtered_Image *cached;
-} Evas_Filter_Info;
-
-typedef Eina_Bool (*Evas_Software_Filter_Fn)(Evas_Filter_Info *, RGBA_Image *, RGBA_Image *);
-
-int evas_filter_get_size(Evas_Filter_Info *info, int inw, int inh,
-                     int *outw, int *outh, Eina_Bool inv);
-Eina_Bool evas_filter_always_alpha(Evas_Filter_Info *info);
-uint8_t *evas_filter_key_get(const Evas_Filter_Info *info, uint32_t *lenp);
-// expose for use in engines
-EAPI Evas_Software_Filter_Fn evas_filter_software_get(Evas_Filter_Info *info);
-void evas_filter_free(Evas_Object *o);
-#endif
-
 struct _Evas_Object_Protected_Data
 {
    EINA_INLIST;
@@ -601,9 +572,6 @@ struct _Evas_Object_Protected_Data
 
    // Pointer to the Evas_Object itself
    Evas_Object                *object;
-#if 0 // filtering disabled
-   Evas_Filter_Info           *filter;
-#endif
 
    Evas_Size_Hints            *size_hints;
 
@@ -903,13 +871,6 @@ struct _Evas_Func
    Eina_Bool (*font_text_props_info_create) (void *data, Evas_Font_Instance *fi, const Eina_Unicode *text, Evas_Text_Props *intl_props, const Evas_BiDi_Paragraph_Props *par_props, size_t pos, size_t len, Evas_Text_Props_Mode mode);
    int  (*font_right_inset_get)            (void *data, Evas_Font_Set *font, const Evas_Text_Props *text_props);
 
-#if 0 // filtering disabled
-   void (*image_draw_filtered)             (void *data, void *context, void *surface, void *image, Evas_Filter_Info *filter);
-   Filtered_Image *(*image_filtered_get)   (void *image, uint8_t *key, size_t len);
-   Filtered_Image *(*image_filtered_save)  (void *image, void *filtered, uint8_t *key, size_t len);
-   void (*image_filtered_free)             (void *image, Filtered_Image *);
-#endif
-
    /* EFL-GL Glue Layer */
    void *(*gl_surface_create)            (void *data, void *config, int w, int h);
    int  (*gl_surface_destroy)            (void *data, void *surface);
index 73c245f..df3f6ac 100644 (file)
@@ -564,40 +564,6 @@ eng_image_colorspace_set(void *data, void *image, int cspace)
 // drivers?
 // 
 //#define GLX_TEX_PIXMAP_RECREATE 1
-#if 0
-static void
-eng_image_draw_filtered(void *data, void *context, void *surface,
-                        void *image, Evas_Filter_Info *filter)
-{
-   Render_Engine *re = data;
-
-   if (!image) return;
-   eng_window_use(re->win);
-   evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
-   re->win->gl_context->dc = context;
-
-   evas_gl_common_filter_draw(re->win->gl_context, image, filter);
-}
-
-static Filtered_Image *
-eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_get(im, key, keylen);
-}
-
-static Filtered_Image *
-eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_save(im, fim, key, keylen);
-}
-
-static void
-eng_image_filtered_free(void *im, Filtered_Image *fim)
-{
-   evas_gl_common_image_filtered_free(im, fim);
-}
-
-#endif
 
 //
 //
@@ -1419,10 +1385,6 @@ module_open(Evas_Module *em)
    ORD(image_mask_create);
    //   ORD(image_native_set);
    //   ORD(image_native_get);
-   //   ORD(image_draw_filtered);
-   //   ORD(image_filtered_get);
-   //   ORD(image_filtered_save);
-   //   ORD(image_filtered_free);
    
    ORD(font_draw);
    
index 67507b3..2110a52 100644 (file)
@@ -483,25 +483,6 @@ extern Evas_GL_Program_Source shader_tex_frag_src;
 extern Evas_GL_Program_Source shader_tex_vert_src;
 extern Evas_GL_Program_Source shader_tex_nomul_frag_src;
 extern Evas_GL_Program_Source shader_tex_nomul_vert_src;
-
-extern Evas_GL_Program_Source shader_filter_invert_frag_src;
-extern Evas_GL_Program_Source shader_filter_invert_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_invert_bgra_frag_src;
-extern Evas_GL_Program_Source shader_filter_invert_bgra_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_sepia_frag_src;
-extern Evas_GL_Program_Source shader_filter_sepia_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_sepia_bgra_frag_src;
-extern Evas_GL_Program_Source shader_filter_sepia_bgra_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_greyscale_frag_src;
-extern Evas_GL_Program_Source shader_filter_greyscale_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_greyscale_bgra_frag_src;
-extern Evas_GL_Program_Source shader_filter_greyscale_bgra_nomul_frag_src;
-/* blur (annoyingly) needs (aka is faster with) a vertex shader */
-extern Evas_GL_Program_Source shader_filter_blur_vert_src;
-extern Evas_GL_Program_Source shader_filter_blur_frag_src;
-extern Evas_GL_Program_Source shader_filter_blur_nomul_frag_src;
-extern Evas_GL_Program_Source shader_filter_blur_bgra_frag_src;
-extern Evas_GL_Program_Source shader_filter_blur_bgra_nomul_frag_src;
 #endif
 
 void glerr(int err, const char *file, const char *func, int line, const char *op);
@@ -625,13 +606,6 @@ void              evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, Evas_GL_P
 
 void              evas_gl_common_line_draw(Evas_Engine_GL_Context *gc, int x1, int y1, int x2, int y2);
 
-#if 0 // filtering disabled
-void              evas_gl_common_filter_draw(Evas_Engine_GL_Context *context, Evas_GL_Image *im, Evas_Filter_Info *filter);
-Filtered_Image   *evas_gl_common_image_filtered_get(Evas_GL_Image *im, uint8_t *key, size_t keylen);
-Filtered_Image   *evas_gl_common_image_filtered_save(Evas_GL_Image *im, Evas_GL_Image *fimage, uint8_t *key, size_t keylen);
-void              evas_gl_common_image_filtered_free(Evas_GL_Image *im, Filtered_Image *);
-#endif
-
 extern void       (*glsym_glGenFramebuffers)      (GLsizei a, GLuint *b);
 extern void       (*glsym_glBindFramebuffer)      (GLenum a, GLuint b);
 extern void       (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e);
diff --git a/src/modules/evas/engines/gl_common/evas_gl_filter.c b/src/modules/evas/engines/gl_common/evas_gl_filter.c
deleted file mode 100644 (file)
index a9d18d8..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#include "evas_gl_private.h"
-
-#if 0 // filtering disabled
-void
-evas_gl_common_filter_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im, Evas_Filter_Info *filter)
-{
-   RGBA_Draw_Context *dc;
-   GLuint prog;
-   int r,g,b,a;
-   int nomul, bgra;
-
-   dc = gc->dc;
-
-   if (dc->mul.use)
-     {
-       a = (dc->mul.col >> 24) & 0xff;
-       r = (dc->mul.col >> 16) & 0xff;
-       g = (dc->mul.col >> 8 ) & 0xff;
-       b = (dc->mul.col      ) & 0xff;
-     }
-   else
-     {
-       r = g = b = a = 255;
-     }
-
-   nomul = (a == 255 && r == 255 && g == 255 && b == 255) ? 1 : 0;
-   bgra = (gc->shared->info.bgra) ? 1 : 0;
-
-   /* FIXME: This should so be a table */
-#if 0
-   if (filter->filter == EVAS_FILTER_BLUR)
-     {
-         if (bgra)
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_blur_bgra_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_blur_bgra.prog;
-          }
-        else
-          {
-             if (a == 255 && r == 255 && g == 255 && b == 255)
-                prog = gc->shared->shader.filter_blur_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_blur.prog;
-          }
-     }
-   else
-#endif
-     if (filter->filter == EVAS_FILTER_INVERT)
-     {
-        if (bgra)
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_invert_bgra_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_invert_bgra.prog;
-          }
-        else
-          {
-             if (a == 255 && r == 255 && g == 255 && b == 255)
-                prog = gc->shared->shader.filter_invert_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_invert.prog;
-          }
-     }
-   else if (filter->filter == EVAS_FILTER_SEPIA)
-     {
-        if (bgra)
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_sepia_bgra_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_sepia_bgra.prog;
-          }
-        else
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_sepia_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_sepia.prog;
-          }
-
-     }
-   else /*if (filter->filter == EVAS_FILTER_GREYSCALE)*/
-     {
-        printf("BGRA: %s  Nomul: %s\n",bgra?"true":"false",nomul?"nomul":"mul");
-        if (bgra)
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_greyscale_bgra_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_greyscale_bgra.prog;
-          }
-        else
-          {
-             if (nomul)
-                prog = gc->shared->shader.filter_greyscale_nomul.prog;
-             else
-                prog = gc->shared->shader.filter_greyscale.prog;
-          }
-
-     }
-
-   printf("Prog: %d %d %d\n",prog,im->w,im->h);
-   gc->filter_prog = prog;
-   evas_gl_common_image_update(gc, im);
-   evas_gl_common_context_image_push(gc, im->tex, 0, 0, im->w, im->h,
-                                      0, 0, im->w, im->h,
-                                      r,g,b,a,
-                                      1, im->tex_only);
-   gc->filter_prog = 0;
-}
-
-
-Filtered_Image *
-evas_gl_common_image_filtered_get(Evas_GL_Image *im, uint8_t *key, size_t len)
-{
-   Filtered_Image *fi;
-   Eina_List *l;
-
-   for (l = im->filtered ; l ; l = l->next)
-     {
-         fi = l->data;
-         if (fi->keylen != len) continue;
-         if (memcmp(key, fi->key, len) != 0) continue;
-         fi->ref ++;
-         return fi;
-     }
-
-   return NULL;
-}
-
-Filtered_Image *
-evas_gl_common_image_filtered_save(Evas_GL_Image *im, Evas_GL_Image *fimage,
-                                   uint8_t *key, size_t keylen)
-{
-   Filtered_Image *fi;
-   Eina_List *l;
-
-   for (l = im->filtered ; l ; l = l->next)
-     {
-        fi = l->data;
-        if (fi->keylen != keylen) continue;
-        if (memcmp(key, fi->key, keylen) != 0) continue;
-
-        fi->image = (void *)fimage;
-        fi->ref ++;
-        return fi;
-     }
-
-   fi = calloc(1,sizeof(Filtered_Image));
-   if (!fi) return NULL;
-
-   fi->keylen = keylen;
-   fi->key = malloc(keylen);
-   memcpy(fi->key, key, keylen);
-   fi->image = (void *)fimage;
-   fi->ref = 1;
-
-   im->filtered = eina_list_prepend(im->filtered, fi);
-
-   return fi;
-}
-
-void
-evas_gl_common_image_filtered_free(Evas_GL_Image *image, Filtered_Image *fi)
-{
-   fi->ref --;
-   if (fi->ref) return;
-
-   free(fi->key);
-   evas_gl_common_image_free((void *)fi->image);
-   fi->image = NULL;
-
-   image->filtered = eina_list_remove(image->filtered, fi);
-}
-#endif
-
-
-/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
index 404cb13..8289ed9 100644 (file)
@@ -467,10 +467,6 @@ evas_gl_common_image_cache_flush(Evas_Engine_GL_Context *gc)
 void
 evas_gl_common_image_free(Evas_GL_Image *im)
 {
-#if 0 // filtering disabled
-   Filtered_Image *fi;
-#endif
-
    evas_gl_common_context_flush(im->gc);
    im->references--;
    if (im->references > 0) return;
@@ -489,15 +485,6 @@ evas_gl_common_image_free(Evas_GL_Image *im)
    if (im->im) evas_cache_image_drop(&im->im->cache_entry);
    if (im->tex) evas_gl_common_texture_free(im->tex);
 
-#if 0 // filtering disabled
-   EINA_LIST_FREE(im->filtered, fi)
-     {
-       free(fi->key);
-       evas_gl_common_image_free((Evas_GL_Image *)fi->image);
-       free(fi);
-     }
-#endif
-
    free(im);
 }
 
index 477e470..fe6207c 100644 (file)
@@ -286,167 +286,6 @@ Evas_GL_Program_Source shader_img_bgra_nomul_vert_src =
    NULL, 0
 };
 
-/////////////////////////////////////////////
-const char filter_invert_frag_glsl[] =
-#include "shader/filter_invert.h"
-  ;
-Evas_GL_Program_Source shader_filter_invert_frag_src =
-{
-   filter_invert_frag_glsl,
-   NULL, 0
-};
-
-const char filter_invert_nomul_frag_glsl[] =
-#include "shader/filter_invert_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_invert_nomul_frag_src =
-{
-   filter_invert_nomul_frag_glsl,
-   NULL, 0
-};
-
-const char filter_invert_bgra_frag_glsl[] =
-#include "shader/filter_invert_bgra.h"
-  ;
-Evas_GL_Program_Source shader_filter_invert_bgra_frag_src =
-{
-   filter_invert_bgra_frag_glsl,
-   NULL, 0
-};
-
-const char filter_invert_bgra_nomul_frag_glsl[] =
-#include "shader/filter_invert_bgra_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_invert_bgra_nomul_frag_src =
-{
-   filter_invert_bgra_nomul_frag_glsl,
-   NULL, 0
-};
-
-/////////////////////////////////////////////
-const char filter_greyscale_frag_glsl[] =
-#include "shader/filter_greyscale.h"
-  ;
-Evas_GL_Program_Source shader_filter_greyscale_frag_src =
-{
-   filter_greyscale_frag_glsl,
-   NULL, 0
-};
-
-const char filter_greyscale_nomul_frag_glsl[] =
-#include "shader/filter_greyscale_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_greyscale_nomul_frag_src =
-{
-   filter_greyscale_nomul_frag_glsl,
-   NULL, 0
-};
-
-const char filter_greyscale_bgra_frag_glsl[] =
-#include "shader/filter_greyscale_bgra.h"
-  ;
-Evas_GL_Program_Source shader_filter_greyscale_bgra_frag_src =
-{
-   filter_greyscale_bgra_frag_glsl,
-   NULL, 0
-};
-const char filter_greyscale_bgra_nomul_frag_glsl[] =
-#include "shader/filter_greyscale_bgra_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_greyscale_bgra_nomul_frag_src =
-{
-   filter_greyscale_bgra_nomul_frag_glsl,
-   NULL, 0
-};
-
-/////////////////////////////////////////////
-const char filter_sepia_frag_glsl[] =
-#include "shader/filter_sepia.h"
-  ;
-Evas_GL_Program_Source shader_filter_sepia_frag_src =
-{
-   filter_sepia_frag_glsl,
-   NULL, 0
-};
-
-const char filter_sepia_nomul_frag_glsl[] =
-#include "shader/filter_sepia_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_sepia_nomul_frag_src =
-{
-   filter_sepia_nomul_frag_glsl,
-   NULL, 0
-};
-
-const char filter_sepia_bgra_frag_glsl[] =
-#include "shader/filter_sepia_bgra.h"
-  ;
-Evas_GL_Program_Source shader_filter_sepia_bgra_frag_src =
-{
-   filter_sepia_bgra_frag_glsl,
-   NULL, 0
-};
-const char filter_sepia_bgra_nomul_frag_glsl[] =
-#include "shader/filter_sepia_bgra_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_sepia_bgra_nomul_frag_src =
-{
-   filter_sepia_bgra_nomul_frag_glsl,
-   NULL, 0
-};
-
-/////////////////////////////////////////////
-#if 0
-       Blur is a work in progress currently.
-       Mostly because GPUs are so hopeless.
-const char filter_blur_vert_glsl[] =
-#include "shader/filter_blur_vert.h"
-  ;
-
-Evas_GL_Program_Source shader_filter_blur_vert_src =
-{
-   filter_blur_vert_glsl,
-   NULL, 0
-};
-
-const char filter_blur_frag_glsl[] =
-#include "shader/filter_blur.h"
-  ;
-Evas_GL_Program_Source shader_filter_blur_frag_src =
-{
-   filter_blur_frag_glsl,
-   NULL, 0
-};
-
-const char filter_blur_nomul_frag_glsl[] =
-#include "shader/filter_blur_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_blur_nomul_frag_src =
-{
-   filter_blur_nomul_frag_glsl,
-   NULL, 0
-};
-
-const char filter_blur_bgra_frag_glsl[] =
-#include "shader/filter_blur_bgra.h"
-  ;
-Evas_GL_Program_Source shader_filter_blur_bgra_frag_src =
-{
-   filter_blur_bgra_frag_glsl,
-   NULL, 0
-};
-const char filter_blur_bgra_nomul_frag_glsl[] =
-#include "shader/filter_blur_bgra_nomul.h"
-  ;
-Evas_GL_Program_Source shader_filter_blur_bgra_nomul_frag_src =
-{
-   filter_blur_bgra_nomul_frag_glsl,
-   NULL, 0
-};
-
-#endif
-
-
 
 /////////////////////////////////////////////
 static void
@@ -802,23 +641,6 @@ static const struct {
   SHADER_SOURCE_LINE(NV12_NOMUL, nv12_nomul),
   SHADER_SOURCE_LINE(TEX, tex),
   SHADER_SOURCE_LINE(TEX_NOMUL, tex_nomul),
-   /* Most of the filters use the image fragment shader */
-  SHADER_SOURCE_FILTER_LINE(FILTER_INVERT, filter_invert),
-  SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_NOMUL, filter_invert_nomul),
-  SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_BGRA, filter_invert_bgra),
-  SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_BGRA_NOMUL, filter_invert_bgra_nomul),
-  SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE, filter_greyscale),
-  SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_NOMUL, filter_greyscale_nomul),
-  SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_BGRA, filter_greyscale_bgra),
-  SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_BGRA_NOMUL, filter_greyscale_bgra_nomul),
-  SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA, filter_sepia),
-  SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_NOMUL, filter_sepia_nomul),
-  SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_BGRA, filter_sepia_bgra),
-  SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_BGRA_NOMUL, filter_sepia_bgra_nomul)/* , */
-  /* SHADER_SOURCE_LINE(FILTER_BLUR, filter_blur), */
-  /* SHADER_SOURCE_LINE(FILTER_BLUR_NOMUL, filter_blur_nomul), */
-  /* SHADER_SOURCE_LINE(FILTER_BLUR_BGRA, filter_blur_bgra), */
-  /* SHADER_SOURCE_LINE(FILTER_BLUR_BGRA_NOMUL, filter_blur_bgra_nomul) */
 };
 
 static int
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur.h b/src/modules/evas/engines/gl_common/shader/filter_blur.h
deleted file mode 100644 (file)
index 7c3a369..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"uniform sampler1D gaussian;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"varying weight;\n"
-"uniform radius;\n"
-"void main()\n"
-"{\n"
-"      int i;\n"
-"      vec4 fc = vec4(0,0,0,0);\n"
-"      \n"
-"      for (i = 0 ; i < radius ; i ++){\n"
-"              fc += texture2D(tex, tex_c.xy).rgba *\n"
-"                      texture1D(gaussian,i/radius).aaaa;\n"
-"      }\n"
-"      gl_FragColor = fc / 4 * col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur.shd b/src/modules/evas/engines/gl_common/shader/filter_blur.shd
deleted file mode 100644 (file)
index 5f13a47..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-uniform sampler1D gaussian;
-varying vec4 col;
-varying vec2 tex_c;
-varying weight;
-uniform radius;
-void main()
-{
-       int i;
-       vec4 fc = vec4(0,0,0,0);
-       
-       for (i = 0 ; i < radius ; i ++){
-               fc += texture2D(tex, tex_c.xy).rgba *
-                       texture1D(gaussian,i/radius).aaaa;
-       }
-       gl_FragColor = fc / 4 * col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_bgra.h b/src/modules/evas/engines/gl_common/shader/filter_blur_bgra.h
deleted file mode 100644 (file)
index 0862e4f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"uniform sampler1D gaussian;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"varying weight;\n"
-"uniform radius;\n"
-"void main()\n"
-"{\n"
-"      int i;\n"
-"      vec4 fc = vec4(0,0,0,0);\n"
-"      \n"
-"      for (i = 0 ; i < radius ; i ++){\n"
-"              fc += texture2D(tex, tex_c.xy).rgba *\n"
-"                      texture1D(gaussian,i/radius).aaaa;\n"
-"      }\n"
-"      gl_FragColor = fc / 4;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_bgra.shd b/src/modules/evas/engines/gl_common/shader/filter_blur_bgra.shd
deleted file mode 100644 (file)
index a9134df..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-uniform sampler1D gaussian;
-varying vec4 col;
-varying vec2 tex_c;
-varying weight;
-uniform radius;
-void main()
-{
-       int i;
-       vec4 fc = vec4(0,0,0,0);
-       
-       for (i = 0 ; i < radius ; i ++){
-               fc += texture2D(tex, tex_c.xy).rgba *
-                       texture1D(gaussian,i/radius).aaaa;
-       }
-       gl_FragColor = fc / 4;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.h
deleted file mode 100644 (file)
index 0862e4f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"uniform sampler1D gaussian;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"varying weight;\n"
-"uniform radius;\n"
-"void main()\n"
-"{\n"
-"      int i;\n"
-"      vec4 fc = vec4(0,0,0,0);\n"
-"      \n"
-"      for (i = 0 ; i < radius ; i ++){\n"
-"              fc += texture2D(tex, tex_c.xy).rgba *\n"
-"                      texture1D(gaussian,i/radius).aaaa;\n"
-"      }\n"
-"      gl_FragColor = fc / 4;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_blur_bgra_nomul.shd
deleted file mode 100644 (file)
index a9134df..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-uniform sampler1D gaussian;
-varying vec4 col;
-varying vec2 tex_c;
-varying weight;
-uniform radius;
-void main()
-{
-       int i;
-       vec4 fc = vec4(0,0,0,0);
-       
-       for (i = 0 ; i < radius ; i ++){
-               fc += texture2D(tex, tex_c.xy).rgba *
-                       texture1D(gaussian,i/radius).aaaa;
-       }
-       gl_FragColor = fc / 4;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_blur_nomul.h
deleted file mode 100644 (file)
index 0862e4f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"uniform sampler1D gaussian;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"varying weight;\n"
-"uniform radius;\n"
-"void main()\n"
-"{\n"
-"      int i;\n"
-"      vec4 fc = vec4(0,0,0,0);\n"
-"      \n"
-"      for (i = 0 ; i < radius ; i ++){\n"
-"              fc += texture2D(tex, tex_c.xy).rgba *\n"
-"                      texture1D(gaussian,i/radius).aaaa;\n"
-"      }\n"
-"      gl_FragColor = fc / 4;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_blur_nomul.shd
deleted file mode 100644 (file)
index a9134df..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-uniform sampler1D gaussian;
-varying vec4 col;
-varying vec2 tex_c;
-varying weight;
-uniform radius;
-void main()
-{
-       int i;
-       vec4 fc = vec4(0,0,0,0);
-       
-       for (i = 0 ; i < radius ; i ++){
-               fc += texture2D(tex, tex_c.xy).rgba *
-                       texture1D(gaussian,i/radius).aaaa;
-       }
-       gl_FragColor = fc / 4;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_vert.h b/src/modules/evas/engines/gl_common/shader/filter_blur_vert.h
deleted file mode 100644 (file)
index d38f412..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-"#ifdef GL_ES\n"
-"precision highp float;\n"
-"#endif\n"
-"attribute vec4 vertex;\n"
-"attribute vec4 color;\n"
-"attribute vec2 tex_coord;\n"
-"attribute float r;\n"
-"uniform mat4 mvp;\n"
-"uniform sampler1D tex_blur;\n"
-"varying float weight;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"\n"
-"void main(){\n"
-"      /* FIXME: This index should be tweaked so for \n"
-"              radius 1, I want 3 points at 1/4, 2/4, 3/4 */\n"
-"      /*\n"
-"      for (float i = 0 ; i <= radius * 2 ; i ++){\n"
-"              float pos = i;\n"
-"              float r = float(radius);\n"
-"              weight += sampler1D(tex_blur, 1.0 / (r * 2.0 * pos));\n"
-"      }*/\n"
-"      for (float i = 0.0 ; i < r * 2.0 ; i += 1.0){\n"
-"              weight += sampler1D(tex_blur, 1.0 / (r * 2.0 * i));\n"
-"      }\n"
-"      gl_Position = mvp * vertex;\n"
-"      col = color;\n"
-"      tex_c = tex_coord;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_blur_vert.shd b/src/modules/evas/engines/gl_common/shader/filter_blur_vert.shd
deleted file mode 100644 (file)
index 56ddc40..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifdef GL_ES
-precision highp float;
-#endif
-attribute vec4 vertex;
-attribute vec4 color;
-attribute vec2 tex_coord;
-attribute float r;
-uniform mat4 mvp;
-uniform sampler1D tex_blur;
-varying float weight;
-varying vec4 col;
-varying vec2 tex_c;
-
-void main(){
-       /* FIXME: This index should be tweaked so for 
-               radius 1, I want 3 points at 1/4, 2/4, 3/4 */
-       /*
-       for (float i = 0 ; i <= radius * 2 ; i ++){
-               float pos = i;
-               float r = float(radius);
-               weight += sampler1D(tex_blur, 1.0 / (r * 2.0 * pos));
-       }*/
-       for (float i = 0.0 ; i < r * 2.0 ; i += 1.0){
-               weight += sampler1D(tex_blur, 1.0 / (r * 2.0 * i));
-       }
-       gl_Position = mvp * vertex;
-       col = color;
-       tex_c = tex_coord;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale.h b/src/modules/evas/engines/gl_common/shader/filter_greyscale.h
deleted file mode 100644 (file)
index 850538a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11));\n"
-"   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale.shd b/src/modules/evas/engines/gl_common/shader/filter_greyscale.shd
deleted file mode 100644 (file)
index 78ecf08..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11));
-   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.h b/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.h
deleted file mode 100644 (file)
index 3caef35..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n"
-"   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.shd b/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra.shd
deleted file mode 100644 (file)
index 5dca381..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));
-   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.h
deleted file mode 100644 (file)
index 4cb36a8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n"
-"   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a);\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd
deleted file mode 100644 (file)
index a077eea..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec2 tex_c;
-void main()
-{
-   float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));
-   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a);
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.h
deleted file mode 100644 (file)
index f501a02..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11));\n"
-"   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r);\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_greyscale_nomul.shd
deleted file mode 100644 (file)
index b5b8ec6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec2 tex_c;
-void main()
-{
-   float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11));
-   gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r);
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert.h b/src/modules/evas/engines/gl_common/shader/filter_invert.h
deleted file mode 100644 (file)
index 46373e0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert.shd b/src/modules/evas/engines/gl_common/shader/filter_invert.shd
deleted file mode 100644 (file)
index a75b058..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_bgra.h b/src/modules/evas/engines/gl_common/shader/filter_invert_bgra.h
deleted file mode 100644 (file)
index 3e3011d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_bgra.shd b/src/modules/evas/engines/gl_common/shader/filter_invert_bgra.shd
deleted file mode 100644 (file)
index 8d7df2d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.h
deleted file mode 100644 (file)
index b9f1e25..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb;\n"
-"   gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0);\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_invert_bgra_nomul.shd
deleted file mode 100644 (file)
index 682acb2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb;
-   gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0);
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_invert_nomul.h
deleted file mode 100644 (file)
index 46373e0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"   gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_invert_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_invert_nomul.shd
deleted file mode 100644 (file)
index a75b058..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-   gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia.h b/src/modules/evas/engines/gl_common/shader/filter_sepia.h
deleted file mode 100644 (file)
index 50fbf12..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"      vec3 inp = texture2D(tex,tex_c.xy).abg;\n"
-"      vec4 sep;\n"
-"      sep.r = dot(inp, vec3(.393, .769, .189));\n"
-"      sep.g = dot(inp, vec3(.349, .686, .168));\n"
-"      sep.b = dot(inp, vec3(.272, .534, .131));\n"
-"      sep.a = texture2D(tex,tex_c.xy).r;\n"
-"      gl_FragColor = sep * col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia.shd b/src/modules/evas/engines/gl_common/shader/filter_sepia.shd
deleted file mode 100644 (file)
index 027ecfb..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-       vec3 inp = texture2D(tex,tex_c.xy).abg;
-       vec4 sep;
-       sep.r = dot(inp, vec3(.393, .769, .189));
-       sep.g = dot(inp, vec3(.349, .686, .168));
-       sep.b = dot(inp, vec3(.272, .534, .131));
-       sep.a = texture2D(tex,tex_c.xy).r;
-       gl_FragColor = sep * col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.h b/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.h
deleted file mode 100644 (file)
index 41e4283..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"      vec3 inp = texture2D(tex,tex_c.xy).rgb;\n"
-"      vec4 sep;\n"
-"      sep.r = dot(inp, vec3(.393, .769, .189));\n"
-"      sep.g = dot(inp, vec3(.349, .686, .168));\n"
-"      sep.b = dot(inp, vec3(.272, .534, .131));\n"
-"      sep.a = texture2D(tex,tex_c.xy).a;\n"
-"      gl_FragColor = sep * col;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.shd b/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra.shd
deleted file mode 100644 (file)
index caed378..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-       vec3 inp = texture2D(tex,tex_c.xy).rgb;
-       vec4 sep;
-       sep.r = dot(inp, vec3(.393, .769, .189));
-       sep.g = dot(inp, vec3(.349, .686, .168));
-       sep.b = dot(inp, vec3(.272, .534, .131));
-       sep.a = texture2D(tex,tex_c.xy).a;
-       gl_FragColor = sep * col;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.h
deleted file mode 100644 (file)
index 0c4fe1b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"      vec3 inp = texture2D(tex,tex_c.xy).rgb;\n"
-"      gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n"
-"      gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n"
-"      gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n"
-"      gl_FragColor.a = texture2D(tex,tex_c.xy).a;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_sepia_bgra_nomul.shd
deleted file mode 100644 (file)
index 9c6c1d4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-       vec3 inp = texture2D(tex,tex_c.xy).rgb;
-       gl_FragColor.r = dot(inp, vec3(.393, .769, .189));
-       gl_FragColor.g = dot(inp, vec3(.349, .686, .168));
-       gl_FragColor.b = dot(inp, vec3(.272, .534, .131));
-       gl_FragColor.a = texture2D(tex,tex_c.xy).a;
-}
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.h b/src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.h
deleted file mode 100644 (file)
index 23af9ec..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-"#ifdef GL_ES\n"
-"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-"precision highp float;\n"
-"#else\n"
-"precision mediump float;\n"
-"#endif\n"
-"#endif\n"
-"uniform sampler2D tex;\n"
-"varying vec4 col;\n"
-"varying vec2 tex_c;\n"
-"void main()\n"
-"{\n"
-"      vec3 inp = texture2D(tex,tex_c.xy).abg;\n"
-"      gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n"
-"      gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n"
-"      gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n"
-"      gl_FragColor.a = texture2D(tex,tex_c.xy).r;\n"
-"}\n"
diff --git a/src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.shd b/src/modules/evas/engines/gl_common/shader/filter_sepia_nomul.shd
deleted file mode 100644 (file)
index f9871bd..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifdef GL_ES
-#ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-#else
-precision mediump float;
-#endif
-#endif
-uniform sampler2D tex;
-varying vec4 col;
-varying vec2 tex_c;
-void main()
-{
-       vec3 inp = texture2D(tex,tex_c.xy).abg;
-       gl_FragColor.r = dot(inp, vec3(.393, .769, .189));
-       gl_FragColor.g = dot(inp, vec3(.349, .686, .168));
-       gl_FragColor.b = dot(inp, vec3(.272, .534, .131));
-       gl_FragColor.a = texture2D(tex,tex_c.xy).r;
-}
index f49fcb8..a2ed13f 100644 (file)
@@ -1010,12 +1010,6 @@ module_open(Evas_Module *em)
    ORD(image_colorspace_get);
    ORD(image_native_set);
    ORD(image_native_get);
-#if 0 // filtering disabled
-//   ORD(image_draw_filtered);
-//   ORD(image_filtered_get);
-//   ORD(image_filtered_save);
-//   ORD(image_filtered_free);
-#endif
    ORD(font_draw);
    
    ORD(image_scale_hint_set);
index fbf897f..653a750 100644 (file)
@@ -2097,40 +2097,6 @@ eng_image_native_get(void *data EINA_UNUSED, void *image)
    return &(n->ns);
 }
 
-#if 0 // filtering disabled
-static void
-eng_image_draw_filtered(void *data, void *context, void *surface,
-                        void *image, Evas_Filter_Info *filter)
-{
-   Render_Engine *re = data;
-
-   if (!image) return;
-   eng_window_use(re->win);
-   evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
-   re->win->gl_context->dc = context;
-
-   evas_gl_common_filter_draw(re->win->gl_context, image, filter);
-}
-
-static Filtered_Image *
-eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_get(im, key, keylen);
-}
-
-static Filtered_Image *
-eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_save(im, fim, key, keylen);
-}
-
-static void
-eng_image_filtered_free(void *im, Filtered_Image *fim)
-{
-   evas_gl_common_image_filtered_free(im, fim);
-}
-#endif
-
 
 //
 //
@@ -2978,12 +2944,6 @@ module_open(Evas_Module *em)
    ORD(image_mask_create);
    ORD(image_native_set);
    ORD(image_native_get);
-#if 0 // filtering disabled
-   ORD(image_draw_filtered);
-   ORD(image_filtered_get);
-   ORD(image_filtered_save);
-   ORD(image_filtered_free);
-#endif
 
    ORD(font_draw);
 
index cf213d7..c91f8b7 100644 (file)
@@ -1366,88 +1366,6 @@ eng_canvas_alpha_get(void *data EINA_UNUSED, void *info EINA_UNUSED)
 }
 
 
-/* Filter API */
-#if 0 // filtering disabled
-static void
-eng_image_draw_filtered(void *data EINA_UNUSED, void *context EINA_UNUSED,
-                        void *surface, void *image, Evas_Filter_Info *filter)
-{
-   Evas_Software_Filter_Fn fn;
-   RGBA_Image *im = image;
-
-   fn = evas_filter_software_get(filter);
-   if (!fn) return;
-   if (im->cache_entry.cache) evas_cache_image_load_data(&im->cache_entry);
-   fn(filter, image, surface);
-   return;
-}
-
-static Filtered_Image *
-eng_image_filtered_get(void *image, uint8_t *key, size_t keylen)
-{
-   RGBA_Image *im = image;
-   Filtered_Image *fi;
-   Eina_List *l;
-
-   for (l = im->filtered ; l ; l = l->next)
-     {
-         fi = l->data;
-         if (fi->keylen != keylen) continue;
-         if (memcmp(key, fi->key, keylen) != 0) continue;
-         fi->ref ++;
-         return fi;
-     }
-
-   return NULL;
-}
-
-static Filtered_Image *
-eng_image_filtered_save(void *image, void *fimage, uint8_t *key, size_t keylen)
-{
-   RGBA_Image *im = image;
-   Filtered_Image *fi;
-   Eina_List *l;
-
-   for (l = im->filtered ; l ; l = l->next)
-     {
-        fi = l->data;
-        if (fi->keylen != keylen) continue;
-        if (memcmp(key, fi->key, keylen) == 0) continue;
-        evas_cache_image_drop((void *)fi->image);
-        fi->image = fimage;
-        return fi;
-     }
-
-   fi = calloc(1,sizeof(Filtered_Image));
-   if (!fi) return NULL;
-
-   fi->keylen = keylen;
-   fi->key = malloc(keylen);
-   memcpy(fi->key, key, keylen);
-   fi->image = fimage;
-   fi->ref = 1;
-
-   im->filtered = eina_list_prepend(im->filtered, fi);
-
-   return fi;
-}
-
-static void
-eng_image_filtered_free(void *image, Filtered_Image *fi)
-{
-   RGBA_Image *im = image;
-
-   fi->ref --;
-   if (fi->ref) return;
-
-   free(fi->key);
-   evas_cache_image_drop(&fi->image->cache_entry);
-   fi->image = NULL;
-
-   im->filtered = eina_list_remove(im->filtered, fi);
-}
-#endif
-
 static int
 eng_image_load_error_get(void *data EINA_UNUSED, void *image)
 {
@@ -1885,12 +1803,6 @@ static Evas_Func func =
      eng_font_pen_coords_get,
      eng_font_text_props_info_create,
      eng_font_right_inset_get,
-#if 0 // filtering disabled
-     eng_image_draw_filtered,
-     eng_image_filtered_get,
-     eng_image_filtered_save,
-     eng_image_filtered_free,
-#endif   
      NULL, // need software mesa for gl rendering <- gl_surface_create
      NULL, // need software mesa for gl rendering <- gl_surface_destroy
      NULL, // need software mesa for gl rendering <- gl_context_create
index c5dba72..a951661 100644 (file)
@@ -1563,40 +1563,6 @@ eng_image_native_get(void *data EINA_UNUSED, void *image)
    return &(n->ns);
 }
 
-#if 0 // filtering disabled
-static void
-eng_image_draw_filtered(void *data, void *context, void *surface,
-                        void *image, Evas_Filter_Info *filter)
-{
-   Render_Engine *re = data;
-
-   if (!image) return;
-   eng_window_use(re->win);
-   evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
-   re->win->gl_context->dc = context;
-
-   evas_gl_common_filter_draw(re->win->gl_context, image, filter);
-}
-
-static Filtered_Image *
-eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_get(im, key, keylen);
-}
-
-static Filtered_Image *
-eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
-{
-   return evas_gl_common_image_filtered_save(im, fim, key, keylen);
-}
-
-static void
-eng_image_filtered_free(void *im, Filtered_Image *fim)
-{
-   evas_gl_common_image_filtered_free(im, fim);
-}
-#endif
-
 static void *
 eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
 {
@@ -3776,12 +3742,6 @@ module_open(Evas_Module *em)
    ORD(image_mask_create);
    ORD(image_native_set);
    ORD(image_native_get);
-#if 0 // filtering disabled
-   ORD(image_draw_filtered);
-   ORD(image_filtered_get);
-   ORD(image_filtered_save);
-   ORD(image_filtered_free);
-#endif
 
    ORD(font_draw);