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