This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit ce02a31c013c3418cc570740fa8addfaaa8ce3b7 Author: David Capello <[email protected]> Date: Tue Mar 22 18:23:03 2016 -0300 Improve image_scale_tpl() performance using an iterator for source image --- src/doc/algorithm/rotate.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/doc/algorithm/rotate.cpp b/src/doc/algorithm/rotate.cpp index 4f8d8d2..c86b9cc 100644 --- a/src/doc/algorithm/rotate.cpp +++ b/src/doc/algorithm/rotate.cpp @@ -47,21 +47,32 @@ static void image_scale_tpl( { LockImageBits<ImageTraits> dst_bits(dst, gfx::Rect(dst_x, dst_y, dst_w, dst_h)); typename LockImageBits<ImageTraits>::iterator dst_it = dst_bits.begin(); - fixed x; + fixed x, first_x = itofix(src_x); fixed y = itofix(src_y); fixed dx = fixdiv(itofix(src_w-1), itofix(dst_w-1)); fixed dy = fixdiv(itofix(src_h-1), itofix(dst_h-1)); + int old_x, new_x; for (int v=0; v<dst_h; ++v) { - x = itofix(src_x); + old_x = fixtoi(x = first_x); + + const LockImageBits<ImageTraits> src_bits(src, gfx::Rect(src_x, fixtoi(y), src_w, 1)); + auto src_it = src_bits.begin(); + for (int u=0; u<dst_w; ++u) { ASSERT(dst_it != dst_bits.end()); - color_t src_color = get_pixel_fast<ImageTraits>(src, fixtoi(x), fixtoi(y)); - *dst_it = blend(*dst_it, src_color); + + *dst_it = blend(*dst_it, *src_it); ++dst_it; x = fixadd(x, dx); + new_x = fixtoi(x); + if (old_x != new_x) { + src_it += (new_x - old_x); + old_x = new_x; + } } + y = fixadd(y, dy); } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

