Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2315)

Unified Diff: android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java

Issue 524933002: Revert of android: Use hw acceleration in android_webview_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/test/shell/src/org/chromium/android_webview/shell/DrawGL.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java
diff --git a/android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java b/android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java
index e853957f3c8657cfd9fa323712f89da28f2f2a02..153a280afe4adb5b86cad42a44a64cd77ea21e42 100644
--- a/android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java
+++ b/android_webview/test/shell/src/org/chromium/android_webview/test/AwTestContainerView.java
@@ -7,13 +7,10 @@
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Canvas;
-import android.graphics.PixelFormat;
import android.graphics.Rect;
-import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
-import android.view.SurfaceHolder;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
@@ -23,11 +20,7 @@
import android.widget.FrameLayout;
import org.chromium.android_webview.AwContents;
-import org.chromium.android_webview.shell.DrawGL;
import org.chromium.content.browser.ContentViewCore;
-
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.opengles.GL10;
/**
* A View used for testing the AwContents internals.
@@ -39,180 +32,8 @@
private AwContents.NativeGLDelegate mNativeGLDelegate;
private AwContents.InternalAccessDelegate mInternalAccessDelegate;
- HardwareView mHardwareView = null;
- private boolean mAttachedContents = false;
-
- private class HardwareView extends GLSurfaceView {
- private static final int MODE_DRAW = 0;
- private static final int MODE_PROCESS = 1;
- private static final int MODE_PROCESS_NO_CONTEXT = 2;
- private static final int MODE_SYNC = 3;
-
- // mSyncLock is used to synchronized requestRender on the UI thread
- // and drawGL on the rendering thread. The variables following
- // are protected by it.
- private final Object mSyncLock = new Object();
- private boolean mNeedsProcessGL = false;
- private boolean mNeedsDrawGL = false;
- private boolean mWaitForCompletion = false;
- private int mLastScrollX = 0;
- private int mLastScrollY = 0;
-
- private int mCommittedScrollX = 0;
- private int mCommittedScrollY = 0;
-
- private boolean mHaveSurface = false;
- private Runnable mReadyToRenderCallback = null;
-
- private long mDrawGL = 0;
- private long mViewContext = 0;
-
- public HardwareView(Context context) {
- super(context);
- setEGLContextClientVersion(2); // GLES2
- getHolder().setFormat(PixelFormat.OPAQUE);
- setPreserveEGLContextOnPause(true);
- setRenderer(new Renderer() {
- private int mWidth = 0;
- private int mHeight = 0;
-
- @Override
- public void onDrawFrame(GL10 gl) {
- HardwareView.this.drawGL(mWidth, mHeight);
- }
-
- @Override
- public void onSurfaceChanged(GL10 gl, int width, int height) {
- gl.glViewport(0, 0, width, height);
- gl.glScissor(0, 0, width, height);
- mWidth = width;
- mHeight = height;
- }
-
- @Override
- public void onSurfaceCreated(GL10 gl, EGLConfig config) {
- }
- });
-
- setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
- }
-
- public void initialize(long drawGL, long viewContext) {
- mDrawGL = drawGL;
- mViewContext = viewContext;
- }
-
- public boolean isReadyToRender() {
- return mHaveSurface;
- }
-
- public void setReadyToRenderCallback(Runnable runner) {
- assert !isReadyToRender() || runner == null;
- mReadyToRenderCallback = runner;
- }
-
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- boolean didHaveSurface = mHaveSurface;
- mHaveSurface = true;
- if (!didHaveSurface && mReadyToRenderCallback != null) {
- mReadyToRenderCallback.run();
- mReadyToRenderCallback = null;
- }
- super.surfaceCreated(holder);
- }
-
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- mHaveSurface = false;
- super.surfaceDestroyed(holder);
- }
-
- public void updateScroll(int x, int y) {
- synchronized (mSyncLock) {
- mLastScrollX = x;
- mLastScrollY = y;
- }
- }
-
- public void requestRender(Canvas canvas, boolean waitForCompletion) {
- synchronized (mSyncLock) {
- super.requestRender();
- mWaitForCompletion = waitForCompletion;
- if (canvas == null) {
- mNeedsProcessGL = true;
- } else {
- mNeedsDrawGL = true;
- if (!waitForCompletion) {
- // Wait until SYNC is complete only.
- // Do this every time there was a new frame.
- try {
- while (mNeedsDrawGL) {
- mSyncLock.wait();
- }
- } catch (InterruptedException e) {
- // ...
- }
- }
- }
- if (waitForCompletion) {
- try {
- while (mWaitForCompletion) {
- mSyncLock.wait();
- }
- } catch (InterruptedException e) {
- // ...
- }
- }
- }
- }
-
- public void drawGL(int width, int height) {
- final boolean draw;
- final boolean process;
- final boolean waitForCompletion;
-
- synchronized (mSyncLock) {
- draw = mNeedsDrawGL;
- process = mNeedsProcessGL;
- waitForCompletion = mWaitForCompletion;
-
- if (draw) {
- DrawGL.drawGL(mDrawGL, mViewContext, width, height, 0, 0, MODE_SYNC);
- mCommittedScrollX = mLastScrollX;
- mCommittedScrollY = mLastScrollY;
- }
- mNeedsDrawGL = false;
- mNeedsProcessGL = false;
- if (!waitForCompletion) {
- mSyncLock.notifyAll();
- }
- }
- if (draw) {
- DrawGL.drawGL(mDrawGL, mViewContext, width, height,
- mCommittedScrollX, mCommittedScrollY, MODE_DRAW);
- } else if (process) {
- DrawGL.drawGL(mDrawGL, mViewContext, width, height, 0, 0, MODE_PROCESS);
- }
-
- if (waitForCompletion) {
- synchronized (mSyncLock) {
- mWaitForCompletion = false;
- mSyncLock.notifyAll();
- }
- }
- }
- }
-
- public AwTestContainerView(Context context, boolean hardwareAccelerated) {
+ public AwTestContainerView(Context context) {
super(context);
- if (hardwareAccelerated) {
- mHardwareView = new HardwareView(context);
- addView(mHardwareView,
- new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.MATCH_PARENT));
- }
mNativeGLDelegate = new NativeGLDelegate();
mInternalAccessDelegate = new InternalAccessAdapter();
setOverScrollMode(View.OVER_SCROLL_ALWAYS);
@@ -222,11 +43,6 @@
public void initialize(AwContents awContents) {
mAwContents = awContents;
- if (mHardwareView != null) {
- System.loadLibrary("drawgl");
- mHardwareView.initialize(
- mAwContents.getAwDrawGLFunction(), mAwContents.getAwDrawGLViewContext());
- }
}
public ContentViewCore getContentViewCore() {
@@ -258,28 +74,13 @@
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
- if (mHardwareView == null || mHardwareView.isReadyToRender()) {
- mAwContents.onAttachedToWindow();
- mAttachedContents = true;
- } else {
- mHardwareView.setReadyToRenderCallback(new Runnable() {
- public void run() {
- assert !mAttachedContents;
- mAwContents.onAttachedToWindow();
- mAttachedContents = true;
- }
- });
- }
+ mAwContents.onAttachedToWindow();
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
mAwContents.onDetachedFromWindow();
- if (mHardwareView != null) {
- mHardwareView.setReadyToRenderCallback(null);
- }
- mAttachedContents = false;
}
@Override
@@ -306,7 +107,6 @@
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
mAwContents.onMeasure(widthMeasureSpec, heightMeasureSpec);
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
@@ -353,9 +153,6 @@
@Override
public void onDraw(Canvas canvas) {
- if (mHardwareView != null) {
- mHardwareView.updateScroll(getScrollX(), getScrollY());
- }
mAwContents.onDraw(canvas);
super.onDraw(canvas);
}
@@ -386,13 +183,11 @@
return mAwContents.performAccessibilityAction(action, arguments);
}
- private class NativeGLDelegate implements AwContents.NativeGLDelegate {
+ private static class NativeGLDelegate implements AwContents.NativeGLDelegate {
@Override
public boolean requestDrawGL(Canvas canvas, boolean waitForCompletion,
View containerview) {
- if (mHardwareView == null) return false;
- mHardwareView.requestRender(canvas, waitForCompletion);
- return true;
+ return false;
}
@Override
@@ -439,12 +234,6 @@
public void super_scrollTo(int scrollX, int scrollY) {
// We're intentionally not calling super.scrollTo here to make testing easier.
AwTestContainerView.this.scrollTo(scrollX, scrollY);
- if (mHardwareView != null) {
- // Undo the scroll that will be applied because of mHardwareView
- // being a child of |this|.
- mHardwareView.setTranslationX(scrollX);
- mHardwareView.setTranslationY(scrollY);
- }
}
@Override
« no previous file with comments | « android_webview/test/shell/src/org/chromium/android_webview/shell/DrawGL.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698