[aseprite] 94/196: Add RotSprite as a resize algorithm on Sprite > Resize Sprite menu
Tobias Hansen
thansen at moszumanska.debian.org
Wed Apr 20 18:50:06 UTC 2016
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository aseprite.
commit 66e3cacbd04e40797bf35cd0f67ac858edb62673
Author: David Capello <davidcapello at gmail.com>
Date: Tue Mar 22 17:02:41 2016 -0300
Add RotSprite as a resize algorithm on Sprite > Resize Sprite menu
---
src/app/commands/cmd_sprite_size.cpp | 14 +++++++++++---
src/doc/algorithm/resize_image.cpp | 16 +++++++++++++---
src/doc/algorithm/resize_image.h | 3 ++-
3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/src/app/commands/cmd_sprite_size.cpp b/src/app/commands/cmd_sprite_size.cpp
index 4f1cdff..04bce4f 100644
--- a/src/app/commands/cmd_sprite_size.cpp
+++ b/src/app/commands/cmd_sprite_size.cpp
@@ -1,5 +1,5 @@
// Aseprite
-// Copyright (C) 2001-2015 David Capello
+// Copyright (C) 2001-2016 David Capello
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@@ -168,10 +168,16 @@ public:
widthPx()->setTextf("%d", new_width);
heightPx()->setTextf("%d", new_height);
+ static_assert(doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR == 0 &&
+ doc::algorithm::RESIZE_METHOD_BILINEAR == 1 &&
+ doc::algorithm::RESIZE_METHOD_ROTSPRITE == 2,
+ "ResizeMethod enum has changed");
method()->addItem("Nearest-neighbor");
method()->addItem("Bilinear");
- method()->setSelectedItemIndex(get_config_int("SpriteSize", "Method",
- doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR));
+ method()->addItem("RotSprite");
+ method()->setSelectedItemIndex(
+ get_config_int("SpriteSize", "Method",
+ doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR));
}
private:
@@ -279,6 +285,8 @@ void SpriteSizeCommand::onLoadParams(const Params& params)
if (!resize_method.empty()) {
if (resize_method == "bilinear")
m_resizeMethod = doc::algorithm::RESIZE_METHOD_BILINEAR;
+ else if (resize_method == "rotsprite")
+ m_resizeMethod = doc::algorithm::RESIZE_METHOD_ROTSPRITE;
else
m_resizeMethod = doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR;
}
diff --git a/src/doc/algorithm/resize_image.cpp b/src/doc/algorithm/resize_image.cpp
index 16fed96..d57bd4c 100644
--- a/src/doc/algorithm/resize_image.cpp
+++ b/src/doc/algorithm/resize_image.cpp
@@ -1,5 +1,5 @@
// Aseprite Document Library
-// Copyright (c) 2001-2015 David Capello
+// Copyright (c) 2001-2016 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@@ -10,6 +10,7 @@
#include "doc/algorithm/resize_image.h"
+#include "doc/algorithm/rotsprite.h"
#include "doc/image_impl.h"
#include "doc/palette.h"
#include "doc/rgbmap.h"
@@ -23,8 +24,7 @@ void resize_image(const Image* src, Image* dst, ResizeMethod method, const Palet
switch (method) {
// TODO optimize this
- case RESIZE_METHOD_NEAREST_NEIGHBOR:
- {
+ case RESIZE_METHOD_NEAREST_NEIGHBOR: {
int o_width = src->width(), o_height = src->height();
int n_width = dst->width(), n_height = dst->height();
double x_ratio = o_width / (double)n_width;
@@ -141,6 +141,16 @@ void resize_image(const Image* src, Image* dst, ResizeMethod method, const Palet
break;
}
+ case RESIZE_METHOD_ROTSPRITE: {
+ rotsprite_image(
+ dst, src, nullptr,
+ 0, 0,
+ dst->width(), 0,
+ dst->width(), dst->height(),
+ 0, dst->height());
+ break;
+ }
+
}
}
diff --git a/src/doc/algorithm/resize_image.h b/src/doc/algorithm/resize_image.h
index ee7a085..fa4b069 100644
--- a/src/doc/algorithm/resize_image.h
+++ b/src/doc/algorithm/resize_image.h
@@ -1,5 +1,5 @@
// Aseprite Document Library
-// Copyright (c) 2001-2015 David Capello
+// Copyright (c) 2001-2016 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@@ -21,6 +21,7 @@ namespace doc {
enum ResizeMethod {
RESIZE_METHOD_NEAREST_NEIGHBOR,
RESIZE_METHOD_BILINEAR,
+ RESIZE_METHOD_ROTSPRITE,
};
// Resizes the source image 'src' to the destination image 'dst'.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git
More information about the Pkg-games-commits
mailing list