void SpriteController::SpriteImpl::setIcon(const SpriteIcon& icon) { AutoMutex _l(mController->mLock); uint32_t dirty; if (icon.isValid()) { icon.bitmap.copyTo(&mLocked.state.icon.bitmap, kN32_SkColorType); if (!mLocked.state.icon.isValid() || mLocked.state.icon.hotSpotX != icon.hotSpotX || mLocked.state.icon.hotSpotY != icon.hotSpotY) { mLocked.state.icon.hotSpotX = icon.hotSpotX; mLocked.state.icon.hotSpotY = icon.hotSpotY; dirty = DIRTY_BITMAP | DIRTY_HOTSPOT; } else { dirty = DIRTY_BITMAP; } } else if (mLocked.state.icon.isValid()) { mLocked.state.icon.bitmap.reset(); dirty = DIRTY_BITMAP | DIRTY_HOTSPOT; } else { return; // setting to invalid icon and already invalid so nothing to do } invalidateLocked(dirty); }
void SpriteController::SpriteImpl::setIcon(const SpriteIcon& icon) { AutoMutex _l(mController->mLock); #ifdef HAVE_ANDROID_OS uint32_t dirty; if (icon.isValid()) { icon.bitmap.copyTo(&mLocked.state.icon.bitmap, SkBitmap::kARGB_8888_Config); if (!mLocked.state.icon.isValid() || mLocked.state.icon.hotSpotX != icon.hotSpotX || mLocked.state.icon.hotSpotY != icon.hotSpotY) { mLocked.state.icon.hotSpotX = icon.hotSpotX; mLocked.state.icon.hotSpotY = icon.hotSpotY; dirty = DIRTY_BITMAP | DIRTY_HOTSPOT; } else { dirty = DIRTY_BITMAP; } } else if (mLocked.state.icon.isValid()) { mLocked.state.icon.bitmap.reset(); dirty = DIRTY_BITMAP | DIRTY_HOTSPOT; } else { return; // setting to invalid icon and already invalid so nothing to do } invalidateLocked(dirty); #endif }
void PointerController::setPointerIcon(const SpriteIcon& icon) { AutoMutex _l(mLock); mLocked.pointerIcon = icon.copy(); mLocked.pointerIconChanged = true; updatePointerLocked(); }