diff options
author | John Reck <jreck@google.com> | 2016-05-26 14:36:42 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2016-05-26 14:36:42 -0700 |
commit | 2ccaf6a448408d3504a4b1cd4c47a9a2b66499cf (patch) | |
tree | d07b025f1fd7f154abffcd2453af110764f65cdf /tests/UiBench | |
parent | f4ae9977190d4d406ec5e2aaddb78ea84873f1f0 (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')
-rw-r--r-- | tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java | 36 |
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(); |