1. 22 Mar, 2018 6 commits
  2. 21 Mar, 2018 2 commits
    • Jehan's avatar
      operations: update "gegl:value-propagate" description. · f888b731
      Jehan authored
      The most 2 famous filters based on this operation are "erode" and
      "dilate" which are meant to work for the white and black colors.
      "gegl:value-propagate" is the generic version, which works for any
      color, also for alpha channel and such.
      The update is mostly to add the terms "erode" and "dilate" into the
      description somewhere so that this operation will be raised in the
      action search in GIMP along with the basic erode/dilate filters. This
      way, people will understand they can go further with it.
      f888b731
    • Mario Blättermann's avatar
      Update German translation · 4ad620f6
      Mario Blättermann authored
      4ad620f6
  3. 19 Mar, 2018 3 commits
  4. 18 Mar, 2018 1 commit
  5. 17 Mar, 2018 2 commits
    • Jehan's avatar
      gegl, operations: s/GEGL_DISTANCE_FOO/GEGL_DISTANCE_METRIC_FOO/ · d80704b5
      Jehan authored
      I have been pointed out that shortened names can make problems in the
      future (based on Mitch's bad experience! ;p).
      So let's make the enum names more standardized by basing them on the
      type full name.
      d80704b5
    • Jehan's avatar
      Bug 794414: new GeglDistanceMetric enum type. · f8020a25
      Jehan authored
      Makes using the distance "metric" property (used in distance-transform)
      more robust to changes, rather than having to recreate the enum in third
      party applications, like GIMP.
      As discussed, "chessboard" distance has been renamed to "Chebyshev"
      which seems more standard and less confusing since some pieces in chess
      count their distance in Chebyshev whereas other count it in Manhattan.
      f8020a25
  6. 15 Mar, 2018 1 commit
    • Ell's avatar
      buffer: fix single-pixel gegl_buffer_get() · 9102b31f
      Ell authored
      In _gegl_buffer_get_unlocked(), move the assignment of the buffer's
      format to the 'format' parameter, in case it's NULL, to the
      beginning of the function.  In particular, move it before the call
      to gegl_buffer_get_pixel(), which can segfault if called with a
      NULL format.
      9102b31f
  7. 14 Mar, 2018 5 commits
  8. 13 Mar, 2018 1 commit
    • Ell's avatar
      buffer: fix single-column case of gegl_buffer_{get,set}() · 7bab2a74
      Ell authored
      In the single-column case of gegl_buffer_get(), compare the output
      rowstride to the output format's bpp, rather than the buffer
      format's bpp, when deciding if to use the optimized path.
      
      In the single-column case of gegl_buffer_set(), only take the
      optimized path when the input rowstride equals the input format's
      bpp, fix the temp-buffer's rowstride in the call to
      _gegl_buffer_set_with_flags(), and return after it to avoid re-
      writing to the buffer.
      7bab2a74
  9. 11 Mar, 2018 2 commits
  10. 10 Mar, 2018 1 commit
  11. 09 Mar, 2018 2 commits
    • Ell's avatar
      tests: #include <string.h> in test-buffer-unaligned-access.c · 26888b8c
      Ell authored
      For memcmp().  Sigh...
      26888b8c
    • Ell's avatar
      buffer, tests: in access.c, streamline tile alignment; fix unaligned buffer_clear() · 2da0690a
      Ell authored
      In gegl_buffer_copy() and gegl_buffer_clear(), calculate tile-grid-
      aligned cow_rect directly instead of using loops, avoid splitting
      non-COWed area when cow_rect is empty, and some cleanup.
      
      Fix a bug in gegl_buffer_clear(), where clearing a region that
      doesn't cross tile boundary in either direction, erroneously
      cleared the entire area from the top/left edge of the region to
      the right/bottom edge of the containing tile, in the respective
      direction.
      
      Add a test for the above bug, for all of gegl_buffer_{clear,
      set_color,set_pattern,copy}().
      2da0690a
  12. 08 Mar, 2018 2 commits
  13. 06 Mar, 2018 2 commits
  14. 04 Mar, 2018 3 commits
    • Piotr Drąg's avatar
      Update Polish translation · 1631f9b6
      Piotr Drąg authored
      1631f9b6
    • Jordi Mas's avatar
      Update Catalan translation · 08163dd8
      Jordi Mas authored
      08163dd8
    • Ell's avatar
      buffer: use linear sampler in cubic sampler box filtering · 80f7b48f
      Ell authored
      In _gegl_sampler_box_get(), make the type of sampler used for
      sampling individual points configurable.  Use a NEAREST sampler for
      the LINEAR sampler (i.e., when the LINEAR sampler does box
      filtering, it uses a NEAREST sampler to sub-sample the image), and
      a LINEAR sampler for the CUBIC sampler.  The latter is about twice
      as slow, but produces better results, in particular, it is less
      prone to aliasing in high-frequency input for not-too-big scale
      factors.
      
      This agrees with the general rule that CUBIC is better but slower
      than LINEAR, though still notably faster than the foo-halo
      samplers.
      80f7b48f
  15. 03 Mar, 2018 7 commits
    • Ell's avatar
      buffer: improve accuracy of sampler box filter · 600cbc71
      Ell authored
      Previously, we sampled at uniform intervals of the bounding box of
      the transformed area, which is inaccurate, as it may contain points
      outside the transformed area.  Furthermore, the divergence from the
      ideal result depended on the transformation, so the quality of the
      result changed as the transformation changed, even when its scale
      remained constant.
      
      Instead, sample at uniform intervals along the transformed grid,
      such that all sampled points are inside the transformed area.  This
      is more accurate, and more consistent.
      
      Update affected tests.
      
      Also, Replace g_clear_pointer() with g_clear_object() in last
      commit.
      600cbc71
    • Ell's avatar
      buffer: use a nearest sampler in sampler box-filter · 6c4235b3
      Ell authored
      Use a nearest-neighbor sampler to read buffer data in
      _gegl_sampler_box_get(), instead of using gegl_buffer_get(), which
      avoids using the buffer's shared hot tile (nearest-neighbor sampler
      instances maintain their own hot tile), and hence saves us a lock.
      6c4235b3
    • Ell's avatar
      matrix: use non-doc comment for gegl_matrix2_determinant() · efbae14e
      Ell authored
      GeglMatrix2 is internal for now.
      efbae14e
    • Øyvind "pippin" Kolås's avatar
      pixel-duster: make more configurable with ifdefs · 1a25b6a3
      Øyvind "pippin" Kolås authored
      Adds support for more symmetries, unused experimental relative neighborhood
      code and more.
      1a25b6a3
    • Øyvind "pippin" Kolås's avatar
      MAINTAINERS: update · 7a159faa
      Øyvind "pippin" Kolås authored
      7a159faa
    • Ell's avatar
      buffer: fix performance regression due to last commit · a66f5098
      Ell authored
      The tests added in the last commit slightly worsened the
      performance of sampler box filtering, even in the common case where
      they aren't necessary.
      
      Modify the code to minimize the tests and gain back the lost
      performance.  While this may technically involve UB in some cases,
      it should be fine in practice.
      a66f5098
    • Ell's avatar
      buffer: more improvements to sampler box filtering · 2529e036
      Ell authored
      In _gegl_sampler_box_get(), clamp coordinates to avoid integer
      overflow, and avoid division by 0 when no samples are taken, which
      can happen when the bounds of the sampled area are clamped.  In
      particular, this can happen in perspective transforms where one of
      the transformed vertices is close to the horizon.
      2529e036