1. 16 Jan, 2019 1 commit
  2. 15 Jan, 2019 4 commits
    • Jehan's avatar
      app: add the concept of line art source to Bucket Fill tool. · 32fdd693
      Jehan authored
      Additionally to sample merge and active layer, now we can only use the
      layer above or below the active layer as line art source.
      The line art fill is meant to work on drawing lines. Though sample merge
      still is ok in many cases, the more you fill with colors, the more the
      line art computation becomes unecessarily complex. Also when you use a
      lot of layers with some of them already filled with colors, it makes it
      impossible to colorize some line art zones with the tool. Moreover you
      just don't want to have to hide every layers out there to colorize one
      layer (especially background layers and such as you may want to see the
      result with your background).
      Thus we want to be able to set the source as a unique layer, while it
      not being necessarily the active one (because you want lines and colors
      on different layers). In this case, I am assuming that the color and the
      line layers are next to each other (most common organization).
      (cherry picked from commit c71b4916)
    • Ryuta Fujii's avatar
      Update Japanese translation · 83fd5557
      Ryuta Fujii authored
    • Ell's avatar
      libgimp: in GimpTileBackendPlugin, change default tile multiplier to 1 · 2247fce3
      Ell authored
      In GimpTileBackendPlugin, change the default tile multiplier,
      specifying the ratio between the backend tile-size, and GIMP's
      tile-size, from 2 to 1.  Since we're reading/writing each GIMP tile
      using a separate command anyway, using a large multiplier doesn't
      provide any benefits, while it does have drawbacks.  In particular,
      it reduces the chance that a write operation will affect an entire
      tile, which allows us to avoid reading the tile data from GIMP.
      (cherry picked from commit a5e2945b)
    • Ell's avatar
      libgimp: in GimpTileBackendPlugin, don't read tile data upon TILE_SET · 535fd3a0
      Ell authored
      Add an internal _gimp_tile_ref_noinit() function, which increases
      the ref-count of a tile *without* initializing its data (in
      particular, without reading its data from GIMP, or zeroing it.)
      Use this function, instead of gimp_tile_ref(), when storing a tile
      in GimpTileBackendPlugin, to avoid unnecessarily reading the tile
      data from GIMP.
      (cherry picked from commit 5ffdb9aa)
  3. 14 Jan, 2019 2 commits
  4. 13 Jan, 2019 11 commits
  5. 12 Jan, 2019 17 commits
    • Jehan's avatar
      Issue #2786: a few string issues. · 78392316
      Jehan authored
      Several en_GB to en_US.
      Also "Show a preview of the transform_grided image". "grided" should be
      "gridded", but I also have a problem with the underscore. Should it be
      "transform-gridded"? Even so, does it really make sense?
      I chose to just read "Show a preview of the transformed image", which I
      think is simpler and the most understandable (we don't need to leak the
      implementation with a transform grid into the human read text IMO). If
      anyone think that was not the right choice, feel free to propose
      Thanks to Bruce Cowan for noticing these.
      (cherry picked from commit f9c170df)
    • Jehan's avatar
      app: add link to Smart Colorization scientific paper. · 4fd8e484
      Jehan authored
      This is sometimes asked, and myself also need to find it from time to
      time. I may as well put the link inside the code comments, where it is
      just easy to find!
      (cherry picked from commit 005bc140)
    • Jehan's avatar
      desktop: prepare GIMP 2.10.10 appdata. · 944d509e
      Jehan authored
      (cherry picked from commit 388f6da1)
    • Ell's avatar
      app: in gimp_projection_chunk_render_start(), properly invalidate preview · dfc038e6
      Ell authored
      In gimp_projection_chunk_render_start(), when the current
      projection rendering is complete, but not finalized yet, and no new
      rendering is started (since the current update region is empty),
      make sure to invalidate the projectable's preview, since it
      normally happens when rendering is finalized, which doesn't happen
      in this case.
      (cherry picked from commit 42845c94)
    • Ell's avatar
      app: in gimp_projection_chunk_render_start(), don't leak empty region · f21eec31
      Ell authored
      In gimp_projection_chunk_render_start(), don't leak the current
      update region when it's empty, but not NULL, and properly shut down
      the idle source.
      (cherry picked from commit 0e5de957)
    • Bruce Cowan's avatar
      Update British English translation · 3f281592
      Bruce Cowan authored
    • Ell's avatar
      app: fix gimp_chunk_iterator_set_priority_rect() · 4cbec760
      Ell authored
      (cherry picked from commit 942e1aa9)
    • Piotr Drąg's avatar
      Update Polish translation · 9bf833b0
      Piotr Drąg authored
    • Bruce Cowan's avatar
      Update British English translation · 797469d3
      Bruce Cowan authored
    • Ell's avatar
      app: in gimpchunkiterator.c, #include <stdlib.h> · 5e00c262
      Ell authored
      ... for qsort().
      (cherry picked from commit a61f29e3)
    • Ell's avatar
      Issue #440 - libgimp/gimptilebackendplugin.c provides no pyramid · cc59bce8
      Ell authored
      In GimpTileBackendPlugin, return NULL when fetching z>0 tiles,
      instead of simply ignoring the z coordinate, so that the mipmapped
      tile is rendered locally.  Likewise, avoid storing z>0 tiles.
      Note that this is suboptimal, since all the necessary level-0 tiles
      need to be sent to the buffer as a result.  Ideally, we should
      extend the wire protocol to handle mipmapped tiles.
      (cherry picked from commit d0ae39f0)
    • Ell's avatar
      app: in gimp_gegl_apply_cached_operation(), s/cancellable/cancelable/ · aa0df19a
      Ell authored
      To align gimp-2-10 with master, and fix commit
    • Ell's avatar
      app: in the gradient tool, halt gradient editor before committing filter · 7547df54
      Ell authored
      In the gradient tool, halt the gradient editor before committing
      the filter, so that its image-flush idle source is removed before
      applying the operation, to avoid flushing the image, and hence
      restarting its projection rendering, during application.
      (cherry picked from commit 2256ab22)
    • Ell's avatar
      app: in gimp_tile_handler_validate_buffer_copy(), temporarily remove source handler · bb4b1e3f
      Ell authored
      In gimp_tile_handler_validate_buffer_copy(), temporarily remove the
      source buffer's validate handler, is exists, so that the subsequent
      gegl_buffer_copy() can use fast tile copying, using the TILE_COPY
      command.  GEGL currently only uses TILE_COPY when the source buffer
      doesn't have any user-provided tile handlers.
      (cherry picked from commit f4750a0a)
    • Ell's avatar
      app: use GimpChunkIterator in gimp_gegl_apply_cached_operation() · 50dc4571
      Ell authored
      In gimp_gegl_apply_cached_operation(), replace the use of
      GeglProcessor with GimpChunkIterator, so that we use the same
      chunking logic as for rendering projections.  This has the
      advantage of better chunk alignment to the tile grid and dynamic
      chunk sizing, which improve performance.
      Use chunking even when there's no progress indication, since it
      generally results in better cache locality.
      (cherry picked from commit 4110f7b7)
    • Ell's avatar
      app: use GimpChunkIterator in GimpProjection · b62e3fd3
      Ell authored
      Replace the custom chunking logic of GimpProjection with
      GimpChunkIterator, added in the previous commit.
      (cherry picked from commit 246e7828)
    • Ell's avatar
      app: add GimpChunkIterator · 8c31ed6f
      Ell authored
      Factor out the region-chunking logic of GimpProjection into a new
      GimpChunkIterator type, providing a generic mechanism for iterating
      over a cairo region in discrete chunks.  The iterator doesn't
      perform any processing itself, but rather dispenses rectangular
      chunks, which the user then processes.
      Iteration is broken into intervals, the duration of which is
      configurable.  Each iteration begins with a call to
      gimp_chunk_iterator_next(), after which
      gimp_chunk_iterator_get_rect() should be called in succession to
      fetch a rectangle to process, until it returns FALSE, which marks
      the end of the iteration.  Updates to the UI should take place in
      the interval between iterations, but not during an iteration.  The
      iterator dynamically adjusts the chunk size according to processing
      speed, in order to match the target iteration interval.
      The iterator can be given a priority rectangle, which is processed
      before the rest of the region.  It can also be given a
      representative tile rectangle, defining a regular tile grid;
      dispensed chunks are aligned to the tile grid as much as possible.
      (cherry picked from commit ba9ce34e)
  6. 11 Jan, 2019 3 commits
  7. 10 Jan, 2019 2 commits