1. 26 Dec, 2014 1 commit
    • Dmitry Kazakov's avatar
      Remove the link to KisNode in KisPaintOpSettings · 6ed320c4
      Dmitry Kazakov authored
      The settings object is purely XML data so we shouldn't store a shared
      pointer there. It causes really subtle bugs related to the lifetime of
      the node in question.
      
      Now the node is passed to the PaontOp directly via constructor. And the
      options widget gets it directly from KisPaintOpBox.
      
      BUG:341847
      6ed320c4
  2. 20 Nov, 2014 1 commit
    • Timothée Giet's avatar
      Add separate controls for Flow settings · 8cb29989
      Timothée Giet authored
      Separate Flow from Opacity controls to can add dynamics on flow.
      TODO:
      -restore the flow toolbar slider becoming grey when a brush is in build-up mode
      -hide or disable the flow line in brush editor when in build-up mode
      -clean kis_pressure_flow_opacity_option* to better reorganize the code
      8cb29989
  3. 05 Aug, 2013 1 commit
  4. 03 Aug, 2013 1 commit
    • Dmitry Kazakov's avatar
      Fixed Speed, Distance and Drawing Angle sensors · 327f800d
      Dmitry Kazakov authored
      This patch makes the following user-visible changes:
      
      1) Speed and Distance sensors are fixed
      2) Drawing Angle sensor became much more stable and smooth
      3) Drawing Angle sensor works right on the rotated canvas
      
      Technical details:
      
      This patch hugely refactors the distance information part of
      our painting system. The two most significant changes:
      
      1) KisPaintInformation doesn't have movement() method, because it
         used to get inconsistent *very* fast when the lien was split into
         chunks in paintBezierCurve. The access to drawingDistance(),
         drawingAngle() and drawingSpeep() parameters is provided only by means
         of teh associated KisDistanceInformation.
      
      2) (follows from the point 1) From now on paintAt() function also accepts
          KisDistanceInformation object, because otherwise it will not be able
          to access the calculated parameters.
      
      BUG:321771,308408,279442
      327f800d
  5. 30 Jul, 2013 1 commit
    • Dmitry Kazakov's avatar
      Implemented anisotropic spacing for the Krita brushes · 45d5b0dd
      Dmitry Kazakov authored
      Now if you change the 'ratio' option the brush, the horizontal
      and vertical spacing will be relative to the width and height of the
      brush correspondingly.
      
      This effect is achieved by used equation of a ellipse. When the
      cumulative 'distance' value grows out of the ellipse defined by the
      spacing values, a new dab is painted.
      
      BUG:276465
      45d5b0dd
  6. 26 Mar, 2013 1 commit
    • Dmitry Kazakov's avatar
      Implemented an ability to paint with gray color on the selections · 416904d1
      Dmitry Kazakov authored
      This patch introduces a property for a KisPaintDevice class:
      
      const KoColorSpace* KisPaintDevice::preferredDabColorSpace() const
      
      This property tells the user which color space is preferred to be used
      for dabs, those are going to be bitBlt'ed to the paint device.
      The necessity if such separation is defined by the fact that some color
      spaces are not good for composing colors (i.e. alpha8()) so
      the composition result will be more sane if the dab is prepared in
      a better color space.
      
      TODO: there are a few bugs still:
      1) There are a few color conversion code duplications in the paint ops,
         which read the data from the layer's (not dab's) device. This should
         be wrapped into a separate class, which would also solve the performance
         doubts.
      2) The SmudgeOp doesn't work on the selections, due to problem 1)
      3) The Experimental Paint Op doesn't remove color in non-mirroring modes,
         because alpha8() color space doesn't have COMPOSITE_COPY op, which can
         be easily fixed.
      
      BUG:217292
      416904d1
  7. 26 Jan, 2013 1 commit
  8. 08 Oct, 2012 1 commit
  9. 05 Oct, 2012 1 commit
    • Dmitry Kazakov's avatar
      Added caching for dabs into the brush paintop · 2e24ae90
      Dmitry Kazakov authored
      This patch adds caching of the dabs to the paint op system of Krita.
      Such cache makes the execution of the benchmarks up to 2 times faster.
      Subjectively, the real painting becomes much faster, especially with
      huge brushes. Artists report up to 20% speed gain while painting.
      
      Of course, such caching makes the painting a bit less precise: we need
      to tolerate subpixel differences to allow the cache to work. Sometimes
      small difference in the size of a dab can also be acceptable. That is
      why I introduced levels of precision. They are graded from 1 to 5: from
      the fastest and less precise to the slowest, but with the best quality.
      You can see the slider in the paintop settings dialog. The ToolTip text
      explains which features of the brush are sacrificed on each precision
      level.
      
      The texturing and mirroring problems are solved.
      
      My next steps are: make this cache tolerate bug 307588 and port it to
      other brush-based paitops.
      
      CC:kimageshop@kde.org
      REVIEW:106724
      2e24ae90
  10. 29 Mar, 2012 1 commit
  11. 10 Jun, 2011 1 commit
  12. 24 Feb, 2011 1 commit
  13. 08 Jan, 2011 2 commits
  14. 14 Dec, 2010 1 commit
  15. 27 Aug, 2010 2 commits
  16. 26 Aug, 2010 2 commits
  17. 02 Jul, 2010 1 commit
  18. 24 Apr, 2010 1 commit
  19. 01 Mar, 2010 1 commit
  20. 27 Feb, 2010 1 commit
  21. 01 Jan, 2010 1 commit
    • Sven Langkamp's avatar
      *split brush option · 4d22f080
      Sven Langkamp authored
      *moved brush loading from the paintops into KisBrushBasedPaintOp
      
      svn path=/trunk/koffice/; revision=1068657
      4d22f080
  22. 30 Dec, 2009 1 commit
  23. 27 Dec, 2009 1 commit
  24. 06 Dec, 2009 1 commit
  25. 28 May, 2009 1 commit
  26. 28 Apr, 2009 1 commit
  27. 27 Apr, 2009 1 commit
  28. 25 Oct, 2008 1 commit
  29. 22 Oct, 2008 1 commit
    • Boudewijn Rempt's avatar
      CCMAIL:kimageshop@kde.org · 68a72e19
      Boudewijn Rempt authored
      Paintop settings widgets are now owned by the paintop factory, not the
      paintop settings object. I had to -- temporarily -- disable all paintops
      but the brushop for this. The rest will come back on-line soon: porting is
      pretty easy, since it's now very easy to assemble a paintop out of some options
      and an algorith, This fixes the slowness on starting painting.
      
      Please, please, please, check the way the brushop works if you want to know exactly
      what I've been doing.
      
      
      svn path=/trunk/koffice/; revision=874913
      68a72e19
  30. 27 Aug, 2008 1 commit
  31. 26 Aug, 2008 1 commit
  32. 22 Aug, 2008 1 commit
  33. 21 Aug, 2008 1 commit
  34. 19 Aug, 2008 1 commit
  35. 27 Mar, 2008 1 commit
    • Boudewijn Rempt's avatar
      * Add begin of preset widget · 271e07b4
      Boudewijn Rempt authored
      * Make KisPaintOpSettings and KisPaintOpPreset shared pointers
      * Rename the resource server classes to something more distinct
      * Load presets in the resource server
      
      
      svn path=/trunk/koffice/; revision=790973
      271e07b4
  36. 03 Feb, 2008 1 commit
  37. 10 Jan, 2008 1 commit
    • Cyrille Berger's avatar
      KisPaintOpSettings: · 119fc02b
      Cyrille Berger authored
      * make KisPaintOpSettings serializable
      * make it possible to create KisPaintOpSettings without a pointer
      
      Recording framework:
      * save/load KisPaintOpSettings
      * load autobrush
      
      svn path=/trunk/koffice/; revision=759506
      119fc02b