1. 12 Nov, 2020 1 commit
    • Mathias Wein's avatar
      Fix optimized alpha darken composite operation for float channels · 76c28d6a
      Mathias Wein authored
      The code attempted to copy a pixel via 'pixel_type' pointer,
      but this template parameter does not actually describe the pixel type
      (it's quint32), since 'Pixel' is defined in the template itself and
      hence can't be used as template parameter.
      
      May this template parameter should just be dropped...
      
      But since there's no need to copy the whole pixel, just copy the color channels.
      
      BUG:404133
      76c28d6a
  2. 23 Jul, 2020 1 commit
  3. 21 Jul, 2020 1 commit
  4. 19 Jul, 2020 1 commit
  5. 16 Oct, 2019 1 commit
  6. 19 Jul, 2019 1 commit
  7. 17 Jul, 2019 1 commit
  8. 06 Jul, 2019 1 commit
    • Dmitry Kazakov's avatar
      Disable AVX optimizations for 32-bit composite ops · cd5450a8
      Dmitry Kazakov authored
      They cause artifacts and we don't have a fix yet :(
      
      CCBUG:404133
      
      Note from the committer:
      This commit was initially made on krita/4.2 branch.
      However between 4.2.1 and 4.2.2 the stable branch was
      reconstructed, which caused all commits that were exclusively
      on the previous krita/4.2 (and not on master) to be missing.
      
      The previous commit hash: d3e4c3aa
      
      Also regarding the artifacts: it never worked, optimization were
      enabled during the creamy flow implementation, but they never should
      be enabled until someone fix them properly.
      cd5450a8
  9. 23 Feb, 2019 1 commit
  10. 07 Feb, 2019 1 commit
  11. 01 Feb, 2019 1 commit
  12. 26 Jun, 2018 1 commit
    • Miguel Lopez's avatar
      Quadratic Blending Modes · 563269c9
      Miguel Lopez authored
      Summary:
      During the creation of Quadratic Blending Modes, I have did the following:
      
        - Add new category suitable for quadratic blending modes
       -  I copied and paste existing codes, and created new codes used to calculate blending of images accordingly to the Pegtop formula reference sheet
      - I have tested the 4 new blending modes, and keep adjusting until the blending modes matches that of the Pegtop blending modes
      
      -----
      - Before the testing plan, find a way to make freeze and heat with acceptable coding. Reflect Blend Mode has now been solved.
      
      Test Plan:
      - Have artists find usage of quadratic blend modes, and see if they find the blending modes useful
      - Test results of quadratic blend modes with existing programs (As far as I"m concerned, only reflect and glow are available for testing)
      -If all seem sounds, and ready to go, then maybe it can be patched in Krita
      
      Reviewers: #krita, dkazakov
      
      Subscribers: dkazakov
      
      Tags: #krita
      
      Differential Revision: https://phabricator.kde.org/D13383
      563269c9
  13. 15 Jun, 2018 1 commit
    • Miguel Lopez's avatar
      Quadratic Blending Modes · 41c72fc7
      Miguel Lopez authored
      Summary:
      During the creation of Quadratic Blending Modes, I have did the following:
      
        - Add new category suitable for quadratic blending modes
       -  I copied and paste existing codes, and created new codes used to calculate blending of images accordingly to the Pegtop formula reference sheet
      - I have tested the 4 new blending modes, and keep adjusting until the blending modes matches that of the Pegtop blending modes
      
      -----
      - Before the testing plan, find a way to make freeze and heat with acceptable coding. Reflect Blend Mode has now been solved.
      
      Test Plan:
      - Have artists find usage of quadratic blend modes, and see if they find the blending modes useful
      - Test results of quadratic blend modes with existing programs (As far as I"m concerned, only reflect and glow are available for testing)
      -If all seem sounds, and ready to go, then maybe it can be patched in Krita
      
      Reviewers: #krita, dkazakov
      
      Subscribers: dkazakov
      
      Tags: #krita
      
      Differential Revision: https://phabricator.kde.org/D13383
      41c72fc7
  14. 22 May, 2018 1 commit
  15. 28 Dec, 2017 1 commit
  16. 25 May, 2017 1 commit
  17. 18 May, 2017 1 commit
  18. 16 Sep, 2016 1 commit
  19. 10 Mar, 2016 1 commit
    • Dmitry Kazakov's avatar
      Greater-alpha blend mode · 888070bb
      Dmitry Kazakov authored
      This adds a blend mode that uses a sigmoid blending function
      to take the greater alpha of either the current layer or the brush.
      The result of this is that making multiple passes across the
      same area but with different strokes will not further increase
      the opacity past the brush setting or stylus pressure. This
      can help with consistently shading a region across multiple
      separate strokes without creating spurious or accidental
      sharp edges due to edge-overlaps with existing brush strokes.
      
      The patch was created by Nicholas Guttenberg
      
      Differential revision: https://phabricator.kde.org/D666
      888070bb
  20. 04 Sep, 2015 1 commit
    • Thorsten Zachmann's avatar
      This optimizes OpOver for RGBAF32 by using vc · 91016738
      Thorsten Zachmann authored
      New tests and benchmarks for the code have been added.
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() Testing Composite Op: "normal" ( "RGBF32 Legacy" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   Mask   SrcRand DstRand" RESULT: 143 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "DstUnalig Mask   SrcRand DstRand" RESULT: 142 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "SrcUnalig Mask   SrcRand DstRand" RESULT: 143 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Unaligned Mask   SrcRand DstRand" RESULT: 144 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstRand" RESULT: 59 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstRand" RESULT: 21 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstZero" RESULT: 48 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstZero" RESULT: 18 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcRand DstUnit" RESULT: 22 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcZero DstUnit" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverLegacy() "Aligned   NoMask SrcUnit DstUnit" RESULT: 16 msec
      PASS   : KisCompositionBenchmark::testRgbF32CompositeOverLegacy()
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() Testing Composite Op: "normal" ( "RGBF32 Optimized" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   Mask   SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "DstUnalig Mask   SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "SrcUnalig Mask   SrcRand DstRand" RESULT: 28 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Unaligned Mask   SrcRand DstRand" RESULT: 27 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstRand" RESULT: 17 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstRand" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstRand" RESULT: 13 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstZero" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstZero" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstZero" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcRand DstUnit" RESULT: 13 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcZero DstUnit" RESULT: 4 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeOverOptimized() "Aligned   NoMask SrcUnit DstUnit" RESULT: 12 msec
      PASS   : KisCompositionBenchmark::testRgbF32CompositeOverOptimized()
      
      (cherry picked from commit 3be07eee35505bf754f12617e5d9059c03c44d7c)
      91016738
  21. 01 Aug, 2015 1 commit
  22. 12 May, 2015 1 commit
  23. 02 Mar, 2015 1 commit
    • Wolthera van Hövell's avatar
      Adding tangent normal map blending mode to krita. · 42ce952f
      Wolthera van Hövell authored
      This patch adds a tangent normal map blending mode to Krita. It works by
      taking the base value and substracting that from the destination before adding
      it onto the source. It's still experimental in that it needs testing.
      
      It's to be found under misc.
      
      I had a huge fight with git to get my working branch synced to master,
      and I am pretty sure it's clean now, but if I messed up the branch, feel free
      to revert this commit.
      42ce952f
  24. 07 Feb, 2015 1 commit
  25. 15 Jan, 2015 1 commit
  26. 09 Jan, 2013 2 commits
  27. 16 Oct, 2012 1 commit
    • Dmitry Kazakov's avatar
      Added Vc implementation of the "over" composite · 8e76b3b6
      Dmitry Kazakov authored
      There is still one bug in both the composites: the calculation
      of a single pixel compositions should be done in float instead of
      integers, otherwise it causes artifacts on the canvas during painting.
      8e76b3b6
  28. 15 Oct, 2012 1 commit
  29. 10 Aug, 2012 1 commit
  30. 03 Jun, 2012 1 commit
    • Halla Rempt's avatar
      Use LCMS, not CTLCS for 32 bit float colorspaces · f51b30ac
      Halla Rempt authored
      This merges branch pigment-lcms2_rgbaf32-rempt. When lcms2 supports
      16 bit floating point numbers, the last two colorspaces will be
      moved from ctlcs to lcms, effectively retiring ctlcs. The technology
      was way cool, but it's easier to support all features in lcms.
      
      This also changes pigment:
      
      * if an icc-based colorspace factory is encountered for which there
      are no profiles, don't assert but warn and disregard the factory
      * previously, if the color conversion graph would encounter its
      base alpha 8 node, we would assert because there was no factory for
      alpha8.
      * the colorspace traits are now made complete and split out in
      separate files for easier editing.
      
      This also adds a bunch of more or less useful variations of colorspaces
      to the lcms2, as well as whole new YCbCr classes. For which there are
      no free profiles available, so users will have to provide those, for
      instance from the lcms2 website.
      
      Squashed commit of the following:
      
      commit cea6e6ebee30c19c080dbb64c52c1a5ccc9a84fb
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Jun 3 11:28:16 2012 +0200
      
          fix rgba 16 bits
      
      commit 4dfc3e7d8060cf98af6fbce1f523871ed88ca509
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Jun 3 11:23:52 2012 +0200
      
          fix lab colorspace
      
      commit da9d6b652c2bf5a3883462285368c977f6e12389
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Jun 3 11:13:16 2012 +0200
      
          fix colorspace id
      
      commit d4f26cc899122232f668398d50214de342ad7640
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Jun 3 11:12:54 2012 +0200
      
          fix warning
      
      commit 41735f8e8392c7ead9661fdbecf0c07d41cbd17f
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Jun 3 11:12:40 2012 +0200
      
          remove KIS from headerguard
      
      commit 1342d497928f271d3214b73792b360c017f5b2e9
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sat Jun 2 15:32:22 2012 +0200
      
          cleanups
      
      commit 33c423a9966529f199510777da2776b29cc8cfb1
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sat Jun 2 11:45:15 2012 +0200
      
          Don't delete all the colorspace stuff on app exit
      
          It's faster and safer.
      
      commit b7ddefafdd896243dde9d79c1f0bbd550326c07e
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sat Jun 2 11:44:19 2012 +0200
      
          Color Conversion System: don't assert if there is no profile
      
          For some colorspaces (ycbcr) there are no free profiles available. If
          the user wants, they can add a profile and the cs will work, but until
          that time, don't crash.
      
      commit c8240f83578193f0227c406660b3a2163714f936
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sat Jun 2 11:31:42 2012 +0200
      
          Implement floating point versions of all supported color models
      
          This also adds ycbcr support using lcms2; however, users should bring
          their own profiles.
      
      commit 54c10a59d17cba5f7f420027535af549a828d83c
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 17:03:27 2012 +0200
      
          compile fixes
      
      commit 428291b9dbd0e58114486cbb3deaad2a763dd27e
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 16:44:16 2012 +0200
      
          pigment: rename the rgb traits to bgr traits
      
          The reason is that they actually describe a bgra pixel, not an rgba
          pixel and we need rgba traits for the floating point rgba color space.
      
      commit a08b07b383256aa7d17da132f28f209e63fc23e4
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 16:41:46 2012 +0200
      
          remove unused include
      
      commit 1059be2c19989b825715f1ac71a03a9509543cd4
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 16:41:00 2012 +0200
      
          pigment: split out the traits into separate files
      
          And add traits for all supported color models and typedefs for all
          (potentially) supported channel depths.
      
      commit ec7a2770c885793a83abd5e83ee6679d18900a24
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 15:42:26 2012 +0200
      
          remove obsolete file
      
      commit 67e139504a19b88cc20d44e779ce6ef342d51240
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 12:57:53 2012 +0200
      
          ctlss: Remove profiles and colorspace definitions that are in lcms2
      
          gray32f, rgba32f, xyza32, ycbcr8, ycbcr16 can be done using lcms2.
      
          Also remove the unused lmsaf32 profile.
      
      commit 57f2b0224b1abf70b350b15a3d5da9e1fb7d6750
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu May 31 11:44:23 2012 +0200
      
          lcms color engine: add an experimental rgbaf32 colorspace
      
          This uses the new floating point capabilities of lcms2 to create a
          hdr rgba colorspace that automatically uses all the templated functions
          of pigment.
      f51b30ac
  31. 25 Apr, 2012 1 commit
  32. 23 Oct, 2011 1 commit
    • Halla Rempt's avatar
      Remove KoCompositeOp::userVisible · 8c23368c
      Halla Rempt authored
      userVisible was no longer used, so remove from the api. Query: isn't
      the category string also obsolete since commit 84e57495069833f647f7a41511d451eafae69737
      (Replaced the old composite op ComboBox with a new one.)?
      8c23368c
  33. 24 May, 2011 2 commits
  34. 29 Apr, 2011 1 commit
  35. 18 Apr, 2011 1 commit
  36. 12 Apr, 2011 1 commit
  37. 16 Mar, 2011 1 commit
  38. 14 Feb, 2011 1 commit