1. 06 Nov, 2015 1 commit
  2. 05 Nov, 2015 2 commits
  3. 29 Oct, 2015 1 commit
  4. 08 Oct, 2015 1 commit
  5. 25 Sep, 2015 1 commit
  6. 10 Sep, 2015 1 commit
  7. 02 Sep, 2015 1 commit
  8. 01 Sep, 2015 1 commit
  9. 03 Aug, 2015 2 commits
    • Dmitry Kazakov's avatar
      Make frame switching undoable · 8a520d1b
      Dmitry Kazakov authored
      Now we add a command when switching a frame
    • Dmitry Kazakov's avatar
      Fixed Undo/Redo when working with animated frames · d6f82a5a
      Dmitry Kazakov authored
      This patch just makes undo just not crash and work correctly
      when the frameId does not equal to the frameId of the operation
      In the end of the command an explicit frame switch signal is emitted
      to switch to the changed frame. This behavior will be defined deprecated
      when we make all the frame switches undoable.
  10. 10 Jul, 2015 1 commit
  11. 08 Jul, 2015 1 commit
  12. 06 Jul, 2015 2 commits
  13. 18 Jun, 2015 1 commit
    • Dmitry Kazakov's avatar
      Make painting below Adjustment Layers up to 10 times faster! :) · 4319cea3
      Dmitry Kazakov authored
      We used to spend a lot of time on creation and update of progress
      reporters. Now we use a specially factored class KisBusyProgressIndicator
      that just shows a progress bar for 200ms and hides it if no further updates
      happened. Usage of atomic integers allows us avoid expensive synchronisations
      between threads.
      So now painting below Adjustment layers is significantly faster!
  14. 14 Jun, 2015 1 commit
  15. 12 May, 2015 1 commit
    • Dmitry Kazakov's avatar
      Implement initial KisProjectionLeaf interface · 946bf224
      Dmitry Kazakov authored
      KisProjectionLeaf is a special interface of KisNode that provides a
      separate image graph for rendering. This interface is use by all walkers
      and by async merger. The rest of Krita uses the basic one.
  16. 29 Mar, 2015 1 commit
  17. 13 Mar, 2015 1 commit
    • Dmitry Kazakov's avatar
      Made KisNode::projectionPlane() also a shared pointer · 4005f32d
      Dmitry Kazakov authored
      The problem is, when switching layer styles, some update workers may
      still be running in the background. If projection plane is a shared
      pointer, after switching the layer style the worker thread is left
      with his own local copy of the plane/styles and can finish his
      work happily.
  18. 10 Mar, 2015 1 commit
    • Dmitry Kazakov's avatar
      Added KisAbstractProjectionPlane interface for Layer Styles and other modes · b85c89b4
      Dmitry Kazakov authored
      KisAbstarctProjectionPlane makes the abstractions of a merge'able entity.
      It regenerate() it when the entity is filthy, fetches need/change/accessRect()
      when needed and apply() the entity to the global projection finally.
      Now KisAsyncMerger and Kis*Walker use this interface only, instead of
      old-fasioned direct methods of KisNode/KisLayer.
      The general idea is:
      KisLayer uses all its internal framework to generate a projection()
      device. The user sets a layer style on a layer by setting a special
      projectionPlane() interface, which wraps this generated prejection()
      data into Layer Styles.
  19. 04 Mar, 2015 1 commit
    • Jouni Pentikäinen's avatar
      Add experimental save/load support for animations. · 15633657
      Jouni Pentikäinen authored
      The file format used is a simple extension of the .kra format, chosen for
      ease of implementation. It is not intended as a final design but rather
      to allow easier testing of the animation features until the actual format 
      is decided upon.
      A warning about this is included to inform the user when saving files.
  20. 02 Mar, 2015 1 commit
  21. 14 Feb, 2015 2 commits
  22. 17 Dec, 2014 1 commit
  23. 03 Oct, 2014 1 commit
  24. 09 Mar, 2014 1 commit
    • Dmitry Kazakov's avatar
      Fixed a crash in the Undo/Redo of transformations · 4df72e99
      Dmitry Kazakov authored
      This patch:
      1) Fixes a crash in KisTransactionBasedCommand. The check for first redo
         got lost somewhere during previous refactoring.
      2) Fixes a deadlock in KisNode::prev/nextSibling(). The locks must be
         taken in a descending order only! Otherwise it'll result in a deadlock.
         See a comment in KisNode::prevChildImpl() function.
  25. 28 Feb, 2014 1 commit
    • Dmitry Kazakov's avatar
      Added a bit more thread safety to KisNodeSP · 867eaa10
      Dmitry Kazakov authored
      Now one can read the content of a KisNode from an arbitrary number
      of threads and at the same time write there with a single thread.
      This is ensured by a read-write lock added to a KisNode. For details
      see a comment in kis_node.cpp.
  26. 27 Nov, 2013 1 commit
    • Dmitry Kazakov's avatar
      Fixed bugs in transitive reincarnation of the Clone Layers · 6423ca91
      Dmitry Kazakov authored
      This patch fixes two problems:
      1) The Duplicate of a Group Layer will reset links inside internal
         Clone Layers properly.
      2) The removal of a group layer will reincarnate all the clone layers
         which were connected to the descendants of that layer.
  27. 18 Sep, 2013 2 commits
  28. 13 Aug, 2013 1 commit
  29. 10 Mar, 2013 1 commit
  30. 20 Jan, 2013 1 commit
  31. 28 Dec, 2012 1 commit
    • Friedrich W. H. Kossebau's avatar
      Remove usage of toAscii/fromAscii (basically replace with toLatin/fromLatin) · 6b6d3f81
      Friedrich W. H. Kossebau authored
      * use implicit conversion from toLatin1-QByteArray to const char*, where possible
      * constData() instead of data() everywhere, to avoid unneeded deep copies if code get copied
      * removed unneeded conversion to latin1 where QString was expected
      * use QByteArray instead of QString, if QString not really needed
      * cache result of conversion where useful
      REVIEW: 107871
      Thanks boud and jarosław for review
  32. 05 Feb, 2012 1 commit
    • Dmitry Kazakov's avatar
      Fixed a really tricky bug in walkers · 5ea31706
      Dmitry Kazakov authored
      He-he ;)
      It happened due to the following:
      1) Undo of removeLayer command added a layer and issued setDirty
         for this node
      2) The scheduler calculated the walker for this update and put it
         into the queue
      3) Undo of addLayer command removed one of the layers of the stack,
         leaving the queued walker in a very interesting state.
      The point is that the walker stored a shared pointer to the removed
      node, so it still had access to it and there were no crashes, but its
      behavior was not obvious (read "unpredictable").
      So I extended the meaning of the walker's checksum. Now it depends on
      the graph sequence number as well, so the walker is recalculated when
      he gets to know its data is outdated.
      About Graph Sequence Number.
      Now KisNodeGraphListener maintains an integer which shows current "version"
      of the graph or its "sequence number". This integer is incremented on every
      change made to the graph. So if you have some information about the graph
      which was acquired while the sequence number was X and now you see the number
      equals to Y, you should know your information is outdated and someone has
      changed the graph since then.
  33. 04 Feb, 2012 2 commits
  34. 18 Dec, 2011 1 commit