Initial implementation of the Scanline Fill algorithm!

Desktop / KDE / Calligra - Dmitry Kazakov [gmail.com] - 18 March 2014 07:55 UTC

This is an unfinished version of the scanline fill algorithm. It doesn't have a connection to KoColorSpace::difference yet and, obviously, is not connected to the KisFillPainter.

A very rough and a bit unfair benchmark agains legacy KisFillPainter algo shows about 2.5 times better performance of the scanline implementation.

fa46a11 Initial implementation of the Scanline Fill algorithm!
krita/image/CMakeLists.txt | 2 +
krita/image/floodfill/kis_fill_interval.h | 74 ++++++
krita/image/floodfill/kis_fill_interval_map.cpp | 138 +++++++++++
krita/image/floodfill/kis_fill_interval_map.h | 51 ++++
krita/image/floodfill/kis_fill_interval_map_p.h | 51 ++++
krita/image/floodfill/kis_fill_sanity_checks.h | 36 +++
krita/image/floodfill/kis_scanline_fill.cpp | 218 +++++++++++++++++
krita/image/floodfill/kis_scanline_fill.h | 54 +++++
krita/image/tests/CMakeLists.txt | 19 ++
krita/image/tests/data/heavy_labyrinth.png | Bin 0 -> 3570257 bytes
krita/image/tests/data/simple_labyrinth.png | Bin 0 -> 2194 bytes
krita/image/tests/kis_fill_interval_map_test.cpp | 60 +++++
krita/image/tests/kis_fill_interval_map_test.h | 31 +++
krita/image/tests/kis_fill_interval_test.cpp | 37 +++
krita/image/tests/kis_fill_interval_test.h | 31 +++
krita/image/tests/kis_fill_painter_test.cpp | 67 ++++++
krita/image/tests/kis_fill_painter_test.h | 2 +
krita/image/tests/kis_scanline_fill_test.cpp | 275 ++++++++++++++++++++++
krita/image/tests/kis_scanline_fill_test.h | 48 ++++
19 files changed, 1194 insertions(+)

Upstream: quickgit.kde.org


  • Share