Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea12150b authored by Jorge Betancourt's avatar Jorge Betancourt
Browse files

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
parent d0e4ee2f
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -836,6 +836,7 @@ public class Paint {
            mNativeColorFilter = newNativeColorFilter;
            nSetColorFilter(mNativePaint, mNativeColorFilter);
        }
        if (com.android.graphics.hwui.flags.Flags.runtimeColorFiltersBlenders()) {
            if (mXfermode instanceof RuntimeXfermode) {
                long newNativeXfermode = ((RuntimeXfermode) mXfermode).createNativeInstance();
                if (newNativeXfermode != mNativeXfermode) {
@@ -843,6 +844,7 @@ public class Paint {
                    nSetXfermode(mNativePaint, mNativeXfermode);
                }
            }
        }
        return mNativePaint;
    }

@@ -1470,11 +1472,13 @@ public class Paint {

    @Nullable
    private Xfermode installXfermode(Xfermode 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;
        int curMode = (mXfermode instanceof PorterDuffXfermode)