1. 25 Aug, 2018 1 commit
    • Ell's avatar
      Issue #2095 - Filter wavelet-decompose error with layer Group option active · e5638451
      Ell authored
      In gimp_image_merge_layers(), explicitly fetch the graph of the top
      layer's parent layer (if exists), to make sure that the top layer's
      graph has a parent node.  We already fetch the image graph, which
      takes care of top-level layers, however, if the top layer is a
      child of an invisible layer group, as is the case in the wavelet-
      decompose plug-in, this is not generally enough to guarantee that
      the group's graph is constructed.
      e5638451
  2. 09 Aug, 2018 1 commit
  3. 11 Jul, 2018 1 commit
  4. 25 Apr, 2018 1 commit
    • Ell's avatar
      Bug 793714 - Error when merging layer group with Pass through mode · 4fce5d25
      Ell authored
      When merging a pass-through group, change its mode to NORMAL first,
      to avoid a critical when duplicating the group as a regular layer.
      Preserve the group's blend/composite space/mode while changing its
      mode (note that only the composite space currently matters, since
      the other parmaeters are immutable for pass-through groups.)
      4fce5d25
  5. 22 Jan, 2018 1 commit
    • Jehan's avatar
      app: run gimp_projectable_get_graph() before gegl_node_get_parent()... · b4c7dd8f
      Jehan authored
      ... on top-level layers.
      There was even a comment for this, but I missed this when I moved some
      code to the top of the function in commit b9577a78. Now moving this
      call up as well. This appeared to be more of a problem when merging
      layers without a GUI (script-fu). I'm guessing the GUI calls this anyway
      before.
      b4c7dd8f
  6. 21 Jan, 2018 2 commits
  7. 31 Dec, 2017 2 commits
  8. 30 Dec, 2017 2 commits
  9. 21 Oct, 2017 1 commit
    • Ell's avatar
      app: use the layer's composite space when flattening it · 0c305bdb
      Ell authored
      Add a composite_space parameter to gimp_gegl_create_flatten_node()
      and gimp_gegl_apply_flatten(), which controld the color space --
      linear or perceptual RGB -- used for the operation (instead of
      hardcoding it to linear).
      
      When removing a layer's alpha channel, use the layer's composite
      space for the flattening.  When flattening an image, use the bottom
      layer's composite space.  Keep using linear space when creating a
      channel or a mask from a drawable with alpha.
      0c305bdb
  10. 21 Aug, 2017 1 commit
    • Michael Natterer's avatar
      Move the new "default_new_layer_mode" APIs to the image... · e16c8a23
      Michael Natterer authored
      ...in both the core and libgimp.
      
      Images now know what the default mode for new layers is:
      
      - NORMAL for empty images
      - NORMAL for images with any non-legacy layer
      - NORMAL_LEGAVY for images with only legacy layers
      
      This changes behavior when layers are created from the UI, but *also*
      when created by plug-ins (yes there is a compat issue here):
      
      - Most (all?) single-layer file importers now create NORMAL layers
      - Screenshot, Webpage etc also create NORMAL layers
      
      Scripts that create images from scratch (logos etc) should not be
      affected because they usually have NORMAL_LEGACY hardcoded.
      
      3rd party plug-ins and scripts will also behave old-style unless they
      get ported to gimp_image_get_default_new_layer_mode().
      e16c8a23
  11. 20 Aug, 2017 1 commit
  12. 08 Aug, 2017 1 commit
    • Ell's avatar
      app: adapt gimp_image_merge_layers() to handle pass-through groups ... · 67fc418c
      Ell authored
      ... and fix flatten-image along the way.  *And* do some cleanup.
      
      Currently, gimp_image_merge_layers() combines the layers on its own,
      one by one.  This is incompatible with pass-through groups, because
      the group's buffer is rendered independently of its backdrop, while
      we need to take the backdrop into account when mergeing the group.
      
      Instead, render the subgraph of the parent graph, corresponding to
      the set of merged layers, directly into the new layer.  Since the
      layers we merge are always visible and continuous, all we need is a
      minor massage to the parent graph to make it work.  This takes care
      of pass-through groups intrinsicly.
      
      This commit also changes the behavior of flatten-image:  Currently,
      the flattened layers are rendered directly on top of the opaque
      background, which can make previously-hidden areas (due to layers
      using composite modes other than src-over, or legacy layer modes)
      visible.  This is almost certainly not desirable.
      
      Instead, construct the graph such that the flattened layers are
      combined with the background only after being merged with one
      another.
      67fc418c
  13. 23 Apr, 2017 2 commits
  14. 27 Feb, 2017 1 commit
  15. 26 Feb, 2017 1 commit
  16. 12 Feb, 2017 1 commit
  17. 01 Feb, 2017 1 commit
  18. 17 Jan, 2017 1 commit
    • Michael Natterer's avatar
      app: remove "gboolean linear" parameters · 12623705
      Michael Natterer authored
      from gimp_applicator_new() and gimp_gegl_mode_node_set_mode().
      Compositing doesn't depend on the layer format any longer, only on the
      layer mode. Painting with "use applicator" unchecked is still broken
      in some cases and needs more fixing.
      12623705
  19. 13 Jan, 2017 1 commit
  20. 08 Jan, 2017 1 commit
  21. 03 Jan, 2017 2 commits
  22. 25 Nov, 2016 1 commit
  23. 29 May, 2016 1 commit
  24. 20 May, 2016 1 commit
  25. 17 May, 2016 1 commit
  26. 16 Feb, 2016 1 commit
  27. 17 Jun, 2015 1 commit
  28. 18 Jun, 2014 1 commit
    • Michael Natterer's avatar
      app: add an optional gegl:cache at the output of GimpApplicator · db2ea536
      Michael Natterer authored
      Add "gboolean use_cache" to gimp_applicator_new(). Don't use a cache
      anywhere but in GimpImageMap because it incrementally fills that cache
      via the projection update. In gimp_drawable_merge_filter(), get that
      cache and pass it to gimp_gegl_apply_cached_operation() which then
      avoids doing the work twice for the already cached results. Win!
      db2ea536
  29. 09 Aug, 2013 2 commits
  30. 27 Apr, 2013 1 commit
  31. 17 Apr, 2013 1 commit
  32. 22 Oct, 2012 1 commit
  33. 18 May, 2012 1 commit
  34. 06 May, 2012 1 commit