summaryrefslogtreecommitdiff
path: root/basebmp
AgeCommit message (Collapse)AuthorFilesLines
2015-10-27loplugin:unusedmethodsNoel Grandin11-304/+0
Change-Id: If703da1323e38df1c5e84d97a7d467dc8e639421 Reviewed-on: https://gerrit.libreoffice.org/19618 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2015-10-22Work around cid#1328486Stephan Bergmann1-3/+4
...claiming that "right shifting v by more than 15 bits always yields zero," apparently diagnosing an instanatiation of the template for T = unsigned short. Change-Id: I7c210ff17e4aef8f0e703cc30518f3420e67e7c1
2015-10-16-fsanitize=shift-exponentStephan Bergmann1-1/+11
Through test code added with d30f5bc3e65463f28c3087acad6f88e12d60e53b "lok::Document::paintTile: fix non-rectangular tiles wrt. transparency," CppunitTest_desktop_lib started to exhibit > basebmp/inc/metafunctions.hxx:210:26: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int' > unsigned int basebmp::shiftRight<unsigned int>(unsigned int, int) basebmp/inc/metafunctions.hxx:210:26 > basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>::operator()(unsigned int) const basebmp/inc/rgbmaskpixelformats.hxx:123:25 > basebmp::Color basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 255u, 4278190080u, 16711680u, 65280u, true> >::operator()<basebmp::PixelIterator<unsigned int> >(basebmp::PixelIterator<unsigned int> const&) const basebmp/inc/accessoradapters.hxx:115:16 > basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 4278190080u, 16711680u, 65280u, true>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 255u, 4278190080u, 16711680u, 65280u, true> >, basebmp::StdMasks>::getPixel_i(basegfx::B2IPoint const&) basebmp/source/bitmapdevice.cxx:472:20 > basebmp::BitmapDevice::getPixel(basegfx::B2IPoint const&) basebmp/source/bitmapdevice.cxx:1289:16 > basebmp::Color basebmp::GenericColorImageAccessor::operator()<vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> > >(vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> > const&) const basebmp/inc/genericcolorimageaccessor.hxx:54:18 > void vigra::copyLine<vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, basebmp::GenericColorImageAccessor, unsigned int*, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, vigra::IteratorAdaptor<vigra::Diff2DConstRowIteratorPolicy<vigra::Diff2D> >, basebmp::GenericColorImageAccessor, unsigned int*, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >) workdir/UnpackedTarball/vigra/include/vigra/copyimage.hxx:65:18 > void vigra::copyImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >) workdir/UnpackedTarball/vigra/include/vigra/copyimage.hxx:158:9 > void basebmp::scaleImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, bool) basebmp/inc/scaleimage.hxx:133:9 > void basebmp::scaleImage<vigra::Diff2D, basebmp::GenericColorImageAccessor, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(vigra::triple<vigra::Diff2D, vigra::Diff2D, basebmp::GenericColorImageAccessor> const&, vigra::triple<basebmp::PixelIterator<unsigned int>, basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > > const&, bool) basebmp/inc/scaleimage.hxx:180:5 > void basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, basebmp::StdMasks>::implDrawBitmapGeneric<basebmp::PixelIterator<unsigned int>, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > >(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::PixelIterator<unsigned int> const&, basebmp::UnaryFunctionAccessorAdapter<basebmp::StandardAccessor<unsigned int>, basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> > const&) basebmp/source/bitmapdevice.cxx:739:13 > basebmp::(anonymous namespace)::BitmapRenderer<basebmp::PixelIterator<unsigned int>, basebmp::StandardAccessor<unsigned int>, basebmp::AccessorSelector<basebmp::RGBMaskGetter<unsigned int, basebmp::Color, 16711680u, 65280u, 255u, false>, basebmp::RGBMaskSetter<unsigned int, basebmp::Color, 0u, 16711680u, 65280u, 255u, false> >, basebmp::StdMasks>::drawBitmap_i(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode) basebmp/source/bitmapdevice.cxx:827:21 > basebmp::BitmapDevice::drawBitmap(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode) basebmp/source/bitmapdevice.cxx:1562:9 > basebmp::BitmapDevice::drawBitmap(std::shared_ptr<basebmp::BitmapDevice> const&, basegfx::B2IBox const&, basegfx::B2IBox const&, basebmp::DrawMode, std::shared_ptr<basebmp::BitmapDevice> const&) basebmp/source/bitmapdevice.cxx:1574:9 > SvpSalGraphics::copyBits(SalTwoRect const&, SalGraphics*) vcl/headless/svpgdi.cxx:687:9 > SalGraphics::CopyBits(SalTwoRect const&, SalGraphics*, OutputDevice const*, OutputDevice const*) vcl/source/gdi/salgdilayout.cxx:589:9 > OutputDevice::GetBitmap(Point const&, Size const&) const vcl/source/outdev/bitmap.cxx:443:29 > OutputDevice::GetBitmapEx(Point const&, Size const&) const vcl/source/outdev/bitmap.cxx:487:25 > OutputDevice::DrawOutDev(Point const&, Size const&, Point const&, Size const&, OutputDevice const&) vcl/source/outdev/outdev.cxx:587:47 > sdr::overlay::OverlayManagerBuffered::ImpSaveBackground(vcl::Region const&, OutputDevice*) svx/source/sdr/overlay/overlaymanagerbuffered.cxx:198:17 > sdr::overlay::OverlayManagerBuffered::completeRedraw(vcl::Region const&, OutputDevice*) const svx/source/sdr/overlay/overlaymanagerbuffered.cxx:418:17 > (anonymous namespace)::RenderContextGuard::~RenderContextGuard() sw/source/core/view/viewsh.cxx:1714:21 > SwViewShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/view/viewsh.cxx:1856:1 > SwCrsrShell::Paint(OutputDevice&, Rectangle const&) sw/source/core/crsr/crsrsh.cxx:1278:5 > SwViewShell::PaintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/core/view/viewsh.cxx:1901:5 > SwXTextDocument::paintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/uibase/uno/unotxdoc.cxx:3139:5 > non-virtual thunk to SwXTextDocument::paintTile(VirtualDevice&, int, int, int, int, long, long) sw/source/uibase/uno/unotxdoc.cxx:3132:23 > doc_paintTile desktop/source/lib/init.cxx:784:5 > DesktopLOKTest::testPaintTile() desktop/qa/desktop_lib/test_desktop_lib.cxx:299:5 Change-Id: Iadda5d7bb3f7f15706d16b813e11e6d145818f6c
2015-10-16Fix type of nPixelStephan Bergmann1-1/+1
Change-Id: I2f59600318b345dce6bf00c30bb5e728c0fbebae
2015-10-16Use CPPUNIT_ASSERT_EQUAL for better failure reportsStephan Bergmann1-84/+114
Change-Id: If493763369581338325601edba2c12f96367f515
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann8-28/+28
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-01basebmp: fix Android buildMiklos Vajna1-0/+5
Change-Id: Ie84f41ab8ad032de5a31e4f566ec5b2358adcf37
2015-10-01basebmp: these headers are not used from other modulesMiklos Vajna30-19/+5483
Change-Id: I88c5c341b88a6ea62730e5d3dd1962365c531f70
2015-09-28basebmp: -headless -> --headlessMiklos Vajna1-1/+1
Change-Id: Iedabcbd3c2582472f56f003ab30298f656f2ac46
2015-09-13boost->stdCaolán McNamara1-18/+18
Change-Id: I9b4f884c6313a53fea543ea6f93175205351ad14 Reviewed-on: https://gerrit.libreoffice.org/18517 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-07-06loplugin:unusedmethods basebmpNoel Grandin1-7/+0
Change-Id: I9e89fea4e94a91edbbe355780c2a12d6e6cb6e4a Reviewed-on: https://gerrit.libreoffice.org/16728 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-04bmpmasktest was little-endian onlyCaolán McNamara1-3/+3
Change-Id: Icf362281c54509211b08c8bf5e29a0e31d9eb835
2015-06-20tdf#92194 - fix headless masking operations in vcl.Michael Meeks1-2/+64
These were causing horrible rendering artifacts for all manner of headless rendering across Android & Online. A very simple fix in vcl, plus a set of tests. Change-Id: Ib261c0ea29d79ee6415e164c0b9b098efb52458b
2015-06-04convert basegfx::FillRule to scoped enumNoel Grandin1-1/+1
and drop unused NONZERO_WINDING_NUMBER value Change-Id: If2a8f01934796eaf9a343113387b775fd169ccb9
2015-06-04convert basebmp::Format to scoped enumNoel Grandin10-107/+108
Change-Id: I6eb213d6dcf387936967271fba9e2de3879ef479
2015-06-04convert DrawMode to scoped enumNoel Grandin9-108/+108
Change-Id: Ie4a7705cc3d042d08178e562a2c2ffaf0be3810f
2015-06-01remove unused BASEBMP_NO_NESTED_TEMPLATE_PARAMETERNoel Grandin1-21/+0
Change-Id: I631b5fa984f5a59619aef62e38a503239989b253
2015-04-27More loplugin:simplifyboolStephan Bergmann1-1/+1
Change-Id: Ibf09e039fe3947ce68fa2a784ca81b6ff7b13d82
2015-04-22Various #include <sal/log.hxx> fixupsStephan Bergmann1-0/+1
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. Cleaned up some, but something like grep -FwL sal/log.hxx $(git grep -Elw \ 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF') -- \*.cxx) shows lots more files that potentially need fixing before the include can be removed from rtl/string.hxx and rtl/ustring.hxx. Change-Id: Ibf033363e83d37851776f392dc0b077381cd8b90
2015-03-31Reduce to static_cast any reinterpret_cast from void pointersStephan Bergmann1-1/+1
Change-Id: I88949a300ebff7c0c37ec147ca50f08695db7775
2015-03-29Clean up template-parameter-dependent C-style castsStephan Bergmann1-1/+1
Change-Id: Ia1ab134a0afbeeb3ae40264bd4233a47df26b734
2015-03-27loplugin:staticfunctionNoel Grandin1-2/+2
Change-Id: I982ba552579019e4902ae59fddf14a6b34ba5954
2015-03-24loplugin:constantfunction: variousNoel Grandin1-5/+0
Change-Id: I6eddda9f4b31c7ce413c328b6a857a81bd222eed
2015-03-23drawing a vertical/horizontal line does not really damage 0 width/height areasCaolán McNamara1-2/+18
so follow the same logic as drawPixel which equally does not damage a 0 width and height point Change-Id: Ie2c400caf1ad2e3a874f92c6f90f5f071f9c95e3
2015-02-25rename BGRU to BGRXCaolán McNamara2-8/+8
Change-Id: I0f28b986542b4d30c0a2cb75e15fb258af98e9cd
2015-02-25rename BGRX32 etc to BGRA32Caolán McNamara1-4/+4
Change-Id: I60e1951fe56e4b00ee0caa142eb0e19dcb6d12b7
2015-02-25give basebmp a cairo compatible 24 bit surfaceCaolán McNamara2-3/+8
where each unit is actually 32bit with unused upper 8bit. Change-Id: I5c406cebe406d2db6fda73d744dfd22a99b80ba3
2015-02-24make ScanlineStride an argument to createBitmapDeviceCaolán McNamara9-46/+91
so we could create bitmap devices that have the same stride that cairo expects, provide getBitmapDeviceStrideForWidth to get a default value Change-Id: I7ecc6f54a734b3f6bed59c699ac3b482c4ad7c47
2015-01-20Some more loplugin:cstylecast: basebmpStephan Bergmann1-1/+1
Change-Id: I7e1e37110b9bd53a5eae543c854cc2c434a6b678
2015-01-13basebmap: 5e4a7a95027d979b3bdd729d7ebe950da1129b2b missed COM checkMichael Stahl1-0/+2
Change-Id: I6850d69089c4d0db06a22e14888f089406980c2c
2015-01-13Fix number of sections exceeded object file format limitDavid Ostrovsky1-0/+13
Change-Id: If81ebef14696c856374967e984138fbd25218a8c Reviewed-on: https://gerrit.libreoffice.org/13879 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2014-10-14basebmp: accelerated method to create a clipping device.Michael Meeks1-4/+23
This was some staggering proportion of tiled rendering documents with complex clipping; it seems 'clear' is not what memset is for 1bit clip masks. Change-Id: I9142ffb7d7016603feb7782d6f03b9992b9494e3
2014-08-28Fixed some CppunitTest namesStephan Bergmann1-6/+6
Change-Id: I57b039c7114c03944e8eaba9ca1bb81da563640a
2014-08-28keep nScanlineStride number saneCaolán McNamara1-5/+8
bff + valgrind Change-Id: I255a052251a6a0f1e4005b9cfb3b6ce00c6653ee
2014-07-03Remove empty gb_Module_add_targets,basebmp,Matúš Kukan1-3/+0
Change-Id: I2e05aeb16707f8e8e17e5379f4cfa01a0c431e14
2014-06-02fdo#68849: Add header guards to all include filesJens Carl1-0/+5
added header guards for directories basebmp/, chart2/, cppuhelper/, include/test/, io/test/, sax/test, shell/, writerfilter/, and xmlhelp/ Change-Id: I0e29a9b75c26d71f58aa98986b52f6d3b46015a6 Reviewed-on: https://gerrit.libreoffice.org/9615 Reviewed-by: Thomas Arnhold <thomas@arnhold.org> Tested-by: Thomas Arnhold <thomas@arnhold.org>
2014-04-19fixincludeguards.sh: basebmpThomas Arnhold1-3/+3
2014-04-19Remove gcc3 workaround for bug long since fixed in gccChris Sherlock1-4/+2
Change-Id: Ieb1c41481a79ab8713663caee3d5373640ff0ec8 Reviewed-on: https://gerrit.libreoffice.org/9102 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Tested-by: Chris Sherlock <chris.sherlock79@gmail.com> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2014-04-09Missing includeStephan Bergmann1-0/+2
Change-Id: I7c3631fc8154daffa4236a16c761df85eba34de8
2014-03-29typo: optimisation -> optimizationThomas Arnhold1-1/+1
2014-03-26First batch of adding SAL_OVERRRIDE to overriding function declarationsStephan Bergmann8-29/+29
...mostly done with a rewriting Clang plugin, with just some manual tweaking necessary to fix poor macro usage. Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
2014-02-27Drop deserted bmpdemoTakeshi Abe1-1230/+0
since 2007; https://issues.apache.org/ooo/show_bug.cgi?id=79031 Change-Id: Ie12d88a343591dee4c8c7411b356be2ca3311f29
2014-02-23Remove unneccessary commentsAlexander Wilms2-20/+20
Change-Id: I939160ae72fecbe3d4a60ce755730bd4c38497fb Reviewed-on: https://gerrit.libreoffice.org/8182 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-01-27coverity#1078535 Division or modulo by zeroCaolán McNamara1-2/+10
Change-Id: Iab9bb56ce7646955d2592d7e9abdaf829ee1ec78
2013-11-11basebmp: include <> for external includesNorbert Thiebaud12-50/+50
Change-Id: I6f1f573662d5e759694c401598408df9fbb20be8
2013-10-31Resolves: #i123433# Detect pseudo-vertices at svg import...Armin Le Grand7-16/+22
unify svg:d handling, correct svg:d import for relative sub-polygons in svg import; changed default for moveto writes for svg:d in ODF to absolute (cherry picked from commit f15874d8f976f3874bdbcb53429eeefa65c28841) Conflicts: basegfx/inc/basegfx/polygon/b2dpolygontools.hxx basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx basegfx/inc/basegfx/polygon/b3dpolypolygontools.hxx basegfx/source/polygon/b2dpolypolygontools.cxx basegfx/source/polygon/b2dsvgpolypolygon.cxx basegfx/source/polygon/b3dpolypolygontools.cxx basegfx/source/tools/makefile.mk basegfx/test/boxclipper.cxx basegfx/test/clipstate.cxx basegfx/test/genericclipper.cxx canvas/source/tools/surfaceproxy.cxx sdext/source/pdfimport/tree/drawtreevisiting.cxx sdext/source/pdfimport/tree/writertreevisiting.cxx xmloff/inc/xexptran.hxx xmloff/source/draw/XMLImageMapContext.cxx xmloff/source/draw/XMLImageMapExport.cxx xmloff/source/draw/shapeexport2.cxx xmloff/source/draw/shapeexport3.cxx xmloff/source/draw/xexptran.cxx xmloff/source/draw/ximp3dobject.cxx xmloff/source/draw/ximpshap.cxx xmloff/source/style/MarkerStyle.cxx xmloff/source/text/XMLTextFrameContext.cxx xmloff/source/text/txtparae.cxx Change-Id: I5171b4a3559ea116bea45152e1f2685666463635
2013-10-08Hanlde TopDown -> BottomUp conversion in basebmp DirectCopy logictsahi glik1-4/+18
Change-Id: Ic6b94e8f01c0151741626f8b50d69597cc401852 Reviewed-on: https://gerrit.libreoffice.org/6155 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2013-09-27Off-by-one errorStephan Bergmann1-2/+2
Change-Id: I84749158fb8dee3fec10869e0955177bbd917d59
2013-09-27Improve performance of copyArea(), especially relevant for mobile devices.tsahi glik1-21/+66
vigra::copyImage89 does not handle copy areas in the same image so the code checks whether the src and dst are same buffer and directs it to scaleImage() which is very slow. The whole concept of pixel accessors is a huge overhead in the case of direct pixel copy (vigra::copyImage is also using pixel accessors). The idea here is to identify when direct memory copy is applicable (when the format is an integral number of bytes per pixel, src.size==dst.size, and src.format==dst.format) and use direct memory block copy and not pixel-wise copy. The result is 100x faster than the vigra implementation. This direct copy is also handling the case when the src and dst are same buffer by copy it from bottom to top when needed and using memmove() instead of memcpy(). Change-Id: I8ec589463d6386db82777a916371a5ebbf9e2d50 Reviewed-on: https://gerrit.libreoffice.org/5707 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2013-07-18fdo#62475 removed pointless commentsJelle van der Waa3-9/+0
Change-Id: I85bee68e89c41642b2da72e11b695588b3dfe346