diff options
Diffstat (limited to 'graphics/java/android/graphics/drawable/RippleComponent.java')
-rw-r--r-- | graphics/java/android/graphics/drawable/RippleComponent.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/graphics/java/android/graphics/drawable/RippleComponent.java b/graphics/java/android/graphics/drawable/RippleComponent.java index 23a3ee3..2d378c6 100644 --- a/graphics/java/android/graphics/drawable/RippleComponent.java +++ b/graphics/java/android/graphics/drawable/RippleComponent.java @@ -52,9 +52,16 @@ abstract class RippleComponent { /** Screen density used to adjust pixel-based constants. */ protected float mDensity; - public RippleComponent(RippleDrawable owner, Rect bounds) { + /** + * If set, force all ripple animations to not run on RenderThread, even if it would be + * available. + */ + private final boolean mForceSoftware; + + public RippleComponent(RippleDrawable owner, Rect bounds, boolean forceSoftware) { mOwner = owner; mBounds = bounds; + mForceSoftware = forceSoftware; } public void onBoundsChange() { @@ -143,7 +150,7 @@ abstract class RippleComponent { * @return {@code true} if something was drawn, {@code false} otherwise */ public boolean draw(Canvas c, Paint p) { - final boolean hasDisplayListCanvas = c.isHardwareAccelerated() + final boolean hasDisplayListCanvas = !mForceSoftware && c.isHardwareAccelerated() && c instanceof DisplayListCanvas; if (mHasDisplayListCanvas != hasDisplayListCanvas) { mHasDisplayListCanvas = hasDisplayListCanvas; |