1. 16 May, 2019 1 commit
    • Dmitry Kazakov's avatar
      Fix logic of the stroke lifetime in QMic · 57686d84
      Dmitry Kazakov authored
      We shouldn't try to end the same stroke multiple times. The patch
      also makes sure KisProcessingApplicator is owned by a scoped pointer
      instead of manual handling.
  2. 24 Jul, 2018 1 commit
  3. 30 Jun, 2017 1 commit
  4. 25 Jun, 2017 3 commits
  5. 26 Jan, 2016 1 commit
  6. 15 Jul, 2015 1 commit
  7. 10 Jul, 2015 1 commit
    • Lukáš Tvrdý's avatar
      Fix viewport preview generation · 29481de7
      Lukáš Tvrdý authored
      Instead of creating new thread per preview request,
      use single thread and cancel unfinished preview requests.
      If user changes the filter configuration, they are invalid anyway.
      Hopefully this solves the problem when user was changing
      filter settings quickly by draging sliders here and there.
      The UI feels also much more responsive.
      Inspiration for this solution was Mandelbrot example from Qt.
      This solution uses proper synchronization. Previous implementation
      did not synchronize any shared resources, thus it was crashy!
  8. 20 Jun, 2015 1 commit
  9. 06 Jun, 2015 1 commit
  10. 11 Apr, 2015 1 commit
  11. 06 Apr, 2015 1 commit
    • Boudewijn Rempt's avatar
      Check the 'right' way whether we're building for X11 · feb9b64e
      Boudewijn Rempt authored
      I know, I know. Qt on Linux can now abstract over Wayland and X11. That's
      why we don't have Q_WS_X11 anymore. Replacing it by Q_OS_LINUX is worse,
      Besides, real- world applications still need to know about the windowsystem
      because Qt doesn't cover everything. This replaces Q_WS_X11 with HAVE_X11
      (cribbed from Digikam).
      Unfortunately, Krita is now even more broken than it was, but it's still a
      step forward, hard as that might be to believe.
  12. 28 Mar, 2015 1 commit
    • Lukáš Tvrdý's avatar
      Fix crashes related to progress reporting and cancelling gmic actions · d9ce183d
      Lukáš Tvrdý authored
      Cancelling and progress reporting has to be synchronized:
      G'Mic uses raw pointers for indicating progress and
      checking if the action is cancelled. KisGmicCommand
      is destroyed by KisProcessingApplicator, so KisGmicApplicator
      does not know when it is deleted and when it is safe
      to read/write to pointers of cancel event and progress report
  13. 17 Jan, 2015 1 commit
    • Lukáš Tvrdý's avatar
      Support progress reporting for small preview · 651f5528
      Lukáš Tvrdý authored
          * small preview is computed in separate thread, so that
            it does not block UI and allows to report progress
            for very slow filters like 'Dream Smoothing'.
      Cancel now stops execution of slow filters
          * when you cancel slow filter, it stops as soon as gmic
            is able to stop it correctly, painting on canvas
            might be delayed for some short period
  14. 23 Dec, 2014 1 commit
    • Lukáš Tvrdý's avatar
      Improvements for G'MIC for Krita plug-in · a26087de
      Lukáš Tvrdý authored
      * implement progress reporting when applying filter
        - most gmic filters do not support precise progress reporting,
          they indicate work, in G'MIC GIMP plug-in progress bar pulses;
          in Krita progress bar cycles in interval (0-90%)
      * if gmic script fails, inform user about the error message
        - if you have own gmic recipe, you can make syntax mistake,
          now you get error message with text
      * fix lost filtering when you select filter and click ok
        - synchronization is needed to end stroke correctly, we
          can't destroy dialog before we are done with filtering
  15. 20 Dec, 2014 1 commit
    • Lukáš Tvrdý's avatar
      Improvements for G'MIC for Krita plug-in · 084f9c1b
      Lukáš Tvrdý authored
      o update gmic to version
        - fix source in-compatibility
        - fix gmic parser, gmic_def files added new typedefs (button, const)
        - fix folder and file parameter parsing, fix default values in UI
      o enable interactive filters like colorize [interactive]
        - fix compilation of gmic for krita to match gmic for gimp: enable X11,OpenMP,PNG,pthreads
        - reorder gmic headers, which have to be included after Qt headers due to conflict between
          CImg.h included X11 headers and Qt's headers
          Similar to http://www.qtcentre.org/threads/11011-Cannot-compile-in-Suse-OK-with-mingw-and-studio-2005-on-Windows-XP
        - move gmic sources to own subfolder src to ease the maintainance
      o todo item: less debug output from gmic and plugin, make it optional
        - port all debug outputs to KDE's kDebug
      o fix synchronization of layers
        - if gmic filter produces more layers than Krita put on input (colorize [comics]),
          Krita created empty layer; now it contain correct content
  16. 22 Nov, 2014 1 commit
    • Lukáš Tvrdý's avatar
      Implement basic preview support for G'MIC for Krita · 66a1f1d4
      Lukáš Tvrdý authored
      - implement small preview window support
      - implement extra feature: on-canvas preview mode (select Preview Size: On Canvas)
      - a lot of small bug-fixes
      Preview makes G'MIC for Krita much more usable
      List of known issues is in source dir at
      Review it before reporting bugs, please
  17. 30 May, 2014 1 commit
    • Dmitry Kazakov's avatar
      Implemented type-safe translations for undo actions · 9e143a4e
      Dmitry Kazakov authored
      See documentation to a KUndo2MagicString class.
      Now KUndo2Command cannot accept a usual string as the operation text().
      The supplied text must pass through the kundo2_i18n() function, which
      tells the developer to use (qtundo-format) which is mandatory for all the
      undo-related strings (because in some languages they should be shown in
      different cases in undo/redo action and in undo history, and the
      translators should use Magic Split for them).
  18. 25 May, 2014 1 commit
    • Lukáš Tvrdý's avatar
      Implement internet updates for gmic · 11a2db8f
      Lukáš Tvrdý authored
      Updates are fetched from http://gmic.sourceforge.net/updateXXXX.gmic
      where XXXX is curent gmic version. So now it is update1590.gmic
      * compile gmic with zlib dependency, needed to extract update
        file from cimgz format
      * implement merging of two gmic file definitions,
        if second file has same filter in same category,
        its definition will be overwritten
      * applicator has to pass *.gmic definitions to gmic so that user
        defined filters work
      * No need to use KisImageLayerAddCommand to add paint layer
  19. 12 Apr, 2014 1 commit
  20. 28 Feb, 2014 1 commit
  21. 09 Jan, 2014 1 commit
  22. 05 Oct, 2013 1 commit
    • Lukáš Tvrdý's avatar
      Improve performance and stability of gmic · aacf17a2
      Lukáš Tvrdý authored
      o add benchmarks for fast method converting Krita layers to gmic
      o optimize converting Krita RGBA layers to gmic layer and back to Krita layers
          KisGmicBenchmarks::testConvertToGmic(): 	6,673 msecs
          KisGmicBenchmarks::testConvertFromGmic():	7,149 msecs
          KisGmicBenchmarks::testConvertToGmicFast():	59 msecs (113-times faster)
          KisGmicBenchmarks::testConvertFromGmicFast():	154 msecs (46-times faster)
          Slow method with LCMS2 is used when the colorspace is different from RGBA.
          Optimization is implemented as color-transformation that only scale
          RGBA colorspace depth to float.
          Now is the performance in pair with g'mic for gimp plug-in
      o fix crash when closing gmic widget
      o add more unit tests converting gmic-krita conversions
      o add simple feedback that gmic filtering is done:
        - window title contains information about running time of gmic filter