1. 03 Jan, 2019 1 commit
    • Ell's avatar
      gegl:invert[-gamma]: add format-specific variants · fee15ff5
      Ell authored
      Factor out the common logic of gegl:invert and gegl:invert-gamma
      into invert-common.h, and implement format-specific variants, which
      significantly improves performance for int images.  In particular,
      this speeds up selection invertion in GIMP, which uses gegl:invert.
      fee15ff5
  2. 02 Jan, 2019 1 commit
  3. 12 Dec, 2018 1 commit
  4. 11 Dec, 2018 2 commits
  5. 10 Dec, 2018 1 commit
  6. 07 Dec, 2018 1 commit
  7. 04 Dec, 2018 3 commits
  8. 03 Dec, 2018 5 commits
  9. 30 Nov, 2018 1 commit
  10. 29 Nov, 2018 3 commits
  11. 28 Nov, 2018 1 commit
  12. 25 Nov, 2018 4 commits
  13. 24 Nov, 2018 5 commits
  14. 21 Nov, 2018 2 commits
    • Ell's avatar
      voronoi-diagram: new op in workshop · cbc1f664
      Ell authored
      Given a subset of the input referred to as the "seed", the
      gegl:voronoi-diagram op paints each non-seed pixel with the color
      of the nearest seed pixel, using one of several metrics.  The non-
      seeded region is identified either through a special color in the
      input, or using an AUX input.  The resulting output is, essentialy,
      the Voronoi diagram of the input.
      cbc1f664
    • Ell's avatar
      connected-components: new op in workshop · 6f66bf95
      Ell authored
      The gegl:connected-components op fills each connected region of
      the input, separated from the rest of the input by a parameterized
      color, with a unique color.
      6f66bf95
  15. 20 Nov, 2018 1 commit
    • Jehan's avatar
      operations: make aux buffer of watershed-transform optional. · 5feeee4c
      Jehan authored
      No auxiliary buffer will simply mean that all pixels have the same
      priority; since the algorithm queues newly labelled pixels (by
      propagation) in FIFO, it is also equivalent to having an aux buffer with
      all labelled pixels having the same higher priority (i.e. lower value)
      and all flagged pixels having the same lower priority.
      
      This doesn't change the output for any existing use of this operation,
      while making basic usage simpler (and potentially a bit faster, even
      though tests did not really show extraordinary gain).
      5feeee4c
  16. 15 Nov, 2018 2 commits
  17. 13 Nov, 2018 1 commit
    • Ell's avatar
      gegl/operation, operations: adapt to previous commit · 1fbd84cc
      Ell authored
      Rename gegl_operation_get_min_threaded_sub_size() to
      gegl_operation_get_pixels_per_thread().  This function returns the
      (very hypothetical, ATM) cost of using each additional thread for
      processing the operation, realtive to the cost of processing a
      single pixel.  As before, it simply returns 64 * 64 for now.  This
      function is meant to be used for the thread_cost parameter of
      gegl_parallel_distribute_area().
      
      Use the new function in the auto-threaded operation classes, and in
      manually-threaded operations using gegl_parallel_distribute_area().
      Additionally, use the function in manually-threaded operations
      using gegl_parallel_distribute_range(), by dividing its result by
      the relevant dimension of the processed area.
      1fbd84cc
  18. 12 Nov, 2018 3 commits
    • Ell's avatar
      operations: add module.c to CLEANFILES · 65a1bbad
      Ell authored
      Add the various generated module.c files to CLEANFILES, so that
      they get properly cleaned.  This is needed to pass distcheck since
      commit 8bf81796.
      65a1bbad
    • Jehan's avatar
      operations: make gegl:distance-transform multi-thread. · 8c79a82f
      Jehan authored
      This replaces my previous request !10. Now we can use the new
      gegl_parallel_*() API. Not using some generic API was the only thing
      which annoyed me in my previous implementation.
      
      Similarly to the gegl:warp parallelization, make this C++ so we can use
      lambda functions.
      8c79a82f
    • Ell's avatar
      warp: parallelize using gegl-parallel · 0c1d40ea
      Ell authored
      gegl:warp can't use auto-threading.  Use gegl-parallel to
      parallelize it manually.
      
      Convert the op to C++ in order to use lamdas, which simplify
      parallelizarion.  Move the op to a new common-cxx/ module, where we
      can add C++ operations, and which is only built when a suitable C++
      compiler is found.  We don't leave it in common/, since Automake
      seems to always use CXXLD to link libraries that have (potential)
      C++ sources, even if they're if-ed out after configuration.
      0c1d40ea
  19. 11 Nov, 2018 1 commit
    • Ell's avatar
      operations: make module.c dependent on Makefile · 8bf81796
      Ell authored
      Make the various module.c files dependent on the corresponding
      Makefile, so that they get regenerated whenever the corresponding
      Makefile.am changes, configure.ac changes, or GEGL is reconfigured.
      8bf81796
  20. 10 Nov, 2018 1 commit