summaryrefslogtreecommitdiff
path: root/extensions/AllLangResTarget_pcr.mk
diff options
context:
space:
mode:
authortsahi glik <tsahi.glik@cloudon.com>2013-08-30 19:29:50 -0700
committerTor Lillqvist <tml@collabora.com>2013-09-27 14:47:10 +0000
commit3ea2ce9dacc88c664418e9aa13dc87afcaed9e5a (patch)
tree6532f25fbfe1d28515c161017ffdef9e6ffc7083 /extensions/AllLangResTarget_pcr.mk
parent0d7b7d3366fe957632c3f0003fc6d6333c861b9f (diff)
Improve performance of copyArea(), especially relevant for mobile devices.
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>
Diffstat (limited to 'extensions/AllLangResTarget_pcr.mk')
0 files changed, 0 insertions, 0 deletions