[gegl] vignette: add Horizontal and Vertical shapes



commit a133c7a8227295e2424caffc63a1b11b86b3f54e
Author: Ell <ell_se yahoo com>
Date:   Thu May 7 11:11:04 2020 +0300

    vignette: add Horizontal and Vertical shapes
    
    ... which create a one-dimensional horizontal or vertical vignette.

 opencl/vignette.cl           |  8 ++++++++
 operations/common/vignette.c | 12 +++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)
---
diff --git a/opencl/vignette.cl b/opencl/vignette.cl
index a0630c392..0c93b8525 100644
--- a/opencl/vignette.cl
+++ b/opencl/vignette.cl
@@ -45,6 +45,14 @@ __kernel void vignette_cl (__global const float4 *in,
           case 2:
           strength = fabs (u-midx) / scale + fabs(v-midy);
           break;
+
+          case 3:
+          strength = fabs(v-midy);
+          break;
+
+          case 4:
+          strength = fabs (u-midx) / scale;
+          break;
         }
       strength /= length;
       strength = (strength-radius0) / rdiff;
diff --git a/operations/common/vignette.c b/operations/common/vignette.c
index 38347d9af..6a5a5d342 100644
--- a/operations/common/vignette.c
+++ b/operations/common/vignette.c
@@ -22,9 +22,11 @@
 #ifdef GEGL_PROPERTIES
 
 enum_start (gegl_vignette_shape)
-  enum_value (GEGL_VIGNETTE_SHAPE_CIRCLE,  "circle",  N_("Circle"))
-  enum_value (GEGL_VIGNETTE_SHAPE_SQUARE,  "square",  N_("Square"))
-  enum_value (GEGL_VIGNETTE_SHAPE_DIAMOND, "diamond", N_("Diamond"))
+  enum_value (GEGL_VIGNETTE_SHAPE_CIRCLE,     "circle",     N_("Circle"))
+  enum_value (GEGL_VIGNETTE_SHAPE_SQUARE,     "square",     N_("Square"))
+  enum_value (GEGL_VIGNETTE_SHAPE_DIAMOND,    "diamond",    N_("Diamond"))
+  enum_value (GEGL_VIGNETTE_SHAPE_HORIZONTAL, "horizontal", N_("Horizontal"))
+  enum_value (GEGL_VIGNETTE_SHAPE_VERTICAL,   "verticak",   N_("Vertical"))
 enum_end (GeglVignetteShape)
 
 property_enum (shape, _("Vignette shape"),
@@ -325,6 +327,10 @@ process (GeglOperation       *operation,
               strength = MAX(ABS(u-midx) / scale, ABS(v-midy)); break;
             case GEGL_VIGNETTE_SHAPE_DIAMOND:
               strength = ABS(u-midx) / scale + ABS(v-midy);     break;
+            case GEGL_VIGNETTE_SHAPE_HORIZONTAL:
+              strength = ABS(v-midy);                           break;
+            case GEGL_VIGNETTE_SHAPE_VERTICAL:
+              strength = ABS(u-midx) / scale;                   break;
           }
           strength /= length;
           strength = (strength-radius0) / rdiff;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]