Skip to content
  • Halla Rempt's avatar
    Port Krita fully to the NG iterators. · 5977effb
    Halla Rempt authored
    This is a squashed commit of the following:
    
    commit fd43060a9999ffbe12f920137bbb90d0e0effb8a
    Merge: d52a1c3 b32e3dd6
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat May 5 16:27:36 2012 +0200
    
        Merge branch 'master' into iterators
    
    commit d52a1c31d8ce83bdd5ff6ce22905794ba82022cc
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat May 5 16:23:24 2012 +0200
    
        Fix transform worker
    
        Transform at 135 degrees works now.
    
        BUG:298901
    
    commit 9b1f3343
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Apr 29 11:13:50 2012 +0200
    
        Fix painting on masks
    
        BUG:298988
    
    commit a6bbd634
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Apr 28 15:40:52 2012 +0200
    
        Remove obsolete files
    
    commit 0b0dbbf3
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Apr 28 11:42:19 2012 +0200
    
        Repair the perspective transform worker
    
        BUG:298901
    
    commit e2c25d8b
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 18:12:28 2012 +0200
    
        CLRSPC_UNSPECIFIED is newer than the minimum jp2 lib we use.
    
    commit 056d2f89
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 12:24:45 2012 +0200
    
        Remove the old iterator and accessor code
    
    commit d41d496d
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 12:14:45 2012 +0200
    
        Make the selection manager test at least run
    
        The assert if it couldn't find the pattern precluded the entire test
        from running. Of course, parts of the test fail, but it's always been
        that way and probably not an effect of the iterator removal.
    
    commit 53cfb92c
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 11:32:20 2012 +0200
    
        Fix undo on new layers
    
        The const NG iterators don't allow access to the actual current data
        pointer, but in KisPainter we need that. Do an ugly cast in preference
        to adding api to expose the raw data.
    
    commit 305753f6
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 11:16:47 2012 +0200
    
        fix typo == > =
    
    commit 6d21d719
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu Apr 26 10:27:07 2012 +0200
    
        fix kisdoct2test after removing the tutorial image
    
    commit ccb215f3
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Wed Apr 25 14:09:04 2012 +0200
    
        Don't iterate if the rect is empty
    
        Fixes a crash in KisPixelSelection::invert.
    
    commit 3c5acc66
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Wed Apr 25 14:07:21 2012 +0200
    
        Handle the situation where the ng iterators get an empty stretch
    
        Assert in developer mode so we know where to add the check for emptiness
        before creating the iterator; make the iterator check at least a pixel
        in release mode.
    
        We cannot re-instate the old isDone() api because that would impair
        performance too much:
    
        13:26:45 < boud> CyrilleB: do you remember why the NG iterators don't have an isDone() check so the loop always checks at least once? (with do {} while
                         (it-NextPixel())
        13:45:34 < CyrilleB> boud: performance
        13:46:13 < CyrilleB> boud: especially since in 99.99% of the case, one does have something to iterate over
        13:50:34 < boud> aah
        13:50:49 < boud> because it's the reason of the crash in KisSelection::invert
        13:52:29 < boud> maybe if the rect is empty we should make it have a width/height of one so there's always one pixel read in all cases
        13:53:04 < CyrilleB> or rather have an assert if you try to create an iterator with a null width/height
        13:53:20 < CyrilleB> (or both, if you want to ensure good behaviour for users)
                            it goes wrong
        13:53:35 < CyrilleB> s/good behaviour/non crashing behaviour/
    
    commit 2393ed18
    Author: José Luis Vergara <pentalis@gmail.com>
    Date:   Tue Apr 24 17:21:06 2012 -0300
    
        Make KisConvolutionWorkerFFT work correctly with the NG iterators
    
        o remove the (  ) added previously to *m_channelPtr[k]++ . With them, the color values are not properly saved and the result is all non-Alpha channels go down to 0.
        o add a comment warning about the dangers of touching that line
        o remove redundant lines of memcpy that are no longer needed (these lines were part of bug workarounds).
    
    commit 525deb3e
    Author: Cyrille Berger <cberger@cberger.net>
    Date:   Sat Apr 21 13:49:37 2012 +0200
    
        Fix convolution (at least for radius <= 2)
    
        the repeat iterator were always claiming to not have a next pixel
    
    commit 7f464573
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Tue Apr 24 15:05:39 2012 +0200
    
        Fix the spatial convolution worker
    
        We need to take the rawData, not the oldRawData and from a non-const
        NG interator.
    
        The spatial convo worker is used if fftw3 isn't present or for small
        kernels.
    
    commit e608dc4f
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Tue Apr 24 14:25:49 2012 +0200
    
        Make the KisPixelSelectionTest work
    
        I'm not sure why I cannot do
    
            // everything deselected
            selection->clear();
            // completely selected
            selection->invert();
            // deselect a certain area
            selection->clear(QRect(5, 5, 200, 200));
    
        Without getting a crash in invert() now that invert uses the NG iterators.
    
        Dmitry, could you take a look when you've got time?
    
        CCMAIL:dimula73@gmail.com
    
    commit 2b38ec79
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Tue Apr 24 13:13:53 2012 +0200
    
        Fix floodfill benchmark -- not sure how long it had been broken\!
    
    commit a47d05a9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:58:06 2012 +0200
    
        port kis_painter to ng iterators
    
        Note that this changes the signature of bitBltImpl: we no longer
        use a const srcDev and no longer a const iterator; we need to be
        able to access the rawData as well as the oldRawData, and that
        is no longer possible with the ng iterators.
    
    commit 7bd3626e
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 11:23:51 2012 +0200
    
        remove deprecated exactbounds method
    
    commit 89c06934
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 11:23:03 2012 +0200
    
        port kispaintdevice to ng iterators
    
    commit 35f17e6c
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:58:50 2012 +0200
    
        port repeat iterators to use ng iterators internally
    
        and use them in the convolution filters
    
    commit 42668459
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:58:29 2012 +0200
    
        remove obsolete iterators test
    
    commit 183dbda0
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:49:18 2012 +0200
    
        port random sub accessor to use ng accessors internally
    
        port perspective transform worked to ng iterators
    
        use ng iteratorss for the wave filter
    
        use ng iterator in duplicate paintop
    
        use ng iterator in deform paintop
    
        use ng iterator in gridbrush paintop
    
        use ng iterators in spray paintop
    
        ..
    
    commit ffbaae24
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:49:47 2012 +0200
    
        warnings--: unused param
    
    commit 9aa9ca06
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:48:14 2012 +0200
    
        port transform worker to ng iterators
    
    commit 8ffb5e2a
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:47:53 2012 +0200
    
        port pixel selection to ng iterators
    
    commit e953aef7
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:46:06 2012 +0200
    
        warnings--: unused param
    
    commit a0f5226f
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:45:51 2012 +0200
    
        port math toolbox to ng iterators
    
    commit 1f993f85
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:45:34 2012 +0200
    
        port histogram to ng iterators
    
    commit 76bb0c1b
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:44:37 2012 +0200
    
        warnings--: unused param
    
    commit d78eaa60
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:44:21 2012 +0200
    
        port selection to use ng iterator for isSelected() function
    
    commit 403851b1
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:43:47 2012 +0200
    
        port fill painter to use ng iterators
    
    commit 3b239bd1
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:41:43 2012 +0200
    
        export tiles3/hline and vline iterator headers
    
        This is unfortunately necessary to make the repeat iterator templates
        work.
    
    commit fcbe8e57
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:41:27 2012 +0200
    
        convert tests to use ng iterators
    
    commit 2056f57a
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:41:12 2012 +0200
    
        remove obsolete rect benchmarks
    
    commit 38076f8f
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:40:47 2012 +0200
    
        use ng iterators in selection manager to copy a selection
    
    commit f6bd4347
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:40:24 2012 +0200
    
        use ng iterators in mask manager to convert masks to layers
    
    commit 784d2a3d
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:39:10 2012 +0200
    
        use ng iterators in png converter
    
    commit 83ecc119
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:38:51 2012 +0200
    
        warning--: unused variable
    
    commit 68414f79
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:38:32 2012 +0200
    
        warnings--: unused param
    
    commit e56930ed
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:38:19 2012 +0200
    
        use ng iterators in pyramid downsampling
    
    commit 3391d83c
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:37:58 2012 +0200
    
        use ng iterators in shape selection
    
    commit 209200a4
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:37:29 2012 +0200
    
        convert all benchmarks to use ng iterators
    
    commit d0eca3e1
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:35:57 2012 +0200
    
        use ng iterators in sdk template
    
    commit 2ec13164
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:35:29 2012 +0200
    
        use ng iterators in particle paintop
    
    commit 47cb8927
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:35:20 2012 +0200
    
        use ng iterators in mypaint paintop
    
    commit 6eda4599
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:35:13 2012 +0200
    
        use ng iterators in hatching paintop
    
    commit 6d064a63
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:35:07 2012 +0200
    
        use ng iterators in hairy paintop
    
    commit 2d59c8ad
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:34:48 2012 +0200
    
        use ng iterator in filter paintop
    
    commit eed4beb9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:34:40 2012 +0200
    
        use ng iterator in experiment paintop
    
    commit dac1550d
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:34:31 2012 +0200
    
        use ng iterator in dynadraw paintop
    
    commit 55edfad0
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:34:06 2012 +0200
    
        use ng iterator in curvebrush paintop
    
    commit c435f9d1
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:33:52 2012 +0200
    
        use ng iterator in colorsmudge paintop
    
    commit bfe34023
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:33:44 2012 +0200
    
        use ng iterator in chalk paintop
    
    commit 0b275fe8
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:33:27 2012 +0200
    
        use ng iterators in bidi painting option
    
    commit 63b4851a
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:33:12 2012 +0200
    
        use ng iterators in total random color source
    
    commit ebbc4513
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:32:41 2012 +0200
    
        use ng iterator in custom brush widget
    
    commit 42f5eccd
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:31:40 2012 +0200
    
        use ng iterator in brush lib
    
        This changes the pointer to old style iterator that was created as
        a copy of a temporary iterator to a shared pointer to an ng iterator.
    
    commit d5e99712
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:31:00 2012 +0200
    
        remove unused iterator include
    
    commit 6dd29318
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:30:29 2012 +0200
    
        use ng iterators for separate channels
    
    commit 075a8605
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:30:13 2012 +0200
    
        use ng iterators for drop shadow dialog
    
    commit 705012f9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:29:35 2012 +0200
    
        use ng iterators for the colorrange selection dialog
    
    commit fa6c031b
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:29:07 2012 +0200
    
        use ng iterators for the selection tools
    
    commit f34164ab
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:28:51 2012 +0200
    
        use ng iteratorss for the colorpicker tool
    
    commit 6b6d52d4
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:28:11 2012 +0200
    
        use ng iteratorss for the randompick filter
    
    commit 98c33b00
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:27:57 2012 +0200
    
        use ng iteratorss for the oilpaint filter
    
        Note the ng iterators need a non-const iterator in MostFrequentColor.
    
    commit b0f7e659
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:27:48 2012 +0200
    
        use ng iteratorss for the emboss filter
    
    commit ae3a5218
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:27:22 2012 +0200
    
        use ng iteratorss for the colors filter
    
    commit 32099f6e
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Apr 23 10:26:52 2012 +0200
    
        use ng iterators for the file filters
    5977effb