[gimp/blend-tool-fun: 9/9] app: Remove dead code in gimpdrawable-blend



commit 16802e174bbb0a5e32c682f020aee26d40bdae9b
Author: Michael Henning <drawoc darkrefraction com>
Date:   Mon May 11 22:56:43 2015 -0400

    app: Remove dead code in gimpdrawable-blend

 app/core/gimpdrawable-blend.c |  757 -----------------------------------------
 1 files changed, 0 insertions(+), 757 deletions(-)
---
diff --git a/app/core/gimpdrawable-blend.c b/app/core/gimpdrawable-blend.c
index 320f79d..45ef958 100644
--- a/app/core/gimpdrawable-blend.c
+++ b/app/core/gimpdrawable-blend.c
@@ -45,9 +45,6 @@
 #include "gimp-intl.h"
 
 
-//#define USE_GRADIENT_CACHE 1
-
-
 typedef struct
 {
   GimpGradient     *gradient;
@@ -75,84 +72,6 @@ typedef struct
   GRand         *dither_rand;
 } PutPixelData;
 
-
-/*  local function prototypes  */
-
-static gdouble  gradient_calc_conical_sym_factor  (gdouble   dist,
-                                                   gdouble  *axis,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_conical_asym_factor (gdouble   dist,
-                                                   gdouble  *axis,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_square_factor       (gdouble   dist,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_radial_factor       (gdouble   dist,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_linear_factor       (gdouble   dist,
-                                                   gdouble  *vec,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_bilinear_factor     (gdouble   dist,
-                                                   gdouble  *vec,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y);
-static gdouble  gradient_calc_spiral_factor       (gdouble   dist,
-                                                   gdouble  *axis,
-                                                   gdouble   offset,
-                                                   gdouble   x,
-                                                   gdouble   y,
-                                                   gboolean  clockwise);
-
-static gdouble  gradient_calc_shapeburst_angular_factor   (GeglBuffer *dist_buffer,
-                                                           gdouble     x,
-                                                           gdouble     y);
-static gdouble  gradient_calc_shapeburst_spherical_factor (GeglBuffer *dist_buffer,
-                                                           gdouble     x,
-                                                           gdouble     y);
-static gdouble  gradient_calc_shapeburst_dimpled_factor   (GeglBuffer *dist_buffer,
-                                                           gdouble     x,
-                                                           gdouble     y);
-
-static void     gradient_render_pixel       (gdouble              x,
-                                             gdouble              y,
-                                             GimpRGB             *color,
-                                             gpointer             render_data);
-static void     gradient_put_pixel          (gint                 x,
-                                             gint                 y,
-                                             GimpRGB             *color,
-                                             gpointer             put_pixel_data);
-
-static void     gradient_fill_region        (GimpImage           *image,
-                                             GimpDrawable        *drawable,
-                                             GimpContext         *context,
-                                             GeglBuffer          *buffer,
-                                             const GeglRectangle *buffer_region,
-                                             GimpGradient        *gradient,
-                                             GimpGradientType     gradient_type,
-                                             gdouble              offset,
-                                             GimpRepeatMode       repeat,
-                                             gboolean             reverse,
-                                             gboolean             supersample,
-                                             gint                 max_depth,
-                                             gdouble              threshold,
-                                             gboolean             dither,
-                                             gdouble              sx,
-                                             gdouble              sy,
-                                             gdouble              ex,
-                                             gdouble              ey,
-                                             GimpProgress        *progress);
-
-
 /*  public functions  */
 
 void
@@ -252,309 +171,6 @@ gimp_drawable_blend (GimpDrawable         *drawable,
   gimp_unset_busy (image->gimp);
 }
 
-static gdouble
-gradient_calc_conical_sym_factor (gdouble  dist,
-                                  gdouble *axis,
-                                  gdouble  offset,
-                                  gdouble  x,
-                                  gdouble  y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else if ((x != 0) || (y != 0))
-    {
-      gdouble vec[2];
-      gdouble r;
-      gdouble rat;
-
-      /* Calculate offset from the start in pixels */
-
-      r = sqrt (SQR (x) + SQR (y));
-
-      vec[0] = x / r;
-      vec[1] = y / r;
-
-      rat = axis[0] * vec[0] + axis[1] * vec[1]; /* Dot product */
-
-      if (rat > 1.0)
-        rat = 1.0;
-      else if (rat < -1.0)
-        rat = -1.0;
-
-      /* This cool idea is courtesy Josh MacDonald,
-       * Ali Rahimi --- two more XCF losers.  */
-
-      rat = acos (rat) / G_PI;
-      rat = pow (rat, (offset / 10.0) + 1.0);
-
-      return CLAMP (rat, 0.0, 1.0);
-    }
-  else
-    {
-      return 0.5;
-    }
-}
-
-static gdouble
-gradient_calc_conical_asym_factor (gdouble  dist,
-                                   gdouble *axis,
-                                   gdouble  offset,
-                                   gdouble  x,
-                                   gdouble  y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else if (x != 0 || y != 0)
-    {
-      gdouble ang0, ang1;
-      gdouble ang;
-      gdouble rat;
-
-      ang0 = atan2 (axis[0], axis[1]) + G_PI;
-
-      ang1 = atan2 (x, y) + G_PI;
-
-      ang = ang1 - ang0;
-
-      if (ang < 0.0)
-        ang += (2.0 * G_PI);
-
-      rat = ang / (2.0 * G_PI);
-      rat = pow (rat, (offset / 10.0) + 1.0);
-
-      return CLAMP (rat, 0.0, 1.0);
-    }
-  else
-    {
-      return 0.5; /* We are on middle point */
-    }
-}
-
-static gdouble
-gradient_calc_square_factor (gdouble dist,
-                             gdouble offset,
-                             gdouble x,
-                             gdouble y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else
-    {
-      gdouble r;
-      gdouble rat;
-
-      /* Calculate offset from start as a value in [0, 1] */
-
-      offset = offset / 100.0;
-
-      r   = MAX (abs (x), abs (y));
-      rat = r / dist;
-
-      if (rat < offset)
-        return 0.0;
-      else if (offset == 1.0)
-        return (rat >= 1.0) ? 1.0 : 0.0;
-      else
-        return (rat - offset) / (1.0 - offset);
-    }
-}
-
-static gdouble
-gradient_calc_radial_factor (gdouble dist,
-                             gdouble offset,
-                             gdouble x,
-                             gdouble y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else
-    {
-      gdouble r;
-      gdouble rat;
-
-      /* Calculate radial offset from start as a value in [0, 1] */
-
-      offset = offset / 100.0;
-
-      r   = sqrt (SQR (x) + SQR (y));
-      rat = r / dist;
-
-      if (rat < offset)
-        return 0.0;
-      else if (offset == 1.0)
-        return (rat >= 1.0) ? 1.0 : 0.0;
-      else
-        return (rat - offset) / (1.0 - offset);
-    }
-}
-
-static gdouble
-gradient_calc_linear_factor (gdouble  dist,
-                             gdouble *vec,
-                             gdouble  offset,
-                             gdouble  x,
-                             gdouble  y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else
-    {
-      gdouble r;
-      gdouble rat;
-
-      offset = offset / 100.0;
-
-      r   = vec[0] * x + vec[1] * y;
-      rat = r / dist;
-
-      if (rat >= 0.0 && rat < offset)
-        return 0.0;
-      else if (offset == 1.0)
-        return (rat >= 1.0) ? 1.0 : 0.0;
-      else if (rat < 0.0)
-        return rat / (1.0 - offset);
-      else
-        return (rat - offset) / (1.0 - offset);
-    }
-}
-
-static gdouble
-gradient_calc_bilinear_factor (gdouble  dist,
-                               gdouble *vec,
-                               gdouble  offset,
-                               gdouble  x,
-                               gdouble  y)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else
-    {
-      gdouble r;
-      gdouble rat;
-
-      /* Calculate linear offset from the start line outward */
-
-      offset = offset / 100.0;
-
-      r   = vec[0] * x + vec[1] * y;
-      rat = r / dist;
-
-      if (fabs (rat) < offset)
-        return 0.0;
-      else if (offset == 1.0)
-        return (rat == 1.0) ? 1.0 : 0.0;
-      else
-        return (fabs (rat) - offset) / (1.0 - offset);
-    }
-}
-
-static gdouble
-gradient_calc_spiral_factor (gdouble   dist,
-                             gdouble  *axis,
-                             gdouble   offset,
-                             gdouble   x,
-                             gdouble   y,
-                             gboolean  clockwise)
-{
-  if (dist == 0.0)
-    {
-      return 0.0;
-    }
-  else if (x != 0.0 || y != 0.0)
-    {
-      gdouble ang0, ang1;
-      gdouble ang;
-      double  r;
-
-      ang0 = atan2 (axis[0], axis[1]) + G_PI;
-      ang1 = atan2 (x, y) + G_PI;
-
-      if (clockwise)
-        ang = ang1 - ang0;
-      else
-        ang = ang0 - ang1;
-
-      if (ang < 0.0)
-        ang += (2.0 * G_PI);
-
-      r = sqrt (SQR (x) + SQR (y)) / dist;
-
-      return fmod (ang / (2.0 * G_PI) + r + offset, 1.0);
-    }
-  else
-    {
-      return 0.5 ; /* We are on the middle point */
-    }
-}
-
-static gdouble
-gradient_calc_shapeburst_angular_factor (GeglBuffer *dist_buffer,
-                                         gdouble     x,
-                                         gdouble     y)
-{
-  gint   ix = CLAMP (x, 0.0, gegl_buffer_get_width  (dist_buffer) - 0.7);
-  gint   iy = CLAMP (y, 0.0, gegl_buffer_get_height (dist_buffer) - 0.7);
-  gfloat value;
-
-  gegl_buffer_get (dist_buffer, GEGL_RECTANGLE (ix, iy, 1, 1), 1.0,
-                   NULL, &value,
-                   GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE);
-
-  value = 1.0 - value;
-
-  return value;
-}
-
-
-static gdouble
-gradient_calc_shapeburst_spherical_factor (GeglBuffer *dist_buffer,
-                                           gdouble     x,
-                                           gdouble     y)
-{
-  gint   ix = CLAMP (x, 0.0, gegl_buffer_get_width  (dist_buffer) - 0.7);
-  gint   iy = CLAMP (y, 0.0, gegl_buffer_get_height (dist_buffer) - 0.7);
-  gfloat value;
-
-  gegl_buffer_get (dist_buffer, GEGL_RECTANGLE (ix, iy, 1, 1), 1.0,
-                   NULL, &value,
-                   GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE);
-
-  value = 1.0 - sin (0.5 * G_PI * value);
-
-  return value;
-}
-
-
-static gdouble
-gradient_calc_shapeburst_dimpled_factor (GeglBuffer *dist_buffer,
-                                         gdouble     x,
-                                         gdouble     y)
-{
-  gint   ix = CLAMP (x, 0.0, gegl_buffer_get_width  (dist_buffer) - 0.7);
-  gint   iy = CLAMP (y, 0.0, gegl_buffer_get_height (dist_buffer) - 0.7);
-  gfloat value;
-
-  gegl_buffer_get (dist_buffer, GEGL_RECTANGLE (ix, iy, 1, 1), 1.0,
-                   NULL, &value,
-                   GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE);
-
-  value = cos (0.5 * G_PI * value);
-
-  return value;
-}
-
 GeglBuffer *
 gimp_drawable_blend_shapeburst_distmap (GimpDrawable        *drawable,
                                         gboolean             legacy_shapeburst,
@@ -649,376 +265,3 @@ gimp_drawable_blend_shapeburst_distmap (GimpDrawable        *drawable,
 
   return dist_buffer;
 }
-
-
-static void
-gradient_render_pixel (gdouble   x,
-                       gdouble   y,
-                       GimpRGB  *color,
-                       gpointer  render_data)
-{
-  RenderBlendData *rbd = render_data;
-  gdouble          factor;
-
-  /*  we want to calculate the color at the pixel's center  */
-  x += 0.5;
-  y += 0.5;
-
-  /* Calculate blending factor */
-
-  switch (rbd->gradient_type)
-    {
-    case GIMP_GRADIENT_LINEAR:
-      factor = gradient_calc_linear_factor (rbd->dist,
-                                            rbd->vec, rbd->offset,
-                                            x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_BILINEAR:
-      factor = gradient_calc_bilinear_factor (rbd->dist,
-                                              rbd->vec, rbd->offset,
-                                              x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_RADIAL:
-      factor = gradient_calc_radial_factor (rbd->dist,
-                                            rbd->offset,
-                                            x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_SQUARE:
-      factor = gradient_calc_square_factor (rbd->dist, rbd->offset,
-                                            x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_CONICAL_SYMMETRIC:
-      factor = gradient_calc_conical_sym_factor (rbd->dist,
-                                                 rbd->vec, rbd->offset,
-                                                 x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_CONICAL_ASYMMETRIC:
-      factor = gradient_calc_conical_asym_factor (rbd->dist,
-                                                  rbd->vec, rbd->offset,
-                                                  x - rbd->sx, y - rbd->sy);
-      break;
-
-    case GIMP_GRADIENT_SHAPEBURST_ANGULAR:
-      factor = gradient_calc_shapeburst_angular_factor (rbd->dist_buffer, x, y);
-      break;
-
-    case GIMP_GRADIENT_SHAPEBURST_SPHERICAL:
-      factor = gradient_calc_shapeburst_spherical_factor (rbd->dist_buffer, x, y);
-      break;
-
-    case GIMP_GRADIENT_SHAPEBURST_DIMPLED:
-      factor = gradient_calc_shapeburst_dimpled_factor (rbd->dist_buffer, x, y);
-      break;
-
-    case GIMP_GRADIENT_SPIRAL_CLOCKWISE:
-      factor = gradient_calc_spiral_factor (rbd->dist,
-                                            rbd->vec, rbd->offset,
-                                            x - rbd->sx, y - rbd->sy, TRUE);
-      break;
-
-    case GIMP_GRADIENT_SPIRAL_ANTICLOCKWISE:
-      factor = gradient_calc_spiral_factor (rbd->dist,
-                                            rbd->vec, rbd->offset,
-                                            x - rbd->sx, y - rbd->sy, FALSE);
-      break;
-
-    default:
-      g_assert_not_reached ();
-      return;
-    }
-
-  /* Adjust for repeat */
-
-  switch (rbd->repeat)
-    {
-    case GIMP_REPEAT_TRUNCATE:
-      break;
-    case GIMP_REPEAT_NONE:
-      factor = CLAMP (factor, 0.0, 1.0);
-      break;
-
-    case GIMP_REPEAT_SAWTOOTH:
-      factor = factor - floor (factor);
-      break;
-
-    case GIMP_REPEAT_TRIANGULAR:
-      {
-        guint ifactor;
-
-        if (factor < 0.0)
-          factor = -factor;
-
-        ifactor = (guint) factor;
-        factor = factor - floor (factor);
-
-        if (ifactor & 1)
-          factor = 1.0 - factor;
-      }
-      break;
-    }
-
-  /* Blend the colors */
-
-  if (factor < 0.0 || factor > 1.0)
-    {
-      color->r = color->g = color->b = 0;
-      color->a = GIMP_OPACITY_TRANSPARENT;
-    }
-  else
-    {
-#ifdef USE_GRADIENT_CACHE
-      *color = rbd->gradient_cache[(gint) (factor * (rbd->gradient_cache_size - 1))];
-#else
-      gimp_gradient_get_color_at (rbd->gradient, rbd->context, NULL,
-                                  factor, rbd->reverse, color);
-#endif
-    }
-}
-
-static void
-gradient_put_pixel (gint      x,
-                    gint      y,
-                    GimpRGB  *color,
-                    gpointer  put_pixel_data)
-{
-  PutPixelData *ppd  = put_pixel_data;
-  gfloat       *dest = ppd->row_data + 4 * x;
-
-  if (ppd->dither_rand)
-    {
-      gint i = g_rand_int (ppd->dither_rand);
-
-      *dest++ = color->r + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-      *dest++ = color->g + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-      *dest++ = color->b + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-      *dest++ = color->a + (gdouble) (i & 0xff) / 256.0 / 256.0;
-    }
-  else
-    {
-      *dest++ = color->r;
-      *dest++ = color->g;
-      *dest++ = color->b;
-      *dest++ = color->a;
-    }
-
-  /* Paint whole row if we are on the rightmost pixel */
-
-  if (x == (ppd->width - 1))
-    gegl_buffer_set (ppd->buffer, GEGL_RECTANGLE (0, y, ppd->width, 1),
-                     0, babl_format ("R'G'B'A float"), ppd->row_data,
-                     GEGL_AUTO_ROWSTRIDE);
-}
-
-static void
-gradient_fill_region (GimpImage           *image,
-                      GimpDrawable        *drawable,
-                      GimpContext         *context,
-                      GeglBuffer          *buffer,
-                      const GeglRectangle *buffer_region,
-                      GimpGradient        *gradient,
-                      GimpGradientType     gradient_type,
-                      gdouble              offset,
-                      GimpRepeatMode       repeat,
-                      gboolean             reverse,
-                      gboolean             supersample,
-                      gint                 max_depth,
-                      gdouble              threshold,
-                      gboolean             dither,
-                      gdouble              sx,
-                      gdouble              sy,
-                      gdouble              ex,
-                      gdouble              ey,
-                      GimpProgress        *progress)
-{
-  RenderBlendData rbd = { 0, };
-
-  GIMP_TIMER_START();
-
-  rbd.gradient = gradient;
-  rbd.context  = context;
-  rbd.reverse  = reverse;
-
-#ifdef USE_GRADIENT_CACHE
-  {
-    gint i;
-
-    rbd.gradient_cache_size = ceil (sqrt (SQR (sx - ex) + SQR (sy - ey)));
-    rbd.gradient_cache      = g_new0 (GimpRGB, rbd.gradient_cache_size);
-
-    for (i = 0; i < rbd.gradient_cache_size; i++)
-      {
-        gdouble factor = (gdouble) i / (gdouble) (rbd.gradient_cache_size - 1);
-
-        gimp_gradient_get_color_at (rbd.gradient, rbd.context, NULL,
-                                    factor, rbd.reverse,
-                                    rbd.gradient_cache + i);
-      }
-  }
-#endif
-
-  if (gimp_gradient_has_fg_bg_segments (rbd.gradient))
-    rbd.gradient = gimp_gradient_flatten (rbd.gradient, context);
-  else
-    rbd.gradient = g_object_ref (rbd.gradient);
-
-  /* Calculate type-specific parameters */
-
-  switch (gradient_type)
-    {
-    case GIMP_GRADIENT_RADIAL:
-      rbd.dist = sqrt (SQR (ex - sx) + SQR (ey - sy));
-      break;
-
-    case GIMP_GRADIENT_SQUARE:
-      rbd.dist = MAX (fabs (ex - sx), fabs (ey - sy));
-      break;
-
-    case GIMP_GRADIENT_CONICAL_SYMMETRIC:
-    case GIMP_GRADIENT_CONICAL_ASYMMETRIC:
-    case GIMP_GRADIENT_SPIRAL_CLOCKWISE:
-    case GIMP_GRADIENT_SPIRAL_ANTICLOCKWISE:
-    case GIMP_GRADIENT_LINEAR:
-    case GIMP_GRADIENT_BILINEAR:
-      rbd.dist = sqrt (SQR (ex - sx) + SQR (ey - sy));
-
-      if (rbd.dist > 0.0)
-        {
-          rbd.vec[0] = (ex - sx) / rbd.dist;
-          rbd.vec[1] = (ey - sy) / rbd.dist;
-        }
-
-      break;
-
-    case GIMP_GRADIENT_SHAPEBURST_ANGULAR:
-    case GIMP_GRADIENT_SHAPEBURST_SPHERICAL:
-    case GIMP_GRADIENT_SHAPEBURST_DIMPLED:
-      rbd.dist = sqrt (SQR (ex - sx) + SQR (ey - sy));
-      rbd.dist_buffer = gimp_drawable_blend_shapeburst_distmap (drawable,
-                                                                TRUE,
-                                                                buffer_region,
-                                                                progress);
-      gimp_progress_set_text_literal (progress, _("Blending"));
-      break;
-
-    default:
-      g_assert_not_reached ();
-      break;
-    }
-
-  /* Initialize render data */
-
-  rbd.offset        = offset;
-  rbd.sx            = sx;
-  rbd.sy            = sy;
-  rbd.gradient_type = gradient_type;
-  rbd.repeat        = repeat;
-
-  /* Render the gradient! */
-
-  if (supersample)
-    {
-      PutPixelData  ppd;
-
-      ppd.buffer      = buffer;
-      ppd.row_data    = g_malloc (sizeof (float) * 4 * buffer_region->width);
-      ppd.width       = buffer_region->width;
-      ppd.dither_rand = g_rand_new ();
-
-      gimp_adaptive_supersample_area (0, 0,
-                                      (buffer_region->width  - 1),
-                                      (buffer_region->height - 1),
-                                      max_depth, threshold,
-                                      gradient_render_pixel, &rbd,
-                                      gradient_put_pixel, &ppd,
-                                      progress ?
-                                      gimp_progress_update_and_flush : NULL,
-                                      progress);
-
-      g_rand_free (ppd.dither_rand);
-      g_free (ppd.row_data);
-    }
-  else
-    {
-      GeglBufferIterator *iter;
-      GeglRectangle      *roi;
-      gint                total = buffer_region->width * buffer_region->height;
-      gint                done  = 0;
-
-      iter = gegl_buffer_iterator_new (buffer, buffer_region, 0,
-                                       babl_format ("R'G'B'A float"),
-                                       GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE);
-      roi = &iter->roi[0];
-
-      if (dither)
-        rbd.seed = g_rand_new ();
-
-      while (gegl_buffer_iterator_next (iter))
-        {
-          gfloat *dest = iter->data[0];
-          gint    endx  = roi->x + roi->width;
-          gint    endy  = roi->y + roi->height;
-          gint    x, y;
-
-          if (rbd.seed)
-            {
-              GRand *dither_rand = g_rand_new_with_seed (g_rand_int (rbd.seed));
-
-              for (y = roi->y; y < endy; y++)
-                for (x = roi->x; x < endx; x++)
-                  {
-                    GimpRGB  color = { 0.0, 0.0, 0.0, 1.0 };
-                    gint     i = g_rand_int (dither_rand);
-
-                    gradient_render_pixel (x, y, &color, &rbd);
-
-                    *dest++ = color.r + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-                    *dest++ = color.g + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-                    *dest++ = color.b + (gdouble) (i & 0xff) / 256.0 / 256.0; i >>= 8;
-                    *dest++ = color.a + (gdouble) (i & 0xff) / 256.0 / 256.0;
-                  }
-
-              g_rand_free (dither_rand);
-            }
-          else
-            {
-              for (y = roi->y; y < endy; y++)
-                for (x = roi->x; x < endx; x++)
-                  {
-                    GimpRGB  color = { 0.0, 0.0, 0.0, 1.0 };
-
-                    gradient_render_pixel (x, y, &color, &rbd);
-
-                    *dest++ = color.r;
-                    *dest++ = color.g;
-                    *dest++ = color.b;
-                    *dest++ = color.a;
-                  }
-            }
-
-          done += roi->width * roi->height;
-
-          if (progress)
-            gimp_progress_set_value (progress,
-                                     (gdouble) done / (gdouble) total);
-        }
-
-      if (dither)
-        g_rand_free (rbd.seed);
-    }
-
-#ifdef USE_GRADIENT_CACHE
-  g_free (rbd.gradient_cache);
-#endif
-
-  g_object_unref (rbd.gradient);
-
-  if (rbd.dist_buffer)
-    g_object_unref (rbd.dist_buffer);
-
-  GIMP_TIMER_END("gradient_fill_region");
-}


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