1. 07 Mar, 2016 3 commits
  2. 06 Mar, 2016 7 commits
  3. 05 Mar, 2016 10 commits
  4. 04 Mar, 2016 6 commits
    • Thorsten Zachmann's avatar
      Fix clean krita build · 282d46b8
      Thorsten Zachmann authored
      282d46b8
    • Halla Rempt's avatar
      f2aeb4ce
    • Halla Rempt's avatar
      Remove unused setupOpenFileSubProcess method · 10ce6676
      Halla Rempt authored
      10ce6676
    • Dmitry Kazakov's avatar
      Krita: loading animation time range · 5b0561d4
      Dmitry Kazakov authored
      Initial patch written by:
      László Fazekas <mneko@freemail.hu>
      
      We cannot override a function called from a templated function
      by putting it below this templated function. Therefore, to work with
      KisTimeRange we should just reimplement the full toplevel version:
      
      bool loadValue(const QDomElement &parent, const QString &tag, KisTimeRange *range)
      
      so that the argument dependent lookup can find it.
      
      Test plan:
      
      Create a new document and change the animation start
      and end values. Save a .kra document. Load it back.
      If it cannot load back the range, the default start=0
      and end=100 values are remaining there.
      
      Differential Revision: https://phabricator.kde.org/D1036
      5b0561d4
    • Halla Rempt's avatar
      First commit of improved RTL text editing for the artistic text shape · 0ab16aff
      Halla Rempt authored
      CCBUG:350782
      See D958
      0ab16aff
    • László Fazekas's avatar
      Fix Krita animation timeline cursor duplication · 593ec09b
      László Fazekas authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      When you create or load an animation and first you click on the headline
      of the timeline (the ruler with the frame numbers, not the actual
      layers) and drag the cursor, it behaves strangely: the previous cursor
      is not erased, and a new duplicate cursor image placed on the touched
      frames.
      
      The reason for this: before you click on a layer at least once, the
      index structure of the selected row is in invalid status and it returns
      -1 for its row() value. So the setCurrentIndex() function cannot replace
      the cursor correctly. My solution is used many times elsewhere in the
      same source file.
      
      Testplan:
      
      The timeline docker must be visible. Create a new document. Click on the
      headline of the timeline (the ruler with the frame numbers) and drag the
      cursor. It behaves strangely. If you click on a layer to replace the
      cursor, after that the headline also works as expected. My patch fixes
      this.
      
      Differential Revision: https://phabricator.kde.org/D1048
      593ec09b
  5. 02 Mar, 2016 2 commits
    • Thorsten Zachmann's avatar
      Implement optimized RGBF32 alpha darken composite · fb013b7e
      Thorsten Zachmann authored
      Added optimized version for alpha darken composite op for RGBF32 colorspace.
      Added tests to test performance and results of new implementation against legacy.
      
      The diff needed in the test compare is do to the fact that the compiler
      calculates 1.0/255.0 and multiplying the result instead if dividing by
      255.0 for the mask.
      
      Here are the results of the benchmark on my Intel i5-2520M CPU
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: Testing Composite Op: "alphadarken" ( "Legacy" )
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   Mask   SrcRand DstRand" RESULT: 67 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "DstUnalig Mask   SrcRand DstRand" RESULT: 68 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "SrcUnalig Mask   SrcRand DstRand" RESULT: 69 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Unaligned Mask   SrcRand DstRand" RESULT: 66 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstRand" RESULT: 33 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstRand" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstRand" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstZero" RESULT: 31 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstZero" RESULT: 28 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstZero" RESULT: 31 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcRand DstUnit" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcZero DstUnit" RESULT: 32 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenLegacy() krita.general: "Aligned   NoMask SrcUnit DstUnit" RESULT: 33 msec
      
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   Mask   SrcRand DstRand" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "DstUnalig Mask   SrcRand DstRand" RESULT: 12 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "SrcUnalig Mask   SrcRand DstRand" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Unaligned Mask   SrcRand DstRand" RESULT: 16 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstRand" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstRand" RESULT: 14 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstZero" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcRand DstUnit" RESULT: 9 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcZero DstUnit" RESULT: 10 msec
      QDEBUG : KisCompositionBenchmark::testRgbF32CompositeAlphaDarkenOptimized() krita.general: "Aligned   NoMask SrcUnit DstUnit" RESULT: 9 msec
      
      This is a speedup of factor 3 to 6.
      fb013b7e
    • Scott Petrovic's avatar
      turn the HSV filter back to Hsliders instead of input field sliders. There... · e98c88d4
      Scott Petrovic authored
      turn the HSV filter back to Hsliders instead of input field sliders. There have been a few requests. Other programs seem to have this UI style as well.
      e98c88d4
  6. 01 Mar, 2016 1 commit
  7. 26 Feb, 2016 1 commit
    • László Fazekas's avatar
      Krita Behind blending mode glitch fix · 4b721de9
      László Fazekas authored and Dmitry Kazakov's avatar Dmitry Kazakov committed
      The Behind blending mode has a problem (at least) in 16 bit integer
      channel mode, probably because of mixing signed and unsigned integer
      calculations. The blended color turns into its inverse at
      near-transparent areas. This modified version works without this
      problem.
      
      Testplan:
      Open a canvas with 16 bits integer channels and draw on a transparent
      layer with some colors in the Behind drawing mode. It's best to use some
      blurred tool like the airbrush. If you cross a different color stroke,
      you can see inverse colors at the edges (Linux, x86_64).
      
      Differential review:
      https://phabricator.kde.org/D1023
      
      CC:mneko@freemail.hu
      4b721de9
  8. 25 Feb, 2016 2 commits
  9. 24 Feb, 2016 1 commit
  10. 21 Feb, 2016 7 commits