jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2ea3cb641487ab9833f121e89af0d43c8849dd34

commit 2ea3cb641487ab9833f121e89af0d43c8849dd34
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Mon Mar 10 16:46:14 2014 +0900

    Evas filters: Remove dead code
    
    Remove true Gaussian kernel code, as it is not usable over 12px and
    was disabled because it gives different visual results than the
    fake Gaussian curve using sin().
---
 src/lib/evas/filters/evas_filter_blur.c | 76 ++-------------------------------
 1 file changed, 4 insertions(+), 72 deletions(-)

diff --git a/src/lib/evas/filters/evas_filter_blur.c 
b/src/lib/evas/filters/evas_filter_blur.c
index b652617..40e46e0 100644
--- a/src/lib/evas/filters/evas_filter_blur.c
+++ b/src/lib/evas/filters/evas_filter_blur.c
@@ -39,13 +39,6 @@ _smallest_pow2_larger_than(int val)
 # define DIVIDE_BY_DIAMETER(val) ((val) / diameter)
 #endif
 
-// Switch from Pascal Triangle based gaussian to Sine.
-// Gaussian is now disabled (because gauss and sine are too different)
-#define MAX_GAUSSIAN_RADIUS 0
-#if MAX_GAUSSIAN_RADIUS > 12
-# error Impossible value
-#endif
-
 #if DEBUG_TIME
 # define DEBUG_TIME_BEGIN() \
    struct timespec ts1, ts2; \
@@ -350,51 +343,6 @@ _box_blur_vert_apply_alpha(Evas_Filter_Command *cmd)
 /* Gaussian blur */
 
 static void
-_gaussian_blur_weights_get(int *weights, int *pow2_divider, int radius)
-{
-   int even[radius + 1];
-   int odd[radius + 1];
-   int k, j;
-
-   EINA_SAFETY_ON_FALSE_RETURN(radius >= 0 && radius <= 12);
-
-   /* Uses Pascal's Triangle to compute the integer gaussian weights:
-    *
-    * 0            1             / 1     [1]
-    *            1   1                   [1 1]
-    * 1        1   2   1         / 4     [1 2]
-    *        1   3   3   1               [1 3 3]
-    * 2    1   4   6   4   1     / 16    [1 4 6]
-    *    1 ..................1
-    *
-    * Limitation: max radius is 12 when using 32 bits integers:
-    *  pow2_divider = 24, leaving exactly 8 bits for the data
-    */
-
-   if (pow2_divider)
-     *pow2_divider = radius * 2;
-
-   memset(odd, 0, sizeof(odd));
-   memset(even, 0, sizeof(even));
-   odd[0] = 1;
-   even[0] = 1;
-   for (k = 1; k <= radius; k++)
-     {
-        for (j = 1; j <= k; j++)
-          odd[j] = even[j] + even[j - 1];
-        odd[k] = 2 * even[k - 1];
-
-        for (j = 1; j <= k; j++)
-          even[j] = odd[j] + odd[j - 1];
-     }
-
-   for (k = 0; k <= radius; k++)
-     weights[k] = odd[k];
-   for (k = 0; k <= radius; k++)
-     weights[k + radius] = weights[radius - k];
-}
-
-static void
 _sin_blur_weights_get(int *weights, int *pow2_divider, int radius)
 {
    const int diameter = 2 * radius + 1;
@@ -570,11 +518,7 @@ _gaussian_blur_horiz_alpha(DATA8 *src, DATA8 *dst, int 
radius, int w, int h)
    int k, pow2_div = 0;
 
    weights = alloca((2 * radius + 1) * sizeof(int));
-
-   if (radius <= MAX_GAUSSIAN_RADIUS)
-     _gaussian_blur_weights_get(weights, &pow2_div, radius);
-   else
-     _sin_blur_weights_get(weights, &pow2_div, radius);
+   _sin_blur_weights_get(weights, &pow2_div, radius);
 
    for (k = h; k; k--)
      {
@@ -591,11 +535,7 @@ _gaussian_blur_vert_alpha(DATA8 *src, DATA8 *dst, int 
radius, int w, int h)
    int k, pow2_div = 0;
 
    weights = alloca((2 * radius + 1) * sizeof(int));
-
-   if (radius <= MAX_GAUSSIAN_RADIUS)
-     _gaussian_blur_weights_get(weights, &pow2_div, radius);
-   else
-     _sin_blur_weights_get(weights, &pow2_div, radius);
+   _sin_blur_weights_get(weights, &pow2_div, radius);
 
    for (k = w; k; k--)
      {
@@ -612,11 +552,7 @@ _gaussian_blur_horiz_rgba(DATA32 *src, DATA32 *dst, int 
radius, int w, int h)
    int k, pow2_div = 0;
 
    weights = alloca((2 * radius + 1) * sizeof(int));
-
-   if (radius <= MAX_GAUSSIAN_RADIUS)
-     _gaussian_blur_weights_get(weights, &pow2_div, radius);
-   else
-     _sin_blur_weights_get(weights, &pow2_div, radius);
+   _sin_blur_weights_get(weights, &pow2_div, radius);
 
    for (k = h; k; k--)
      {
@@ -633,11 +569,7 @@ _gaussian_blur_vert_rgba(DATA32 *src, DATA32 *dst, int 
radius, int w, int h)
    int k, pow2_div = 0;
 
    weights = alloca((2 * radius + 1) * sizeof(int));
-
-   if (radius <= MAX_GAUSSIAN_RADIUS)
-     _gaussian_blur_weights_get(weights, &pow2_div, radius);
-   else
-     _sin_blur_weights_get(weights, &pow2_div, radius);
+   _sin_blur_weights_get(weights, &pow2_div, radius);
 
    for (k = w; k; k--)
      {

-- 


Reply via email to