summaryrefslogtreecommitdiff
path: root/libs/input/SpriteController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/input/SpriteController.cpp')
-rw-r--r--libs/input/SpriteController.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/input/SpriteController.cpp b/libs/input/SpriteController.cpp
index 8613a3b07bb5..ed31b1202863 100644
--- a/libs/input/SpriteController.cpp
+++ b/libs/input/SpriteController.cpp
@@ -405,7 +405,11 @@ void SpriteController::SpriteImpl::setIcon(const SpriteIcon& icon) {
uint32_t dirty;
if (icon.isValid()) {
- icon.bitmap.copyTo(&mLocked.state.icon.bitmap, kN32_SkColorType);
+ SkBitmap* bitmapCopy = &mLocked.state.icon.bitmap;
+ if (bitmapCopy->tryAllocPixels(icon.bitmap.info().makeColorType(kN32_SkColorType))) {
+ icon.bitmap.readPixels(bitmapCopy->info(), bitmapCopy->getPixels(),
+ bitmapCopy->rowBytes(), 0, 0);
+ }
if (!mLocked.state.icon.isValid()
|| mLocked.state.icon.hotSpotX != icon.hotSpotX