Re: [Gimp-developer] [Patch] Speed up blending code

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

 



On 27.02.2005, at 20:01, Robert L Krawitz wrote:

OK.  The code Daniel posted shouldn't be too hard to convert.  The
only thing it needs is to have the absolute row and column, to index
into the matrix.

That hasn't made it into CVS because Sven was faster...

Here's the current code:
static void
gradient_fill_single_region_rgb_dither (RenderBlendData *rbd,
                                        PixelRegion     *PR)
{
  GRand  *dither_rand = g_rand_new_with_seed (g_rand_int (rbd->seed));
  guchar *dest        = PR->data;
  gint    endx        = PR->x + PR->w;
  gint    endy        = PR->y + PR->h;
  gint    x, y;

  for (y = PR->y; y < endy; y++)
    for (x = PR->x; x < endx; x++)
      {
        GimpRGB  color;

        gradient_render_pixel (x, y, &color, rbd);

        gradient_dither (dest, dither_rand, color.r);
        gradient_dither (dest, dither_rand, color.g);
        gradient_dither (dest, dither_rand, color.b);
        gradient_dither (dest, dither_rand, color.a);
      }

  g_rand_free (dither_rand);
}

If needed you can setup your LUT globally or create it
on demand and have a pointer in RenderBlendData, depending
on how big and/or complex it is to compute and replace the
inner loop by your code.

Would it make sense to have several (selectable) dither
algorithms?

Will I be able to compile it against a current (stable) GIMP
installation?

Huh?

Servus,
      Daniel

Attachment: PGP.sig
Description: This is a digitally signed message part


[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux