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

Commit 02a2aab5 authored by John Reck's avatar John Reck
Browse files

Always do simple path detection

 HardwareRenderer.isAvailable() only returns false under an emulator
 As such eliminate Path's dependency on the HardwareRenderer by
 always doing simple path detection. The only drawback is a bit of
 wasted work in the emulator.

Change-Id: I89d452bd24a6c6751ed8017c13a9e97f8a1a940d
parent fe273728
Loading
Loading
Loading
Loading
+12 −23
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package android.graphics;

import android.view.HardwareRenderer;

/**
 * The Path class encapsulates compound (multiple contour) geometric paths
 * consisting of straight line segments, quadratic curves, and cubic curves.
@@ -39,7 +37,6 @@ public class Path {
     * @hide
     */
    public Region rects;
    private boolean mDetectSimplePaths;
    private Direction mLastDirection = null;

    /**
@@ -47,7 +44,6 @@ public class Path {
     */
    public Path() {
        mNativePath = init1();
        mDetectSimplePaths = HardwareRenderer.isAvailable();
    }

    /**
@@ -65,7 +61,6 @@ public class Path {
            }
        }
        mNativePath = init2(valNative);
        mDetectSimplePaths = HardwareRenderer.isAvailable();
    }
    
    /**
@@ -74,10 +69,8 @@ public class Path {
     */
    public void reset() {
        isSimplePath = true;
        if (mDetectSimplePaths) {
        mLastDirection = null;
        if (rects != null) rects.setEmpty();
        }
        // We promised not to change this, so preserve it around the native
        // call, which does now reset fill type.
        final FillType fillType = getFillType();
@@ -91,10 +84,8 @@ public class Path {
     */
    public void rewind() {
        isSimplePath = true;
        if (mDetectSimplePaths) {
        mLastDirection = null;
        if (rects != null) rects.setEmpty();
        }
        native_rewind(mNativePath);
    }

@@ -475,7 +466,6 @@ public class Path {
    }
    
    private void detectSimplePath(float left, float top, float right, float bottom, Direction dir) {
        if (mDetectSimplePaths) {
        if (mLastDirection == null) {
            mLastDirection = dir;
        }
@@ -486,7 +476,6 @@ public class Path {
            rects.op((int) left, (int) top, (int) right, (int) bottom, Region.Op.UNION);
        }
    }
    }

    /**
     * Add a closed rectangle contour to the path