diff options
author | 2024-11-14 06:02:45 +0000 | |
---|---|---|
committer | 2024-11-14 06:03:16 +0000 | |
commit | ea12150b5b386d36312ff178b43c780a78f901b0 (patch) | |
tree | 020899a677ee4578386aa852c57715a1f620501a /graphics/java | |
parent | d0e4ee2fc64240bfeb8c4f1024ae3fe0e18fd976 (diff) |
guard new Xfermode API usage in Paint
Flag: com.android.graphics.hwui.flags.runtime_color_filters_blenders
Test: atest CtsUiRenderingTestCases:RuntimeXfermodeTests
Bug: b/358126864
Change-Id: I74088b551eb4b313d81310e2cfaceaeeee1b8cda
Diffstat (limited to 'graphics/java')
-rw-r--r-- | graphics/java/android/graphics/Paint.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 2c166c32ba50..9bf4d65e1865 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -836,11 +836,13 @@ public class Paint { mNativeColorFilter = newNativeColorFilter; nSetColorFilter(mNativePaint, mNativeColorFilter); } - if (mXfermode instanceof RuntimeXfermode) { - long newNativeXfermode = ((RuntimeXfermode) mXfermode).createNativeInstance(); - if (newNativeXfermode != mNativeXfermode) { - mNativeXfermode = newNativeXfermode; - nSetXfermode(mNativePaint, mNativeXfermode); + if (com.android.graphics.hwui.flags.Flags.runtimeColorFiltersBlenders()) { + if (mXfermode instanceof RuntimeXfermode) { + long newNativeXfermode = ((RuntimeXfermode) mXfermode).createNativeInstance(); + if (newNativeXfermode != mNativeXfermode) { + mNativeXfermode = newNativeXfermode; + nSetXfermode(mNativePaint, mNativeXfermode); + } } } return mNativePaint; @@ -1470,10 +1472,12 @@ public class Paint { @Nullable private Xfermode installXfermode(Xfermode xfermode) { - if (xfermode instanceof RuntimeXfermode) { - mXfermode = xfermode; - nSetXfermode(mNativePaint, ((RuntimeXfermode) xfermode).createNativeInstance()); - return xfermode; + if (com.android.graphics.hwui.flags.Flags.runtimeColorFiltersBlenders()) { + if (xfermode instanceof RuntimeXfermode) { + mXfermode = xfermode; + nSetXfermode(mNativePaint, ((RuntimeXfermode) xfermode).createNativeInstance()); + return xfermode; + } } int newMode = (xfermode instanceof PorterDuffXfermode) ? ((PorterDuffXfermode) xfermode).porterDuffMode : PorterDuffXfermode.DEFAULT; |