| Index: platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/HwuiPictureView.java
 | 
| diff --git a/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/HwuiPictureView.java b/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/HwuiPictureView.java
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..872089c9d304fb68adc00cff1a5ae2f2e5e0e1bf
 | 
| --- /dev/null
 | 
| +++ b/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/HwuiPictureView.java
 | 
| @@ -0,0 +1,72 @@
 | 
| +/*
 | 
| + * Copyright 2015 Google Inc.
 | 
| + *
 | 
| + * Use of this source code is governed by a BSD-style license that can be
 | 
| + * found in the LICENSE file.
 | 
| + */
 | 
| +
 | 
| +package org.skia.canvasproof;
 | 
| +
 | 
| +import android.content.Context;
 | 
| +import android.graphics.Bitmap;
 | 
| +import android.graphics.Canvas;
 | 
| +import android.graphics.Color;
 | 
| +import android.graphics.Paint;
 | 
| +import android.graphics.Picture;
 | 
| +import android.util.Log;
 | 
| +import android.view.View;
 | 
| +import java.io.IOException;
 | 
| +import java.io.InputStream;
 | 
| +
 | 
| +public class HwuiPictureView extends View {
 | 
| +    private static final String TAG = "HwuiPictureView";
 | 
| +    private Picture picture;
 | 
| +    private float scale;
 | 
| +    private Picture defaultPicture;
 | 
| +
 | 
| +    public boolean fullTime;
 | 
| +
 | 
| +    HwuiPictureView(Context context) {
 | 
| +        super(context);
 | 
| +        this.scale = 1.0f;
 | 
| +    }
 | 
| +    public void setScale(float s) {
 | 
| +        this.scale = s;
 | 
| +    }
 | 
| +    public void setPicture(Picture p) {
 | 
| +        this.picture = p;
 | 
| +        this.invalidate();
 | 
| +    }
 | 
| +
 | 
| +    @Override
 | 
| +    protected void onDraw(Canvas canvas) {
 | 
| +        if (this.picture != null) {
 | 
| +            canvas.save();
 | 
| +            canvas.scale(scale, scale);
 | 
| +            HwuiPictureView.draw(canvas, this.picture);
 | 
| +            canvas.restore();
 | 
| +            if (fullTime) {
 | 
| +                this.invalidate();
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +
 | 
| +    static private void draw(Canvas canvas, Picture p) {
 | 
| +        if (android.os.Build.VERSION.SDK_INT > 22) {
 | 
| +            try {
 | 
| +                canvas.drawPicture(p);
 | 
| +                return;
 | 
| +            } catch (java.lang.Exception e) {
 | 
| +                Log.e(TAG, "Exception while drawing picture in Hwui");
 | 
| +            }
 | 
| +        }
 | 
| +        if (p.getWidth() > 0 && p.getHeight() > 0) {
 | 
| +            // Fallback to software rendering.
 | 
| +            Bitmap bm = Bitmap.createBitmap(p.getWidth(), p.getHeight(),
 | 
| +                                            Bitmap.Config.ARGB_8888);
 | 
| +            (new Canvas(bm)).drawPicture(p);
 | 
| +            canvas.drawBitmap(bm, 0.0f, 0.0f, null);
 | 
| +            bm.recycle();
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| 
 |