Autolayer merge done

Boudewijn Rempt boud at valdyas.org
Wed Jan 12 20:48:58 CET 2005


The autolayer merge is done to the best of my ability. Which means that there 
is little laundrylist of issues that still need to be fixed before we are 
back at the functional state from before the merge, and before we can 
continue with great new features. This list doesn't include the things I 
broke before the merge (like cmyk or clear-selection) which are still broken. 
Just grep for XXX or TODO and you'll find plenty to do...

I _am_ going to commit this despite the breakage: I hope we can resolve the 
breakage in a week or so. I'll tag cvs before committing, so we can always 
revert if we don't manage to make Krita work as well, and preferably better, 
than before.

Okay: these are the problems I've been able to identify:

KisTiledDataManager:

* implement paste, clear (which is in effect a fast rect fill with a color),
* implement readBytes & writeBytes (I already put some commented-out code in; 
this is because I don't want to do a loop using memcpy in KisPaintDevice, and 
we often need a big blob of bytes.
* Fix the disquieting note in getTile()

kis_iterators:

* Add an iterator that traverses the image returning pointer to individual 
tiles so we can, e.g., convert image data in bigger chunks than one pixel. 

./ui/kis_previewwidget.cc:

* Fix or decide something abou the clampDelta method.

./core/kis_doc.cc

* Check layerAdd: here were only the creation and the destruction of 
fillpainter left in the code, without any action in between. What was the 
intention?

./core/kis_tile_command.cc

* Check third constructor
* The mediated access to datamanager things is a bit icky
* re-implement redo

./core/kis_fill_painter.cc

* Fix fillRect by implementing clear.
* Fix floodfill again (I couldn't get that merged)

./core/kis_paint_device.cc

* Remove transform code that's now ifdeffed out, use Michael's visitors.
* Same with mirror functions
* Fix convertTo to use the pointer-to-largest chunk-of-bytes-we-can-get 
that we still need to create.
* Fix _all_ the iterator factory methods. (I couldn't get them to merge
cleanly.)

./core/kis_iterators.cc

* ??? I don't know what this bit does or should do.

./core/kis_selection.cc

* Fix invert by using proper iterators instead of the deprecated iterators
I used before.

./core/kis_rotate_visitor.cc

* Fix rotating, shearing and cropping (Note: remove the QMatrix-based 
rotate/transform & crop code in KisImage/KisPaintDevice when done.)

./core/kis_histogram.cc

* Fix area that's computed to use layer extends.

./core/kis_gradient_painter.cc

* Fix painting of gradients.

./core/kis_filter.cc

* Refreshing the preview only refreshes one pixel?
* Filtering filters only one fixel?

./core/kis_selection_manager.cc

* What do we select when we selectAll a layer?
* Fix the invert method; it now inverts a simple 0,0,100,100 rect...

./core/kis_scale_visitor.cc

Completely fix the scaling code

./core/builder/kis_image_magick_converter.cc

* Completely fix file import (quick fix now; much of the import code
should be moved to the colour strategies other we'll never be able to
import cmyk tiffs)

./tools/kis_tool_freehand.cc

* Fix the bitBlt in endPainter by using a dirtyRect -- perhaps from 
KisPainter? Also, the bit of code after that, up to and including the comment 
about delete m_target worries me a bit.

./paintops/kis_filterop.cc

* This needs to be fixed completely

./paintops/kis_duplicateop.cc

* This needs to be fixed completely.

./plugins/imagesize/imagesize.cc

* Should we crop layers when the image is made smaller and the layers fall 
outside of the image? What does Photoshop do? (And now I think of it -- 
should we somehow show parts of a layer outside the image, maybe with 10% 
opacity?)

./core/visitors/kis_merge.h

* Fix visit() -- w, h are always set to 100

./core/kis_iterators.h

* Fix oldQuantumValue

./core/kis_paint_device.h

* Fix clip() and setClip()

KisRaindropsFilter

* replace layer->widht, height with w,h from image or something like that.

OilpaintFilter

* replace layer -> width, height with w, h from image or something like that.

Finally:

Document the use of the new iterators in a small text file in Kritas
doc directory. Get on with fixing the rest of the issues...

-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20050112/68b11825/attachment.pgp


More information about the kimageshop mailing list