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

Commit a5408e61 authored by John Reck's avatar John Reck
Browse files

Pipe down isHardwareAccelerated

Change-Id: I19285ea03409279aea09f9e44a1870364762f877
parent 4513bc0f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Picture;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
@@ -1955,4 +1956,10 @@ public class WebView extends AbsoluteLayout
    public void setBackgroundColor(int color) {
        mProvider.getViewDelegate().setBackgroundColor(color);
    }

    @Override
    public void setLayerType(int layerType, Paint paint) {
        super.setLayerType(layerType, paint);
        mProvider.getViewDelegate().setLayerType(layerType, paint);
    }
}
+28 −0
Original line number Diff line number Diff line
@@ -5561,6 +5561,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
        addAccessibilityApisToJavaScript();

        mTouchEventQueue.reset();
        updateHwAccelerated();
    }

    @Override
@@ -5580,6 +5581,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
        }

        removeAccessibilityApisFromJavaScript();
        updateHwAccelerated();
    }

    @Override
@@ -9232,6 +9234,30 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
        nativeDiscardAllTextures();
    }

    @Override
    public void setLayerType(int layerType, Paint paint) {
        updateHwAccelerated();
    }

    private void updateHwAccelerated() {
        if (mNativeClass == 0) {
            return;
        }
        boolean hwAccelerated = false;
        if (mWebView.isHardwareAccelerated()
                && mWebView.getLayerType() != View.LAYER_TYPE_SOFTWARE) {
            hwAccelerated = true;
        }
        int result = nativeSetHwAccelerated(mNativeClass, hwAccelerated);
        if (mWebViewCore == null || mBlockWebkitViewMessages) {
            return;
        }
        if (result == 1) {
            // Sync layers
            mWebViewCore.layersDraw();
        }
    }

    /**
     * Begin collecting per-tile profiling data
     *
@@ -9353,4 +9379,6 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
    private static native boolean nativeIsBaseFirst(int instance);
    private static native void nativeMapLayerRect(int instance, int layerId,
            Rect rect);
    // Returns 1 if a layer sync is needed, else 0
    private static native int nativeSetHwAccelerated(int instance, boolean hwAccelerated);
}
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.webkit;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Picture;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
@@ -333,6 +334,8 @@ public interface WebViewProvider {
        public boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate);

        public void setBackgroundColor(int color);

        public void setLayerType(int layerType, Paint paint);
    }

    interface ScrollDelegate {