1. 30 Dec, 2017 2 commits
  2. 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
  3. 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
  4. 20 Aug, 2017 1 commit
  5. 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
  6. 23 Apr, 2017 2 commits
  7. 27 Feb, 2017 1 commit
  8. 26 Feb, 2017 1 commit
  9. 12 Feb, 2017 1 commit
  10. 01 Feb, 2017 1 commit
  11. 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
  12. 13 Jan, 2017 1 commit
  13. 08 Jan, 2017 1 commit
  14. 03 Jan, 2017 2 commits
  15. 25 Nov, 2016 1 commit
  16. 29 May, 2016 1 commit
  17. 20 May, 2016 1 commit
  18. 17 May, 2016 1 commit
  19. 16 Feb, 2016 1 commit
  20. 17 Jun, 2015 1 commit
  21. 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
  22. 09 Aug, 2013 2 commits
  23. 27 Apr, 2013 1 commit
  24. 17 Apr, 2013 1 commit
  25. 22 Oct, 2012 1 commit
  26. 18 May, 2012 1 commit
  27. 06 May, 2012 1 commit
  28. 03 May, 2012 1 commit
  29. 02 May, 2012 8 commits