Loading libs/input/SpriteController.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -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 Loading libs/input/SpriteController.h +4 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,10 @@ struct SpriteIcon { 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); } Loading services/core/jni/com_android_server_input_InputManagerService.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,12 @@ static void loadSystemIconAsSpriteWithPointerIcon(JNIEnv* env, jobject contextOb 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; } Loading Loading
libs/input/SpriteController.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
libs/input/SpriteController.h +4 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,10 @@ struct SpriteIcon { 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); } Loading
services/core/jni/com_android_server_input_InputManagerService.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,12 @@ static void loadSystemIconAsSpriteWithPointerIcon(JNIEnv* env, jobject contextOb 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; } Loading