From e210a6f5033944614499a1708be2fa5559479e37 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 5 Sep 2017 18:23:50 +0300 Subject: Add function for draw rescaled animated sprite. --- src/resources/sprite/animatedsprite.cpp | 21 +++++++++++++++++++++ src/resources/sprite/animatedsprite.h | 6 ++++++ 2 files changed, 27 insertions(+) (limited to 'src/resources/sprite') diff --git a/src/resources/sprite/animatedsprite.cpp b/src/resources/sprite/animatedsprite.cpp index 30eb4dda3..9d7186335 100644 --- a/src/resources/sprite/animatedsprite.cpp +++ b/src/resources/sprite/animatedsprite.cpp @@ -338,6 +338,27 @@ void AnimatedSprite::draw(Graphics *restrict const graphics, posX + mFrame->offsetX, posY + mFrame->offsetY); } +void AnimatedSprite::drawRescaled(Graphics *restrict const graphics, + const int posX, + const int posY, + const int dx, + const int dy) const restrict2 +{ + if (mFrame == nullptr || + mFrame->image == nullptr) + { + return; + } + + Image *restrict const image = mFrame->image; + image->setAlpha(mAlpha); + graphics->drawRescaledImage(image, + posX + mFrame->offsetX, + posY + mFrame->offsetY, + dx, + dy); +} + void AnimatedSprite::drawRaw(Graphics *restrict const graphics, const int posX, const int posY) const restrict2 diff --git a/src/resources/sprite/animatedsprite.h b/src/resources/sprite/animatedsprite.h index 259b6fe84..01a142f31 100644 --- a/src/resources/sprite/animatedsprite.h +++ b/src/resources/sprite/animatedsprite.h @@ -74,6 +74,12 @@ class AnimatedSprite final : public Sprite const int posX, const int posY) const restrict2 override final A_NONNULL(2); + void drawRescaled(Graphics *restrict const graphics, + const int posX, + const int posY, + const int dx, + const int dy) const restrict2 A_NONNULL(2); + void drawRaw(Graphics *restrict const graphics, const int posX, const int posY) const restrict2 A_NONNULL(2); -- cgit v1.2.3-70-g09d2