1. 22 Oct, 2017 5 commits
  2. 21 Oct, 2017 3 commits
    • Ell's avatar
      Bug 786992 - removing alpha produces a black image (sometimes), with OpenCL · 66bb469a
      Ell authored
      When creating a flatten node, which is used when removing alpha
      channels and when flattening an image, use a gimp:normal node to
      combine the layer with the background color, instead of a gegl:over
      node.  gegl:over can apparently result in completely black output
      with OpenCL enabled, under certain (not fully pinned-down)
      conditions.
      
      As long as the OpenCL version of gegl:over is borked, there is not
      much reason to use it over gimp:normal, which is more consistent
      (in intension, if not in extension) with the rest of the
      compositing pipeline.
      66bb469a
    • 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
    • Ell's avatar
      app: add gimp_layer_get_real_{blend,composite}_{space,mode}() · 96efde0f
      Ell authored
      ... which return the layer's blend/composite space/mode.  However,
      unlike the non-"_real" versions, these functions never return AUTO
      -- instead, they return the actual space/mode that AUTO maps to for
      the current layer mode.
      
      When changing a layer's blend/composite space/mode, avoid
      updating the drawable if the real space/mode didn't change (i.e.,
      if changing from AUTO to the concrete value, or vice versa.)
      96efde0f
  3. 18 Oct, 2017 5 commits
  4. 17 Oct, 2017 2 commits
  5. 16 Oct, 2017 2 commits
    • Ell's avatar
      app: add custom gui for gegl:color-to-alpha(-plus) · d4d8dbbc
      Ell authored
      Add a specialized propgui constructor for gegl:color-to-alpha-plus.
      This op is currently in the workshop, but is set to be merged with
      the existing gegl:color-to-alpha, so we omit the '-plus' from file-
      and function-names.
      
      The new op adds a pair of properties to control the radii, relative
      to the selected color, below which colors become fully transparent,
      and above which colors remain fully opaque.  Allow these properties
      to be set by picking a color from the image, and calculating the
      radius accordingly.
      d4d8dbbc
    • Ell's avatar
      app: allow specifying a callback function for propgui pickers · c5b88702
      Ell authored
      Allow propgui constructors to specify an (optional) callback function
      when creating pickers, to be called when a color/coordinate is picked,
      similarly to controller callbacks.
      
      Implement picker callback support in GimpFilterTool.  When the active
      picker has an associated callback function, call it instead of the
      class's color_picked() function.
      
      Add lots of "#include <gegl.h>" to .c files that miss it, which is
      now necessary, since this commit adds a Babl* parameter in
      propgui-types.h.
      c5b88702
  6. 15 Oct, 2017 2 commits
  7. 14 Oct, 2017 2 commits
  8. 11 Oct, 2017 2 commits
  9. 10 Oct, 2017 4 commits
  10. 09 Oct, 2017 13 commits
    • Ell's avatar
    • Jordi Mas's avatar
      Update Catalan translation · c465e17e
      Jordi Mas authored
      c465e17e
    • Ell's avatar
      app: in GimpOperationBlend, swap leftmost and rightmost colors when ... · a789c6e5
      Ell authored
      ... rendering a reversed gradient
      
      Finishes up the last commit.
      a789c6e5
    • Ell's avatar
      app: fix leftmost and rightmost gradient colors in GimpOperationBlend · 4e2e60ca
      Ell authored
      When rendering a gradient with a repeat mode of NONE, don't sample
      the gradient at 0.0 and 1.0, for pixels that lie to the left and to
      the right of the gradient, respectively.  Instead, use the left
      color of the leftmost segment directly, and, likewise, the right
      color of the rightmost segment.  This always gives us the right
      color for such pixels, even when there are gradient stops, that may
      use different colors, at 0.0 and 1.0,
      4e2e60ca
    • Ell's avatar
      app: cache last-sampled gradient segment in GimpOperationBlend · dfeafcb1
      Ell authored
      Remember the gradient segment at which the most-recent sample lies,
      and pass it to gimp_gradient_get_color_at() as a seed for segement
      lookup on the next sample.  This improves the performance
      marginally.
      dfeafcb1
    • Ell's avatar
      app: don't update blend tool filter upon irrelevant line changes · 4bfa6e71
      Ell authored
      When one of the line widget's properties changes, only update the
      blend tool filter if the property has an effect on the result.  In
      particular, don't update the filter when only the selection
      changes.
      4bfa6e71
    • Ell's avatar
      app: fix fg/bg color change handling in the blend tool · 429bc550
      Ell authored
      Separate the handling of changes to the FG/BG color from the gradient
      dirty signal handling, so that the gradient editor doesn't purge the
      history in response.  Additionally, correctly respond to such changes
      whenever the gradient has segments that depend on the FG/BG colors,
      even if the dependency is introduced after the gradient is selected.
      429bc550
    • Ell's avatar
      app: implement tool undo for gradient editing in the blend tool · 4f6b4d27
      Ell authored
      Move the tool undo functionality of the blend tool to the editor,
      and add support for undoing gradient edit operations.  Each undo
      step that affects the gradient holds, in addition to the line
      endpoint poisitions, a copy of the gradient at the beginning of the
      operation, as well as necessary information to allow the selection
      to "follow" undo.  When undoing the operation, the saved gradient
      is copied back to the active gradient.
      
      To avoid all kinds of complex scenarios, when the active gradient
      changes, or when the gradient is modified externally (e.g., by the
      (old) gradient editor), all undo steps that affect the gradient are
      deleted from the history, while those that affect only the endpoint
      positions are kept.
      4f6b4d27
    • Ell's avatar
      app, libgimpbase: implement blend tool gui for gradient midpoints · 9469ac26
      Ell authored
      Allows setting the midpoint's position, blending function, and
      coloring type.
      
      The midpoint can be converted to a stop, and centered, through
      editor buttons.
      9469ac26
    • Ell's avatar
      app: implement blend tool gui for gradient stops · 1aa48774
      Ell authored
      Allows setting the stop's position, and its left and right colors
      and color types.  A chain button can be used to modify the two
      colors (and color types) together.
      
      The stop can be deleted through an editor button.
      1aa48774
    • Ell's avatar
      app: implement blend tool gui for gradient endpoints · 8d12fada
      Ell authored
      Allows setting the endpoint's position, its color, and its color
      type.
      8d12fada
    • Ell's avatar
      app: add tool gui to the blend tool · a9ca354d
      Ell authored
      To be used by the blend tool gradient editor to edit the gradient
      endpoint/stop/midpoint properties corresponding to the selected
      handle.
      
      The GUI is currently empty; the following commits add its contents.
      a9ca354d
    • Ell's avatar
      app: convert midpoints to stops via double-click in the blend tool · 420ea803
      Ell authored
      When a midpoint is double-clicked, convert it into a gradient stop
      (i.e., split the corresponding segment at the midpoint,) by
      responding to the line's handle-clicked signal.
      420ea803