summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-07-18 17:51:59 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-18 17:51:59 -0700
commit0b06cb62f56a1f877e324b143d6e5f6f63fbc432 (patch)
tree19011ee36898f858aa181da31143b9e3dc5eaa4a /tests
parentc2063a5b18bc2e54f000b411c82f43992a53854e (diff)
parent3c2c9e4e0dde0f3a9c27ccff5313cfbeb4504f8e (diff)
downloadframeworks_base-0b06cb62f56a1f877e324b143d6e5f6f63fbc432.zip
frameworks_base-0b06cb62f56a1f877e324b143d6e5f6f63fbc432.tar.gz
frameworks_base-0b06cb62f56a1f877e324b143d6e5f6f63fbc432.tar.bz2
Merge "Update TextureView.lockCanvas() test."
Diffstat (limited to 'tests')
-rw-r--r--tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java73
1 files changed, 58 insertions, 15 deletions
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
index 4d7f042..81c22b8 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/CanvasTextureViewActivity.java
@@ -18,7 +18,8 @@ package com.android.test.hwui;
import android.app.Activity;
import android.graphics.Canvas;
-import android.graphics.Rect;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
import android.graphics.SurfaceTexture;
import android.os.Bundle;
import android.view.Gravity;
@@ -29,6 +30,7 @@ import android.widget.FrameLayout;
public class CanvasTextureViewActivity extends Activity
implements TextureView.SurfaceTextureListener {
private TextureView mTextureView;
+ private CanvasTextureViewActivity.RenderingThread mThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -38,6 +40,7 @@ public class CanvasTextureViewActivity extends Activity
mTextureView = new TextureView(this);
mTextureView.setSurfaceTextureListener(this);
+ mTextureView.setOpaque(false);
content.addView(mTextureView, new FrameLayout.LayoutParams(500, 500, Gravity.CENTER));
setContentView(content);
@@ -45,19 +48,8 @@ public class CanvasTextureViewActivity extends Activity
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
- Canvas c = mTextureView.lockCanvas();
- try {
- c.drawColor(0xff00ff00);
- } finally {
- mTextureView.unlockCanvasAndPost(c);
- }
-
- c = mTextureView.lockCanvas(new Rect(100, 100, 200, 200));
- try {
- c.drawColor(0xff0000ff);
- } finally {
- mTextureView.unlockCanvasAndPost(c);
- }
+ mThread = new RenderingThread(mTextureView);
+ mThread.start();
}
@Override
@@ -67,11 +59,62 @@ public class CanvasTextureViewActivity extends Activity
@Override
public void onSurfaceTextureDestroyed(SurfaceTexture surface) {
- // Ignored
+ if (mThread != null) mThread.stopRendering();
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
// Ignored
}
+
+ private static class RenderingThread extends Thread {
+ private final TextureView mSurface;
+ private volatile boolean mRunning = true;
+
+ public RenderingThread(TextureView surface) {
+ mSurface = surface;
+ }
+
+ @Override
+ public void run() {
+ float x = 0.0f;
+ float y = 0.0f;
+ float speedX = 5.0f;
+ float speedY = 3.0f;
+
+ Paint paint = new Paint();
+ paint.setColor(0xff00ff00);
+
+ while (mRunning && !Thread.interrupted()) {
+ final Canvas canvas = mSurface.lockCanvas(null);
+ try {
+ canvas.drawColor(0x00000000, PorterDuff.Mode.CLEAR);
+ canvas.drawRect(x, y, x + 20.0f, y + 20.0f, paint);
+ } finally {
+ mSurface.unlockCanvasAndPost(canvas);
+ }
+
+ if (x + 20.0f + speedX >= mSurface.getWidth() || x + speedX <= 0.0f) {
+ speedX = -speedX;
+ }
+ if (y + 20.0f + speedY >= mSurface.getHeight() || y + speedY <= 0.0f) {
+ speedY = -speedY;
+ }
+
+ x += speedX;
+ y += speedY;
+
+ try {
+ Thread.sleep(15);
+ } catch (InterruptedException e) {
+ // Interrupted
+ }
+ }
+ }
+
+ void stopRendering() {
+ interrupt();
+ mRunning = false;
+ }
+ }
}