1. 03 Dec, 2018 3 commits
  2. 02 Dec, 2018 15 commits
  3. 01 Dec, 2018 13 commits
  4. 30 Nov, 2018 5 commits
    • Ell's avatar
      app: use gimp_async_add_callback_for_object() in the bucket-fill tool · 6103f0e5
      Ell authored
      ... for the same reason as commit
      7c00cf49.
      6103f0e5
    • Ell's avatar
      app: use gimp_async_add_callback_for_object() in various places · 7c00cf49
      Ell authored
      Use gimp_async_add_callback_for_object(), added in the previous
      commit, instead of gimp_async_add_callback(), in cases where the
      destructor of the object owning the async doesn't wait for the
      async to finish.  This avoids leaking such ongoing asyncs on
      shutdown, during which gimp-parallel either finishes or aborts the
      asyncs: if at this point an async has any registered callbacks, an
      idle source is added for running the callbacks, extending the
      lifetime of the async; however, since we're not getting back into
      the main loop, the idle is never run, and the async (and any
      associated resources) are never freed.
      7c00cf49
    • Ell's avatar
      app: add gimp_async_add_callback_for_object() · 49fd2847
      Ell authored
      ... which is similar to gimp_async_add_callback(), taking an
      additional GObject argument.  The object is kept alive for the
      duration of the callback, and the callback is automatically removed
      when the object is destroyed (if it hasn't been already called).
      
      This is analogous to g_signal_connect_object(), compared to
      g_signal_connect().
      49fd2847
    • Ell's avatar
      app: unref async when removing last callback if idle is pending · a779dd38
      Ell authored
      In gimp_async_remove_callback(), if removing the last callback
      while the callback idle-source is already pending, cancel the idle
      source and unref the async object (the async is reffed when adding
      the idle source.)
      a779dd38
    • Øyvind "pippin" Kolås's avatar
      app: cache fishes per operation instance in layer-modes · 4dd3e219
      Øyvind "pippin" Kolås authored
      There was a global 3x3 array of babl fishes used for converting between
      blending and compositing pixel representations, these were all hard-coded to
      operate within the sRGB babl-space family. This commit updates a per-instance
      array during operation prepare instead, that comes preconfigured with fishes
      derived from the correct space. Since the same operation instance might get
      different space input during its life time we store and compare the cached
      fishes with the current format (which is unique depending on space).
      
      This should address the problem seen in issue #2592
      4dd3e219
  5. 29 Nov, 2018 2 commits
  6. 28 Nov, 2018 2 commits
    • Ell's avatar
      app: use gimp_tile_handler_validate_validate() in gimp:buffer-source-validate · 83dd94ba
      Ell authored
      Use gimp_tile_handler_validate_validate(), added in the commit
      before last, in gimp:buffer-source-validate, in order to pre-render
      the necessary region of the buffer, instead of performing the
      validation implicitly by iterating over the region.  This is both
      simpler, and, more importantly, allows us to render the entire
      region in a single chunk, instead of tile-by-tile, which can be
      considerably more efficient, especially with high thread counts.
      
      This essentially extends the dynamic sizing of rendered projection
      chunks to layer groups, which are rendered through
      gimp:buffer-source-validate, rather than just the main image
      projection.
      83dd94ba
    • Ell's avatar
      app: use gimp_tile_handler_validate_validate() in GimpProjection · d6f0ca55
      Ell authored
      Use gimp_tile_handler_validate_validate(), added in the last
      commit, in GimpProjection, in order to render the projection,
      instead of separately invalidating the buffer, undoing the
      invalidation, and then rendering the graph.  This is more
      efficient, and more idiomatic.
      d6f0ca55