1. 14 Apr, 2021 1 commit
  2. 10 Apr, 2021 1 commit
  3. 09 Apr, 2021 2 commits
    • Dmitry Kazakov's avatar
    • Dmitry Kazakov's avatar
      Fix range of Smudge Radius option · 0229395c
      Dmitry Kazakov authored
      After the commit noted below the smudge radius value showed in
      the GUI was multiplied by 100. That is, to get smudge radius
      100%, the user had to select value 10000%.
      
      Since the bug seems to have been introduced 6 years ago, I'm
      not sure we can "just fix" it. So now the new presets will have
      a 'SmudgeRadiusVersion' tag. If the tag is not found, then the
      smudge radius value will be divided by 100.
      
      The patch also introduces the logic of changing the range of
      smudge radius. Old algorithm has range of 0...300%, and the
      now one has a shorter range 0...100%. It happens because the
      new algorithm uses the brush as weights for the samples, so we
      cannot sample outside the brush bounds.
      
      graphics/krita@8d8e7335
      0229395c
  4. 08 Apr, 2021 1 commit
  5. 07 Apr, 2021 5 commits
  6. 03 Apr, 2021 3 commits
  7. 29 Mar, 2021 2 commits
    • Dmitry Kazakov's avatar
      Implement optimized blending modes for Color Smudge paintop · a529e8a3
      Dmitry Kazakov authored
      The patch implements several things:
      
      1) Adds U16 versions of Over and AlphaDarken composite ops.
         The basic memory access is taken from Mathias Wein's (!584)
         patch
      
      2) Adds implementation of Copy composite op for U8, U16 and F32
         color spaces. This composite op is used a lot in colorsmudge.
      
      3) The patch makes F32 and U16 (and U8 for "copy") composite ops
         to reuse the same codebase.
      
      In comparison to !584 this patch has two things "not implemented
      yet":
      
      1) No optimization for alpha-locked state
      2) No optimization for separate read/demangle of the alpha channel
         value
      
      Both these optimizations can be added later.
      
      Test Plan
      ---------
      
      1) Try to paint with normal brush in "wash" mode with low opacity/flow
         values. There should be no artifacts visible
      
      2) Try to paint with ColorSmudge brush in the following modes:
      
         * Smear Alpha is on/off
      
         * Inherit Alpha is on/off
      
         * Any selection is on/off
      
         * Some color channels of the layer are off
      a529e8a3
    • Dmitry Kazakov's avatar
      aa8d3263
  8. 24 Mar, 2021 2 commits
  9. 18 Mar, 2021 1 commit
  10. 17 Mar, 2021 2 commits
  11. 16 Mar, 2021 1 commit
  12. 09 Mar, 2021 1 commit
  13. 03 Mar, 2021 3 commits
  14. 02 Mar, 2021 3 commits
  15. 01 Mar, 2021 1 commit
    • Dmitry Kazakov's avatar
      Implement interstroke data support · c5b14585
      Dmitry Kazakov authored
      Now brushes can attrach some temporary data to the device and use
      it for different strokes. The data is removes when incompatible
      stroke the first incompatible is started.
      c5b14585
  16. 26 Feb, 2021 11 commits
    • Dmitry Kazakov's avatar
      temp · 4e99d57e
      Dmitry Kazakov authored
      4e99d57e
    • Dmitry Kazakov's avatar
      temp · 24b79e1f
      Dmitry Kazakov authored
      24b79e1f
    • Dmitry Kazakov's avatar
      Before refactor · 0b952727
      Dmitry Kazakov authored
      # Conflicts:
      #	libs/pigment/colorspaces/KoRgbU16ColorSpace.cpp
      0b952727
    • Dmitry Kazakov's avatar
      Fix smudge engine overlay modes · b6ff30e0
      Dmitry Kazakov authored
      This is a version of the patch by Peter Schatz with all
      unrelated codes removed:
      
      graphics/krita!422 (9d43a0b4)
      b6ff30e0
    • Dmitry Kazakov's avatar
      Fix painting with Smear Alpha disabled · a513503a
      Dmitry Kazakov authored
      The new algorithm is based on the fact that we first copy the original
      data into the temporary device and then blend in the smudge data, while
      the old one works in a reversed way (it first generates smudge data and
      then blends it into the destination device).
      a513503a
    • Dmitry Kazakov's avatar
      f5edbf3f
    • Dmitry Kazakov's avatar
      Simplify new colorsmudge algorithm by using painter's opacity option · 6e39718b
      Dmitry Kazakov authored
      This change allows to avoid all those fixed paint device copies.
      6e39718b
    • Peter Schatz's avatar
      Revert opacity adjustment curve · 8b1c6c17
      Peter Schatz authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      Changed opacity adjustment back to simple linear curve, so that it matches
      how opacity works on pixel brush engine in build-up mode (since build-up
      mode is the only mode for the smudge engine).
      8b1c6c17
    • Peter Schatz's avatar
      Fix opacity issues and UI issues in smudge engine · 11ecc645
      Peter Schatz authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      Changed how the Opacity setting controls the opacity of the smudge brush so
      that it has a visually smooth pressure curve when using the new smudge
      algorithm.  Fixed an issue with the new smudge engine not properly changing
      when the brushtip type changes.
      11ecc645
    • Peter Schatz's avatar
      Fix opacity setting issue · 55168401
      Peter Schatz authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      Opacity settings below 22% caused 100% transparency, so I changed how the value
      adjusts the final dab opacity. Now it still adjusts smoothly, but doesn't
      disappear until setting is below 7%.
      55168401
    • Peter Schatz's avatar
      Make new smudge engine option · 4536a7ee
      Peter Schatz authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      Added checkbox to Smudge Option widget to Use New Engine. Made it mandatory
      for Color/Lightness/Gradient modes, optional for Mask mode.  Reverted opacity
      option for new engine mode to be more accurate.  This way it keeps existing
      brushes as they are (since only mask mode was allowed for smudge engine before now),
      but allows people to make new brushes without the problems of the old smudge
      engine.   This also makes it clear that new brushes using Color/Lightness/Gradient
      modes will be using the new engine, so some options will work a bit differently
      (such as the aforementioned opacity issue).
      
      # Conflicts:
      #	plugins/paintops/colorsmudge/kis_smudge_option_widget.cpp
      4536a7ee