Remove uses of SkBitmap::copyTo
This API is being deleted:
skbug.com/6464
Test: Refactor
Change-Id: Id78653ca45d6bfee2e4f9c9c24c2414b888f0df5
diff --git a/libs/input/SpriteController.cpp b/libs/input/SpriteController.cpp
index 8613a3b..ed31b12 100644
--- a/libs/input/SpriteController.cpp
+++ b/libs/input/SpriteController.cpp
@@ -405,7 +405,11 @@
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
diff --git a/libs/input/SpriteController.h b/libs/input/SpriteController.h
index 7fc8d6f..31e43e9 100644
--- a/libs/input/SpriteController.h
+++ b/libs/input/SpriteController.h
@@ -65,7 +65,10 @@
inline SpriteIcon copy() const {
SkBitmap bitmapCopy;
- bitmap.copyTo(&bitmapCopy, kN32_SkColorType);
+ if (bitmapCopy.tryAllocPixels(bitmap.info().makeColorType(kN32_SkColorType))) {
+ bitmap.readPixels(bitmapCopy.info(), bitmapCopy.getPixels(), bitmapCopy.rowBytes(),
+ 0, 0);
+ }
return SpriteIcon(bitmapCopy, hotSpotX, hotSpotY);
}
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index 8baa96b..1b0d208 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -157,7 +157,12 @@
status_t status = android_view_PointerIcon_loadSystemIcon(env,
contextObj, style, outPointerIcon);
if (!status) {
- outPointerIcon->bitmap.copyTo(&outSpriteIcon->bitmap, kN32_SkColorType);
+ SkBitmap* bitmapCopy = &outSpriteIcon->bitmap;
+ SkImageInfo bitmapCopyInfo = outPointerIcon->bitmap.info().makeColorType(kN32_SkColorType);
+ if (bitmapCopy->tryAllocPixels(bitmapCopyInfo)) {
+ outPointerIcon->bitmap.readPixels(bitmapCopy->info(), bitmapCopy->getPixels(),
+ bitmapCopy->rowBytes(), 0, 0);
+ }
outSpriteIcon->hotSpotX = outPointerIcon->hotSpotX;
outSpriteIcon->hotSpotY = outPointerIcon->hotSpotY;
}