summaryrefslogtreecommitdiff
path: root/tests/UiBench/src
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2016-05-26 14:36:42 -0700
committerJohn Reck <jreck@google.com>2016-05-26 14:36:42 -0700
commit2ccaf6a448408d3504a4b1cd4c47a9a2b66499cf (patch)
treed07b025f1fd7f154abffcd2453af110764f65cdf /tests/UiBench/src
parentf4ae9977190d4d406ec5e2aaddb78ea84873f1f0 (diff)
Change overdraw test to use windowbackground
Bug: 28786023 Fixes an issue where the first couple frames would be extremely slow due to the simpleness of HWUI's overdraw rejection optimization. Change-Id: I1fe3d83f7e2e0eb3299124b00b9f877c2c3aebf9
Diffstat (limited to 'tests/UiBench/src')
-rw-r--r--tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java36
1 files changed, 25 insertions, 11 deletions
diff --git a/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java b/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java
index f1ecc5624d57..b9c5fac96a3e 100644
--- a/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java
+++ b/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java
@@ -19,8 +19,11 @@ import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.PixelFormat;
import android.graphics.Color;
import android.graphics.Paint;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
@@ -31,37 +34,48 @@ import android.view.View;
* This should all be optimized out by the renderer.
*/
public class FullscreenOverdrawActivity extends AppCompatActivity {
- private class OverdrawView extends View {
+ private class OverdrawDrawable extends Drawable {
Paint paint = new Paint();
int mColorValue = 0;
- public OverdrawView(Context context) {
- super(context);
- }
-
@SuppressWarnings("unused")
public void setColorValue(int colorValue) {
mColorValue = colorValue;
- invalidate();
+ invalidateSelf();
}
@Override
- protected void onDraw(Canvas canvas) {
+ public void draw(Canvas canvas) {
paint.setColor(Color.rgb(mColorValue, 255 - mColorValue, 255));
for (int i = 0; i < 400; i++) {
- canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
+ canvas.drawRect(getBounds(), paint);
}
}
+
+ @Override
+ public void setAlpha(int alpha) {
+ }
+
+ @Override
+ public void setColorFilter(ColorFilter colorFilter) {
+ }
+
+ @Override
+ public int getOpacity() {
+ return PixelFormat.OPAQUE;
+ }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- OverdrawView overdrawView = new OverdrawView(this);
- setContentView(overdrawView);
+ OverdrawDrawable overdraw = new OverdrawDrawable();
+ getWindow().setBackgroundDrawable(overdraw);
+
+ setContentView(new View(this));
- ObjectAnimator objectAnimator = ObjectAnimator.ofInt(overdrawView, "colorValue", 0, 255);
+ ObjectAnimator objectAnimator = ObjectAnimator.ofInt(overdraw, "colorValue", 0, 255);
objectAnimator.setRepeatMode(ValueAnimator.REVERSE);
objectAnimator.setRepeatCount(ValueAnimator.INFINITE);
objectAnimator.start();