TestBase.java revision 52541816fb308fcac31e86eb3293c2b28b0999de
152541816fb308fcac31e86eb3293c2b28b0999deJason Sams/*
252541816fb308fcac31e86eb3293c2b28b0999deJason Sams * Copyright (C) 2012 The Android Open Source Project
352541816fb308fcac31e86eb3293c2b28b0999deJason Sams *
452541816fb308fcac31e86eb3293c2b28b0999deJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
552541816fb308fcac31e86eb3293c2b28b0999deJason Sams * you may not use this file except in compliance with the License.
652541816fb308fcac31e86eb3293c2b28b0999deJason Sams * You may obtain a copy of the License at
752541816fb308fcac31e86eb3293c2b28b0999deJason Sams *
852541816fb308fcac31e86eb3293c2b28b0999deJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
952541816fb308fcac31e86eb3293c2b28b0999deJason Sams *
1052541816fb308fcac31e86eb3293c2b28b0999deJason Sams * Unless required by applicable law or agreed to in writing, software
1152541816fb308fcac31e86eb3293c2b28b0999deJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
1252541816fb308fcac31e86eb3293c2b28b0999deJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352541816fb308fcac31e86eb3293c2b28b0999deJason Sams * See the License for the specific language governing permissions and
1452541816fb308fcac31e86eb3293c2b28b0999deJason Sams * limitations under the License.
1552541816fb308fcac31e86eb3293c2b28b0999deJason Sams */
1652541816fb308fcac31e86eb3293c2b28b0999deJason Sams
1752541816fb308fcac31e86eb3293c2b28b0999deJason Samspackage com.android.rs.image;
1852541816fb308fcac31e86eb3293c2b28b0999deJason Sams
1952541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.app.Activity;
2052541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.content.Context;
2152541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.os.Bundle;
2252541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.graphics.BitmapFactory;
2352541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.graphics.Bitmap;
2452541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.graphics.Canvas;
2552541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.ScriptC;
2652541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.RenderScript;
2752541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.Type;
2852541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.Allocation;
2952541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.Element;
3052541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.renderscript.Script;
3152541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.view.SurfaceView;
3252541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.view.SurfaceHolder;
3352541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.widget.ImageView;
3452541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.widget.SeekBar;
3552541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.widget.TextView;
3652541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.view.View;
3752541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport android.util.Log;
3852541816fb308fcac31e86eb3293c2b28b0999deJason Samsimport java.lang.Math;
3952541816fb308fcac31e86eb3293c2b28b0999deJason Sams
4052541816fb308fcac31e86eb3293c2b28b0999deJason Samspublic class TestBase  {
4152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    protected final String TAG = "Img";
4252541816fb308fcac31e86eb3293c2b28b0999deJason Sams
4352541816fb308fcac31e86eb3293c2b28b0999deJason Sams    protected RenderScript mRS;
4452541816fb308fcac31e86eb3293c2b28b0999deJason Sams    protected Allocation mInPixelsAllocation;
4552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    protected Allocation mOutPixelsAllocation;
4652541816fb308fcac31e86eb3293c2b28b0999deJason Sams
4752541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Override to use UI elements
4852541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void onBar1Changed(int progress) {
4952541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
5052541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void onBar2Changed(int progress) {
5152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
5252541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void onBar3Changed(int progress) {
5352541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
5452541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void onBar4Changed(int progress) {
5552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
5652541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void onBar5Changed(int progress) {
5752541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
5852541816fb308fcac31e86eb3293c2b28b0999deJason Sams
5952541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Override to use UI elements
6052541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Unused bars will be hidden.
6152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public boolean onBar1Setup(SeekBar b, TextView t) {
6252541816fb308fcac31e86eb3293c2b28b0999deJason Sams        b.setVisibility(View.INVISIBLE);
6352541816fb308fcac31e86eb3293c2b28b0999deJason Sams        t.setVisibility(View.INVISIBLE);
6452541816fb308fcac31e86eb3293c2b28b0999deJason Sams        return false;
6552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
6652541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public boolean onBar2Setup(SeekBar b, TextView t) {
6752541816fb308fcac31e86eb3293c2b28b0999deJason Sams        b.setVisibility(View.INVISIBLE);
6852541816fb308fcac31e86eb3293c2b28b0999deJason Sams        t.setVisibility(View.INVISIBLE);
6952541816fb308fcac31e86eb3293c2b28b0999deJason Sams        return false;
7052541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
7152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public boolean onBar3Setup(SeekBar b, TextView t) {
7252541816fb308fcac31e86eb3293c2b28b0999deJason Sams        b.setVisibility(View.INVISIBLE);
7352541816fb308fcac31e86eb3293c2b28b0999deJason Sams        t.setVisibility(View.INVISIBLE);
7452541816fb308fcac31e86eb3293c2b28b0999deJason Sams        return false;
7552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
7652541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public boolean onBar4Setup(SeekBar b, TextView t) {
7752541816fb308fcac31e86eb3293c2b28b0999deJason Sams        b.setVisibility(View.INVISIBLE);
7852541816fb308fcac31e86eb3293c2b28b0999deJason Sams        t.setVisibility(View.INVISIBLE);
7952541816fb308fcac31e86eb3293c2b28b0999deJason Sams        return false;
8052541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
8152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public boolean onBar5Setup(SeekBar b, TextView t) {
8252541816fb308fcac31e86eb3293c2b28b0999deJason Sams        b.setVisibility(View.INVISIBLE);
8352541816fb308fcac31e86eb3293c2b28b0999deJason Sams        t.setVisibility(View.INVISIBLE);
8452541816fb308fcac31e86eb3293c2b28b0999deJason Sams        return false;
8552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
8652541816fb308fcac31e86eb3293c2b28b0999deJason Sams
8752541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public final void createBaseTest(ImageProcessingActivity act, Bitmap b) {
8852541816fb308fcac31e86eb3293c2b28b0999deJason Sams        mRS = RenderScript.create(act);
8952541816fb308fcac31e86eb3293c2b28b0999deJason Sams        mInPixelsAllocation = Allocation.createFromBitmap(mRS, b,
9052541816fb308fcac31e86eb3293c2b28b0999deJason Sams                                                          Allocation.MipmapControl.MIPMAP_NONE,
9152541816fb308fcac31e86eb3293c2b28b0999deJason Sams                                                          Allocation.USAGE_SCRIPT);
9252541816fb308fcac31e86eb3293c2b28b0999deJason Sams        mOutPixelsAllocation = Allocation.createFromBitmap(mRS, b,
9352541816fb308fcac31e86eb3293c2b28b0999deJason Sams                                                           Allocation.MipmapControl.MIPMAP_NONE,
9452541816fb308fcac31e86eb3293c2b28b0999deJason Sams                                                           Allocation.USAGE_SCRIPT);
9552541816fb308fcac31e86eb3293c2b28b0999deJason Sams        createTest(act.getResources());
9652541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
9752541816fb308fcac31e86eb3293c2b28b0999deJason Sams
9852541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Must override
9952541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void createTest(android.content.res.Resources res) {
10052541816fb308fcac31e86eb3293c2b28b0999deJason Sams        android.util.Log.e("img", "implement createTest");
10152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
10252541816fb308fcac31e86eb3293c2b28b0999deJason Sams
10352541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Must override
10452541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void runTest() {
10552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
10652541816fb308fcac31e86eb3293c2b28b0999deJason Sams
10752541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void finish() {
10852541816fb308fcac31e86eb3293c2b28b0999deJason Sams        mRS.finish();
10952541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
11052541816fb308fcac31e86eb3293c2b28b0999deJason Sams
11152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void updateBitmap(Bitmap b) {
11252541816fb308fcac31e86eb3293c2b28b0999deJason Sams        mOutPixelsAllocation.copyTo(b);
11352541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
11452541816fb308fcac31e86eb3293c2b28b0999deJason Sams
11552541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Override to configure specific benchmark config.
11652541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void setupBenchmark() {
11752541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
11852541816fb308fcac31e86eb3293c2b28b0999deJason Sams
11952541816fb308fcac31e86eb3293c2b28b0999deJason Sams    // Override to reset after benchmark.
12052541816fb308fcac31e86eb3293c2b28b0999deJason Sams    public void exitBenchmark() {
12152541816fb308fcac31e86eb3293c2b28b0999deJason Sams    }
12252541816fb308fcac31e86eb3293c2b28b0999deJason Sams}
123