summaryrefslogtreecommitdiffstats
path: root/tests/RenderScriptTests/ImageProcessing
diff options
context:
space:
mode:
Diffstat (limited to 'tests/RenderScriptTests/ImageProcessing')
-rw-r--r--tests/RenderScriptTests/ImageProcessing/Android.mk30
-rw-r--r--tests/RenderScriptTests/ImageProcessing/AndroidManifest.xml22
-rw-r--r--tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpgbin1062402 -> 0 bytes
-rw-r--r--tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpgbin1205161 -> 0 bytes
-rw-r--r--tests/RenderScriptTests/ImageProcessing/res/layout/main.xml139
-rw-r--r--tests/RenderScriptTests/ImageProcessing/res/layout/spinner_layout.xml23
-rw-r--r--tests/RenderScriptTests/ImageProcessing/res/values/strings.xml34
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blend.java178
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java118
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java70
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java74
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java88
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Copy.java40
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/CrossProcess.java63
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java138
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Grain.java94
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Greyscale.java40
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/GroupTest.java93
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java419
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java316
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java48
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/LevelsV4.java167
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java98
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/TestBase.java140
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java154
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/blend.rs24
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/colormatrix.fs38
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve3x3.fs67
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve5x5.fs74
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/copy.fs24
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh58
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh58
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs21
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.fs22
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs21
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.fs22
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/grain.fs93
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/greyscale.fs30
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels.rsh46
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_full.rs21
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_relaxed.fs22
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs56
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/threshold.fs104
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh59
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh60
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs21
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.fs22
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs21
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.fs22
49 files changed, 0 insertions, 3592 deletions
diff --git a/tests/RenderScriptTests/ImageProcessing/Android.mk b/tests/RenderScriptTests/ImageProcessing/Android.mk
deleted file mode 100644
index d7486e8..0000000
--- a/tests/RenderScriptTests/ImageProcessing/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
- $(call all-renderscript-files-under, src)
-#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript
-
-LOCAL_PACKAGE_NAME := ImageProcessing
-
-include $(BUILD_PACKAGE)
diff --git a/tests/RenderScriptTests/ImageProcessing/AndroidManifest.xml b/tests/RenderScriptTests/ImageProcessing/AndroidManifest.xml
deleted file mode 100644
index d51fa39..0000000
--- a/tests/RenderScriptTests/ImageProcessing/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.rs.image">
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-sdk android:minSdkVersion="17" />
- <application android:label="Image Processing"
- android:hardwareAccelerated="true">
- <uses-library android:name="android.test.runner" />
- <activity android:name="ImageProcessingActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
- <instrumentation android:name=".ImageProcessingTestRunner"
- android:targetPackage="com.android.rs.image"
- android:label="Test runner for Image Processing Benchmark Test"
- />
-</manifest>
diff --git a/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg b/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg
deleted file mode 100644
index 05d3ee2..0000000
--- a/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg b/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg
deleted file mode 100644
index aed0781..0000000
--- a/tests/RenderScriptTests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/RenderScriptTests/ImageProcessing/res/layout/main.xml b/tests/RenderScriptTests/ImageProcessing/res/layout/main.xml
deleted file mode 100644
index f0a2b92..0000000
--- a/tests/RenderScriptTests/ImageProcessing/res/layout/main.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/toplevel">
- <SurfaceView
- android:id="@+id/surface"
- android:layout_width="1dip"
- android:layout_height="1dip" />
- <ScrollView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <ImageView
- android:id="@+id/display"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/benchmark"
- android:onClick="benchmark"/>
- <TextView
- android:id="@+id/benchmarkText"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="8pt"
- android:text="@string/saturation"/>
- </LinearLayout>
- <Spinner
- android:id="@+id/filterselection"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
- <Spinner
- android:id="@+id/spinner1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/slider1Text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="8pt"
- android:layout_marginLeft="10sp"
- android:layout_marginTop="15sp"
- android:text="@string/saturation"/>
- <SeekBar
- android:id="@+id/slider1"
- android:layout_marginLeft="10sp"
- android:layout_marginRight="10sp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/slider2Text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="8pt"
- android:layout_marginLeft="10sp"
- android:layout_marginTop="15sp"
- android:text="@string/gamma"/>
- <SeekBar
- android:id="@+id/slider2"
- android:layout_marginLeft="10sp"
- android:layout_marginRight="10sp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/slider3Text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="10sp"
- android:layout_marginTop="15sp"
- android:textSize="8pt"
- android:text="@string/out_white"/>
- <SeekBar
- android:id="@+id/slider3"
- android:layout_marginLeft="10sp"
- android:layout_marginRight="10sp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/slider4Text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="8pt"
- android:layout_marginLeft="10sp"
- android:layout_marginTop="15sp"
- android:text="@string/in_white"/>
- <SeekBar
- android:id="@+id/slider4"
- android:layout_marginLeft="10sp"
- android:layout_marginRight="10sp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <TextView
- android:id="@+id/slider5Text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textSize="8pt"
- android:layout_marginLeft="10sp"
- android:layout_marginTop="15sp"
- android:text="@string/in_white"/>
- <SeekBar
- android:id="@+id/slider5"
- android:layout_marginLeft="10sp"
- android:layout_marginRight="10sp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/benchmark_all"
- android:onClick="benchmark_all"/>
- </LinearLayout>
- </ScrollView>
-</LinearLayout>
-
diff --git a/tests/RenderScriptTests/ImageProcessing/res/layout/spinner_layout.xml b/tests/RenderScriptTests/ImageProcessing/res/layout/spinner_layout.xml
deleted file mode 100644
index 8196bbf..0000000
--- a/tests/RenderScriptTests/ImageProcessing/res/layout/spinner_layout.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Copyright (C) 2012 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="10dp"
- android:textSize="16sp"
-/>
diff --git a/tests/RenderScriptTests/ImageProcessing/res/values/strings.xml b/tests/RenderScriptTests/ImageProcessing/res/values/strings.xml
deleted file mode 100644
index a7dd165..0000000
--- a/tests/RenderScriptTests/ImageProcessing/res/values/strings.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-* Copyright (C) 2008 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- General -->
- <skip />
- <!--slider label -->
- <string name="blur_description">Blur Radius</string>
- <string name="in_white">In White</string>
- <string name="out_white">Out White</string>
- <string name="in_black">In Black</string>
- <string name="out_black">Out Black</string>
- <string name="gamma">Gamma</string>
- <string name="saturation">Saturation</string>
- <string name="benchmark">Benchmark</string>
- <string name="benchmark_all">Benchmark All</string>
-
-</resources>
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blend.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blend.java
deleted file mode 100644
index 2303fc3..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blend.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-import java.lang.Short;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Matrix4f;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.ScriptGroup;
-import android.renderscript.ScriptIntrinsicBlend;
-import android.renderscript.Type;
-import android.util.Log;
-import android.widget.SeekBar;
-import android.widget.TextView;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.view.View;
-import android.widget.Spinner;
-
-public class Blend extends TestBase {
- private ScriptIntrinsicBlend mBlend;
- private ScriptC_blend mBlendHelper;
- private short image1Alpha = 128;
- private short image2Alpha = 128;
-
- String mIntrinsicNames[];
-
- private Allocation image1;
- private Allocation image2;
- private int currentIntrinsic = 0;
-
- private AdapterView.OnItemSelectedListener mIntrinsicSpinnerListener =
- new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
- currentIntrinsic = pos;
- if (mRS != null) {
- runTest();
- act.updateDisplay();
- }
- }
-
- public void onNothingSelected(AdapterView parent) {
-
- }
- };
-
- public void createTest(android.content.res.Resources res) {
- mBlend = ScriptIntrinsicBlend.create(mRS, Element.U8_4(mRS));
- mBlendHelper = new ScriptC_blend(mRS);
- mBlendHelper.set_alpha((short)128);
-
- image1 = Allocation.createTyped(mRS, mInPixelsAllocation.getType());
- image2 = Allocation.createTyped(mRS, mInPixelsAllocation2.getType());
-
- mIntrinsicNames = new String[14];
- mIntrinsicNames[0] = "Source";
- mIntrinsicNames[1] = "Destination";
- mIntrinsicNames[2] = "Source Over";
- mIntrinsicNames[3] = "Destination Over";
- mIntrinsicNames[4] = "Source In";
- mIntrinsicNames[5] = "Destination In";
- mIntrinsicNames[6] = "Source Out";
- mIntrinsicNames[7] = "Destination Out";
- mIntrinsicNames[8] = "Source Atop";
- mIntrinsicNames[9] = "Destination Atop";
- mIntrinsicNames[10] = "XOR";
- mIntrinsicNames[11] = "Add";
- mIntrinsicNames[12] = "Subtract";
- mIntrinsicNames[13] = "Multiply";
- }
-
- public boolean onSpinner1Setup(Spinner s) {
- s.setAdapter(new ArrayAdapter<String>(
- act, R.layout.spinner_layout, mIntrinsicNames));
- s.setOnItemSelectedListener(mIntrinsicSpinnerListener);
- return true;
- }
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Image 1 Alpha");
- b.setMax(255);
- b.setProgress(image1Alpha);
- return true;
- }
-
- public void onBar1Changed(int progress) {
- image1Alpha = (short)progress;
- }
-
- public boolean onBar2Setup(SeekBar b, TextView t) {
- t.setText("Image 2 Alpha");
- b.setMax(255);
- b.setProgress(image2Alpha);
- return true;
- }
-
- public void onBar2Changed(int progress) {
- image2Alpha = (short)progress;
- }
-
- public void runTest() {
- image1.copy2DRangeFrom(0, 0, mInPixelsAllocation.getType().getX(), mInPixelsAllocation.getType().getY(), mInPixelsAllocation, 0, 0);
- image2.copy2DRangeFrom(0, 0, mInPixelsAllocation2.getType().getX(), mInPixelsAllocation2.getType().getY(), mInPixelsAllocation2, 0, 0);
-
- mBlendHelper.set_alpha(image1Alpha);
- mBlendHelper.forEach_setImageAlpha(image1);
-
- mBlendHelper.set_alpha(image2Alpha);
- mBlendHelper.forEach_setImageAlpha(image2);
-
- switch (currentIntrinsic) {
- case 0:
- mBlend.forEachSrc(image1, image2);
- break;
- case 1:
- mBlend.forEachDst(image1, image2);
- break;
- case 2:
- mBlend.forEachSrcOver(image1, image2);
- break;
- case 3:
- mBlend.forEachDstOver(image1, image2);
- break;
- case 4:
- mBlend.forEachSrcIn(image1, image2);
- break;
- case 5:
- mBlend.forEachDstIn(image1, image2);
- break;
- case 6:
- mBlend.forEachSrcOut(image1, image2);
- break;
- case 7:
- mBlend.forEachDstOut(image1, image2);
- break;
- case 8:
- mBlend.forEachSrcAtop(image1, image2);
- break;
- case 9:
- mBlend.forEachDstAtop(image1, image2);
- break;
- case 10:
- mBlend.forEachXor(image1, image2);
- break;
- case 11:
- mBlend.forEachAdd(image1, image2);
- break;
- case 12:
- mBlend.forEachSubtract(image1, image2);
- break;
- case 13:
- mBlend.forEachMultiply(image1, image2);
- break;
- }
-
- mOutPixelsAllocation.copy2DRangeFrom(0, 0, image2.getType().getX(), image2.getType().getY(), image2, 0, 0);
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java
deleted file mode 100644
index 0c6d41d..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.ScriptIntrinsicBlur;
-import android.renderscript.Type;
-import android.util.Log;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-public class Blur25 extends TestBase {
- private boolean mUseIntrinsic = false;
- private ScriptIntrinsicBlur mIntrinsic;
-
- private int MAX_RADIUS = 25;
- private ScriptC_threshold mScript;
- private float mRadius = MAX_RADIUS;
- private float mSaturation = 1.0f;
- private Allocation mScratchPixelsAllocation1;
- private Allocation mScratchPixelsAllocation2;
-
-
- public Blur25(boolean useIntrinsic) {
- mUseIntrinsic = useIntrinsic;
- }
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Radius");
- b.setProgress(100);
- return true;
- }
-
-
- public void onBar1Changed(int progress) {
- mRadius = ((float)progress) / 100.0f * MAX_RADIUS;
- if (mRadius <= 0.10f) {
- mRadius = 0.10f;
- }
- if (mUseIntrinsic) {
- mIntrinsic.setRadius(mRadius);
- } else {
- mScript.invoke_setRadius((int)mRadius);
- }
- }
-
-
- public void createTest(android.content.res.Resources res) {
- int width = mInPixelsAllocation.getType().getX();
- int height = mInPixelsAllocation.getType().getY();
-
- if (mUseIntrinsic) {
- mIntrinsic = ScriptIntrinsicBlur.create(mRS, Element.U8_4(mRS));
- mIntrinsic.setRadius(MAX_RADIUS);
- mIntrinsic.setInput(mInPixelsAllocation);
- } else {
-
- Type.Builder tb = new Type.Builder(mRS, Element.F32_4(mRS));
- tb.setX(width);
- tb.setY(height);
- mScratchPixelsAllocation1 = Allocation.createTyped(mRS, tb.create());
- mScratchPixelsAllocation2 = Allocation.createTyped(mRS, tb.create());
-
- mScript = new ScriptC_threshold(mRS, res, R.raw.threshold);
- mScript.set_width(width);
- mScript.set_height(height);
- mScript.invoke_setRadius(MAX_RADIUS);
-
- mScript.set_InPixel(mInPixelsAllocation);
- mScript.set_ScratchPixel1(mScratchPixelsAllocation1);
- mScript.set_ScratchPixel2(mScratchPixelsAllocation2);
- }
- }
-
- public void runTest() {
- if (mUseIntrinsic) {
- mIntrinsic.forEach(mOutPixelsAllocation);
- } else {
- mScript.forEach_copyIn(mInPixelsAllocation, mScratchPixelsAllocation1);
- mScript.forEach_horz(mScratchPixelsAllocation2);
- mScript.forEach_vert(mOutPixelsAllocation);
- }
- }
-
- public void setupBenchmark() {
- if (mUseIntrinsic) {
- mIntrinsic.setRadius(MAX_RADIUS);
- } else {
- mScript.invoke_setRadius(MAX_RADIUS);
- }
- }
-
- public void exitBenchmark() {
- if (mUseIntrinsic) {
- mIntrinsic.setRadius(mRadius);
- } else {
- mScript.invoke_setRadius((int)mRadius);
- }
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java
deleted file mode 100644
index 2ac40a1..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Matrix4f;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.ScriptGroup;
-import android.renderscript.ScriptIntrinsicColorMatrix;
-import android.renderscript.Type;
-import android.util.Log;
-
-public class ColorMatrix extends TestBase {
- private ScriptC_colormatrix mScript;
- private ScriptIntrinsicColorMatrix mIntrinsic;
- private boolean mUseIntrinsic;
- private boolean mUseGrey;
-
- public ColorMatrix(boolean useIntrinsic, boolean useGrey) {
- mUseIntrinsic = useIntrinsic;
- mUseGrey = useGrey;
- }
-
- public void createTest(android.content.res.Resources res) {
- Matrix4f m = new Matrix4f();
- m.set(1, 0, 0.2f);
- m.set(1, 1, 0.9f);
- m.set(1, 2, 0.2f);
-
- if (mUseIntrinsic) {
- mIntrinsic = ScriptIntrinsicColorMatrix.create(mRS, Element.U8_4(mRS));
- if (mUseGrey) {
- mIntrinsic.setGreyscale();
- } else {
- mIntrinsic.setColorMatrix(m);
- }
- } else {
- mScript = new ScriptC_colormatrix(mRS, res, R.raw.colormatrix);
- mScript.invoke_setMatrix(m);
- }
- }
-
- public void runTest() {
- if (mUseIntrinsic) {
- mIntrinsic.forEach(mInPixelsAllocation, mOutPixelsAllocation);
- } else {
- mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java
deleted file mode 100644
index 18e9b43..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Matrix4f;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.ScriptGroup;
-import android.renderscript.ScriptIntrinsicConvolve3x3;
-import android.renderscript.Type;
-import android.util.Log;
-
-public class Convolve3x3 extends TestBase {
- private ScriptC_convolve3x3 mScript;
- private ScriptIntrinsicConvolve3x3 mIntrinsic;
-
- private int mWidth;
- private int mHeight;
- private boolean mUseIntrinsic;
-
- public Convolve3x3(boolean useIntrinsic) {
- mUseIntrinsic = useIntrinsic;
- }
-
- public void createTest(android.content.res.Resources res) {
- mWidth = mInPixelsAllocation.getType().getX();
- mHeight = mInPixelsAllocation.getType().getY();
-
- float f[] = new float[9];
- f[0] = 0.f; f[1] = -1.f; f[2] = 0.f;
- f[3] = -1.f; f[4] = 5.f; f[5] = -1.f;
- f[6] = 0.f; f[7] = -1.f; f[8] = 0.f;
-
- if (mUseIntrinsic) {
- mIntrinsic = ScriptIntrinsicConvolve3x3.create(mRS, Element.U8_4(mRS));
- mIntrinsic.setCoefficients(f);
- mIntrinsic.setInput(mInPixelsAllocation);
- } else {
- mScript = new ScriptC_convolve3x3(mRS, res, R.raw.convolve3x3);
- mScript.set_gCoeffs(f);
- mScript.set_gIn(mInPixelsAllocation);
- mScript.set_gWidth(mWidth);
- mScript.set_gHeight(mHeight);
- }
- }
-
- public void runTest() {
- if (mUseIntrinsic) {
- mIntrinsic.forEach(mOutPixelsAllocation);
- } else {
- mScript.forEach_root(mOutPixelsAllocation);
- }
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java
deleted file mode 100644
index 03b3bb8..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Matrix4f;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.ScriptGroup;
-import android.renderscript.ScriptIntrinsicConvolve5x5;
-import android.renderscript.Type;
-import android.util.Log;
-
-public class Convolve5x5 extends TestBase {
- private ScriptC_convolve5x5 mScript;
- private ScriptIntrinsicConvolve5x5 mIntrinsic;
-
- private int mWidth;
- private int mHeight;
- private boolean mUseIntrinsic;
-
- public Convolve5x5(boolean useIntrinsic) {
- mUseIntrinsic = useIntrinsic;
- }
-
- public void createTest(android.content.res.Resources res) {
- mWidth = mInPixelsAllocation.getType().getX();
- mHeight = mInPixelsAllocation.getType().getY();
-
- float f[] = new float[25];
- //f[0] = 0.012f; f[1] = 0.025f; f[2] = 0.031f; f[3] = 0.025f; f[4] = 0.012f;
- //f[5] = 0.025f; f[6] = 0.057f; f[7] = 0.075f; f[8] = 0.057f; f[9] = 0.025f;
- //f[10]= 0.031f; f[11]= 0.075f; f[12]= 0.095f; f[13]= 0.075f; f[14]= 0.031f;
- //f[15]= 0.025f; f[16]= 0.057f; f[17]= 0.075f; f[18]= 0.057f; f[19]= 0.025f;
- //f[20]= 0.012f; f[21]= 0.025f; f[22]= 0.031f; f[23]= 0.025f; f[24]= 0.012f;
-
- //f[0] = 1.f; f[1] = 2.f; f[2] = 0.f; f[3] = -2.f; f[4] = -1.f;
- //f[5] = 4.f; f[6] = 8.f; f[7] = 0.f; f[8] = -8.f; f[9] = -4.f;
- //f[10]= 6.f; f[11]=12.f; f[12]= 0.f; f[13]=-12.f; f[14]= -6.f;
- //f[15]= 4.f; f[16]= 8.f; f[17]= 0.f; f[18]= -8.f; f[19]= -4.f;
- //f[20]= 1.f; f[21]= 2.f; f[22]= 0.f; f[23]= -2.f; f[24]= -1.f;
-
- f[0] = -1.f; f[1] = -3.f; f[2] = -4.f; f[3] = -3.f; f[4] = -1.f;
- f[5] = -3.f; f[6] = 0.f; f[7] = 6.f; f[8] = 0.f; f[9] = -3.f;
- f[10]= -4.f; f[11]= 6.f; f[12]= 20.f; f[13]= 6.f; f[14]= -4.f;
- f[15]= -3.f; f[16]= 0.f; f[17]= 6.f; f[18]= 0.f; f[19]= -3.f;
- f[20]= -1.f; f[21]= -3.f; f[22]= -4.f; f[23]= -3.f; f[24]= -1.f;
-
- if (mUseIntrinsic) {
- mIntrinsic = ScriptIntrinsicConvolve5x5.create(mRS, Element.U8_4(mRS));
- mIntrinsic.setCoefficients(f);
- mIntrinsic.setInput(mInPixelsAllocation);
- } else {
- mScript = new ScriptC_convolve5x5(mRS, res, R.raw.convolve5x5);
- mScript.set_gCoeffs(f);
- mScript.set_gIn(mInPixelsAllocation);
- mScript.set_gWidth(mWidth);
- mScript.set_gHeight(mHeight);
- }
- }
-
- public void runTest() {
- if (mUseIntrinsic) {
- mIntrinsic.forEach(mOutPixelsAllocation);
- } else {
- mScript.forEach_root(mOutPixelsAllocation);
- }
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Copy.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Copy.java
deleted file mode 100644
index efca0b5..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Copy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.Type;
-import android.util.Log;
-
-public class Copy extends TestBase {
- private ScriptC_copy mScript;
-
- public void createTest(android.content.res.Resources res) {
- mScript = new ScriptC_copy(mRS, res, R.raw.copy);
- }
-
- public void runTest() {
- mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/CrossProcess.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/CrossProcess.java
deleted file mode 100644
index b9e3524..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/CrossProcess.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.ScriptIntrinsicLUT;
-import android.util.Log;
-
-public class CrossProcess extends TestBase {
- private ScriptIntrinsicLUT mIntrinsic;
-
- public void createTest(android.content.res.Resources res) {
- mIntrinsic = ScriptIntrinsicLUT.create(mRS, Element.U8_4(mRS));
- for (int ct=0; ct < 256; ct++) {
- float f = ((float)ct) / 255.f;
-
- float r = f;
- if (r < 0.5f) {
- r = 4.0f * r * r * r;
- } else {
- r = 1.0f - r;
- r = 1.0f - (4.0f * r * r * r);
- }
- mIntrinsic.setRed(ct, (int)(r * 255.f + 0.5f));
-
- float g = f;
- if (g < 0.5f) {
- g = 2.0f * g * g;
- } else {
- g = 1.0f - g;
- g = 1.0f - (2.0f * g * g);
- }
- mIntrinsic.setGreen(ct, (int)(g * 255.f + 0.5f));
-
- float b = f * 0.5f + 0.25f;
- mIntrinsic.setBlue(ct, (int)(b * 255.f + 0.5f));
- }
-
- }
-
- public void runTest() {
- mIntrinsic.forEach(mInPixelsAllocation, mOutPixelsAllocation);
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java
deleted file mode 100644
index 81868b1..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Fisheye.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Sampler;
-import android.renderscript.Type;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-public class Fisheye extends TestBase {
- private ScriptC_fisheye_full mScript_full = null;
- private ScriptC_fisheye_relaxed mScript_relaxed = null;
- private ScriptC_fisheye_approx_full mScript_approx_full = null;
- private ScriptC_fisheye_approx_relaxed mScript_approx_relaxed = null;
- private final boolean approx;
- private final boolean relaxed;
- private float center_x = 0.5f;
- private float center_y = 0.5f;
- private float scale = 0.5f;
-
- public Fisheye(boolean approx, boolean relaxed) {
- this.approx = approx;
- this.relaxed = relaxed;
- }
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Scale");
- b.setMax(100);
- b.setProgress(25);
- return true;
- }
- public boolean onBar2Setup(SeekBar b, TextView t) {
- t.setText("Shift center X");
- b.setMax(100);
- b.setProgress(50);
- return true;
- }
- public boolean onBar3Setup(SeekBar b, TextView t) {
- t.setText("Shift center Y");
- b.setMax(100);
- b.setProgress(50);
- return true;
- }
-
- public void onBar1Changed(int progress) {
- scale = progress / 50.0f;
- do_init();
- }
- public void onBar2Changed(int progress) {
- center_x = progress / 100.0f;
- do_init();
- }
- public void onBar3Changed(int progress) {
- center_y = progress / 100.0f;
- do_init();
- }
-
- private void do_init() {
- if (approx) {
- if (relaxed)
- mScript_approx_relaxed.invoke_init_filter(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x,
- center_y, scale);
- else
- mScript_approx_full.invoke_init_filter(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x,
- center_y, scale);
- } else if (relaxed)
- mScript_relaxed.invoke_init_filter(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x, center_y,
- scale);
- else
- mScript_full.invoke_init_filter(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x, center_y,
- scale);
- }
-
- public void createTest(android.content.res.Resources res) {
- if (approx) {
- if (relaxed) {
- mScript_approx_relaxed = new ScriptC_fisheye_approx_relaxed(mRS,
- res, R.raw.fisheye_approx_relaxed);
- mScript_approx_relaxed.set_in_alloc(mInPixelsAllocation);
- mScript_approx_relaxed.set_sampler(Sampler.CLAMP_LINEAR(mRS));
- } else {
- mScript_approx_full = new ScriptC_fisheye_approx_full(mRS, res,
- R.raw.fisheye_approx_full);
- mScript_approx_full.set_in_alloc(mInPixelsAllocation);
- mScript_approx_full.set_sampler(Sampler.CLAMP_LINEAR(mRS));
- }
- } else if (relaxed) {
- mScript_relaxed = new ScriptC_fisheye_relaxed(mRS, res,
- R.raw.fisheye_relaxed);
- mScript_relaxed.set_in_alloc(mInPixelsAllocation);
- mScript_relaxed.set_sampler(Sampler.CLAMP_LINEAR(mRS));
- } else {
- mScript_full = new ScriptC_fisheye_full(mRS, res,
- R.raw.fisheye_full);
- mScript_full.set_in_alloc(mInPixelsAllocation);
- mScript_full.set_sampler(Sampler.CLAMP_LINEAR(mRS));
- }
- do_init();
- }
-
- public void runTest() {
- if (approx) {
- if (relaxed)
- mScript_approx_relaxed.forEach_root(mOutPixelsAllocation);
- else
- mScript_approx_full.forEach_root(mOutPixelsAllocation);
- } else if (relaxed)
- mScript_relaxed.forEach_root(mOutPixelsAllocation);
- else
- mScript_full.forEach_root(mOutPixelsAllocation);
- }
-
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Grain.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Grain.java
deleted file mode 100644
index 8618cc8..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Grain.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.Type;
-import android.util.Log;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-public class Grain extends TestBase {
- private ScriptC_grain mScript;
- private Allocation mNoise;
- private Allocation mNoise2;
-
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Strength");
- b.setProgress(50);
- return true;
- }
-
- public void onBar1Changed(int progress) {
- float s = progress / 100.0f;
- mScript.set_gNoiseStrength(s);
- }
-
- private int findHighBit(int v) {
- int bit = 0;
- while (v > 1) {
- bit++;
- v >>= 1;
- }
- return bit;
- }
-
-
- public void createTest(android.content.res.Resources res) {
- int width = mInPixelsAllocation.getType().getX();
- int height = mInPixelsAllocation.getType().getY();
-
- int noiseW = findHighBit(width);
- int noiseH = findHighBit(height);
- if (noiseW > 9) {
- noiseW = 9;
- }
- if (noiseH > 9) {
- noiseH = 9;
- }
- noiseW = 1 << noiseW;
- noiseH = 1 << noiseH;
-
- Type.Builder tb = new Type.Builder(mRS, Element.U8(mRS));
- tb.setX(noiseW);
- tb.setY(noiseH);
- mNoise = Allocation.createTyped(mRS, tb.create());
- mNoise2 = Allocation.createTyped(mRS, tb.create());
-
- mScript = new ScriptC_grain(mRS, res, R.raw.grain);
- mScript.set_gWMask(noiseW - 1);
- mScript.set_gHMask(noiseH - 1);
- mScript.set_gNoiseStrength(0.5f);
- mScript.set_gBlendSource(mNoise);
- mScript.set_gNoise(mNoise2);
- }
-
- public void runTest() {
- mScript.forEach_genRand(mNoise);
- mScript.forEach_blend9(mNoise2);
- mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
-
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Greyscale.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Greyscale.java
deleted file mode 100644
index 3db210a..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Greyscale.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.Type;
-import android.util.Log;
-
-public class Greyscale extends TestBase {
- private ScriptC_greyscale mScript;
-
- public void createTest(android.content.res.Resources res) {
- mScript = new ScriptC_greyscale(mRS, res, R.raw.greyscale);
- }
-
- public void runTest() {
- mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/GroupTest.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/GroupTest.java
deleted file mode 100644
index 29c204c..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/GroupTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.ScriptIntrinsicConvolve3x3;
-import android.renderscript.ScriptIntrinsicColorMatrix;
-import android.renderscript.Type;
-import android.renderscript.Matrix4f;
-import android.renderscript.ScriptGroup;
-import android.util.Log;
-
-public class GroupTest extends TestBase {
- private ScriptIntrinsicConvolve3x3 mConvolve;
- private ScriptIntrinsicColorMatrix mMatrix;
-
- private Allocation mScratchPixelsAllocation1;
- private ScriptGroup mGroup;
-
- private int mWidth;
- private int mHeight;
- private boolean mUseNative;
-
-
- public GroupTest(boolean useNative) {
- mUseNative = useNative;
- }
-
- public void createTest(android.content.res.Resources res) {
- mWidth = mInPixelsAllocation.getType().getX();
- mHeight = mInPixelsAllocation.getType().getY();
-
- mConvolve = ScriptIntrinsicConvolve3x3.create(mRS, Element.U8_4(mRS));
- mMatrix = ScriptIntrinsicColorMatrix.create(mRS, Element.U8_4(mRS));
-
- float f[] = new float[9];
- f[0] = 0.f; f[1] = -1.f; f[2] = 0.f;
- f[3] = -1.f; f[4] = 5.f; f[5] = -1.f;
- f[6] = 0.f; f[7] = -1.f; f[8] = 0.f;
- mConvolve.setCoefficients(f);
-
- Matrix4f m = new Matrix4f();
- m.set(1, 0, 0.2f);
- m.set(1, 1, 0.9f);
- m.set(1, 2, 0.2f);
- mMatrix.setColorMatrix(m);
-
- Type.Builder tb = new Type.Builder(mRS, Element.U8_4(mRS));
- tb.setX(mWidth);
- tb.setY(mHeight);
- Type connect = tb.create();
-
- if (mUseNative) {
- ScriptGroup.Builder b = new ScriptGroup.Builder(mRS);
- b.addKernel(mConvolve.getKernelID());
- b.addKernel(mMatrix.getKernelID());
- b.addConnection(connect, mConvolve.getKernelID(), mMatrix.getKernelID());
- mGroup = b.create();
- } else {
- mScratchPixelsAllocation1 = Allocation.createTyped(mRS, connect);
- }
- }
-
- public void runTest() {
- mConvolve.setInput(mInPixelsAllocation);
- if (mUseNative) {
- mGroup.setOutput(mMatrix.getKernelID(), mOutPixelsAllocation);
- mGroup.execute();
- } else {
- mConvolve.forEach(mScratchPixelsAllocation1);
- mMatrix.forEach(mScratchPixelsAllocation1, mOutPixelsAllocation);
- }
- }
-
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
deleted file mode 100644
index ebe4d73..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.graphics.BitmapFactory;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.view.SurfaceView;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.view.View;
-import android.util.Log;
-
-import android.os.Environment;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-public class ImageProcessingActivity extends Activity
- implements SeekBar.OnSeekBarChangeListener {
- private final String TAG = "Img";
- public final String RESULT_FILE = "image_processing_result.csv";
-
- /**
- * Define enum type for test names
- */
- public enum TestName {
- LEVELS_VEC3_RELAXED ("Levels Vec3 Relaxed"),
- LEVELS_VEC4_RELAXED ("Levels Vec4 Relaxed"),
- LEVELS_VEC3_FULL ("Levels Vec3 Full"),
- LEVELS_VEC4_FULL ("Levels Vec4 Full"),
- BLUR_RADIUS_25 ("Blur radius 25"),
- INTRINSIC_BLUE_RADIUS_25 ("Intrinsic Blur radius 25"),
- GREYSCALE ("Greyscale"),
- GRAIN ("Grain"),
- FISHEYE_FULL ("Fisheye Full"),
- FISHEYE_RELAXED ("Fisheye Relaxed"),
- FISHEYE_APPROXIMATE_FULL ("Fisheye Approximate Full"),
- FISHEYE_APPROXIMATE_RELAXED ("Fisheye Approximate Relaxed"),
- VIGNETTE_FULL ("Vignette Full"),
- VIGNETTE_RELAXED ("Vignette Relaxed"),
- VIGNETTE_APPROXIMATE_FULL ("Vignette Approximate Full"),
- VIGNETTE_APPROXIMATE_RELAXED ("Vignette Approximate Relaxed"),
- GROUP_TEST_EMULATED ("Group Test (emulated)"),
- GROUP_TEST_NATIVE ("Group Test (native)"),
- CONVOLVE_3X3 ("Convolve 3x3"),
- INTRINSICS_CONVOLVE_3X3 ("Intrinsics Convolve 3x3"),
- COLOR_MATRIX ("ColorMatrix"),
- INTRINSICS_COLOR_MATRIX ("Intrinsics ColorMatrix"),
- INTRINSICS_COLOR_MATRIX_GREY ("Intrinsics ColorMatrix Grey"),
- COPY ("Copy"),
- CROSS_PROCESS_USING_LUT ("CrossProcess (using LUT)"),
- CONVOLVE_5X5 ("Convolve 5x5"),
- INTRINSICS_CONVOLVE_5X5 ("Intrinsics Convolve 5x5"),
- MANDELBROT ("Mandelbrot"),
- INTRINSICS_BLEND ("Intrinsics Blend");
-
- private final String name;
-
- private TestName(String s) {
- name = s;
- }
-
- // return quoted string as displayed test name
- public String toString() {
- return name;
- }
- }
-
- Bitmap mBitmapIn;
- Bitmap mBitmapIn2;
- Bitmap mBitmapOut;
-
- private Spinner mSpinner;
- private SeekBar mBar1;
- private SeekBar mBar2;
- private SeekBar mBar3;
- private SeekBar mBar4;
- private SeekBar mBar5;
- private TextView mText1;
- private TextView mText2;
- private TextView mText3;
- private TextView mText4;
- private TextView mText5;
-
- private float mSaturation = 1.0f;
-
- private TextView mBenchmarkResult;
- private Spinner mTestSpinner;
-
- private SurfaceView mSurfaceView;
- private ImageView mDisplayView;
-
- private boolean mDoingBenchmark;
-
- private TestBase mTest;
-
- public void updateDisplay() {
- mTest.updateBitmap(mBitmapOut);
- mDisplayView.invalidate();
- }
-
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (fromUser) {
-
- if (seekBar == mBar1) {
- mTest.onBar1Changed(progress);
- } else if (seekBar == mBar2) {
- mTest.onBar2Changed(progress);
- } else if (seekBar == mBar3) {
- mTest.onBar3Changed(progress);
- } else if (seekBar == mBar4) {
- mTest.onBar4Changed(progress);
- } else if (seekBar == mBar5) {
- mTest.onBar5Changed(progress);
- }
-
- mTest.runTest();
- updateDisplay();
- }
- }
-
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
-
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
-
- void setupBars() {
- mSpinner.setVisibility(View.VISIBLE);
- mTest.onSpinner1Setup(mSpinner);
-
- mBar1.setVisibility(View.VISIBLE);
- mText1.setVisibility(View.VISIBLE);
- mTest.onBar1Setup(mBar1, mText1);
-
- mBar2.setVisibility(View.VISIBLE);
- mText2.setVisibility(View.VISIBLE);
- mTest.onBar2Setup(mBar2, mText2);
-
- mBar3.setVisibility(View.VISIBLE);
- mText3.setVisibility(View.VISIBLE);
- mTest.onBar3Setup(mBar3, mText3);
-
- mBar4.setVisibility(View.VISIBLE);
- mText4.setVisibility(View.VISIBLE);
- mTest.onBar4Setup(mBar4, mText4);
-
- mBar5.setVisibility(View.VISIBLE);
- mText5.setVisibility(View.VISIBLE);
- mTest.onBar5Setup(mBar5, mText5);
- }
-
-
- void changeTest(TestName testName) {
- if (mTest != null) {
- mTest.destroy();
- }
- switch(testName) {
- case LEVELS_VEC3_RELAXED:
- mTest = new LevelsV4(false, false);
- break;
- case LEVELS_VEC4_RELAXED:
- mTest = new LevelsV4(false, true);
- break;
- case LEVELS_VEC3_FULL:
- mTest = new LevelsV4(true, false);
- break;
- case LEVELS_VEC4_FULL:
- mTest = new LevelsV4(true, true);
- break;
- case BLUR_RADIUS_25:
- mTest = new Blur25(false);
- break;
- case INTRINSIC_BLUE_RADIUS_25:
- mTest = new Blur25(true);
- break;
- case GREYSCALE:
- mTest = new Greyscale();
- break;
- case GRAIN:
- mTest = new Grain();
- break;
- case FISHEYE_FULL:
- mTest = new Fisheye(false, false);
- break;
- case FISHEYE_RELAXED:
- mTest = new Fisheye(false, true);
- break;
- case FISHEYE_APPROXIMATE_FULL:
- mTest = new Fisheye(true, false);
- break;
- case FISHEYE_APPROXIMATE_RELAXED:
- mTest = new Fisheye(true, true);
- break;
- case VIGNETTE_FULL:
- mTest = new Vignette(false, false);
- break;
- case VIGNETTE_RELAXED:
- mTest = new Vignette(false, true);
- break;
- case VIGNETTE_APPROXIMATE_FULL:
- mTest = new Vignette(true, false);
- break;
- case VIGNETTE_APPROXIMATE_RELAXED:
- mTest = new Vignette(true, true);
- break;
- case GROUP_TEST_EMULATED:
- mTest = new GroupTest(false);
- break;
- case GROUP_TEST_NATIVE:
- mTest = new GroupTest(true);
- break;
- case CONVOLVE_3X3:
- mTest = new Convolve3x3(false);
- break;
- case INTRINSICS_CONVOLVE_3X3:
- mTest = new Convolve3x3(true);
- break;
- case COLOR_MATRIX:
- mTest = new ColorMatrix(false, false);
- break;
- case INTRINSICS_COLOR_MATRIX:
- mTest = new ColorMatrix(true, false);
- break;
- case INTRINSICS_COLOR_MATRIX_GREY:
- mTest = new ColorMatrix(true, true);
- break;
- case COPY:
- mTest = new Copy();
- break;
- case CROSS_PROCESS_USING_LUT:
- mTest = new CrossProcess();
- break;
- case CONVOLVE_5X5:
- mTest = new Convolve5x5(false);
- break;
- case INTRINSICS_CONVOLVE_5X5:
- mTest = new Convolve5x5(true);
- break;
- case MANDELBROT:
- mTest = new Mandelbrot();
- break;
- case INTRINSICS_BLEND:
- mTest = new Blend();
- break;
- }
-
- mTest.createBaseTest(this, mBitmapIn, mBitmapIn2);
- setupBars();
-
- mTest.runTest();
- updateDisplay();
- mBenchmarkResult.setText("Result: not run");
- }
-
- void setupTests() {
- mTestSpinner.setAdapter(new ArrayAdapter<TestName>(
- this, R.layout.spinner_layout, TestName.values()));
- }
-
- private AdapterView.OnItemSelectedListener mTestSpinnerListener =
- new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
- changeTest(TestName.values()[pos]);
- }
-
- public void onNothingSelected(AdapterView parent) {
-
- }
- };
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mBitmapIn = loadBitmap(R.drawable.img1600x1067);
- mBitmapIn2 = loadBitmap(R.drawable.img1600x1067b);
- mBitmapOut = loadBitmap(R.drawable.img1600x1067);
-
- mSurfaceView = (SurfaceView) findViewById(R.id.surface);
-
- mDisplayView = (ImageView) findViewById(R.id.display);
- mDisplayView.setImageBitmap(mBitmapOut);
-
- mSpinner = (Spinner) findViewById(R.id.spinner1);
-
- mBar1 = (SeekBar) findViewById(R.id.slider1);
- mBar2 = (SeekBar) findViewById(R.id.slider2);
- mBar3 = (SeekBar) findViewById(R.id.slider3);
- mBar4 = (SeekBar) findViewById(R.id.slider4);
- mBar5 = (SeekBar) findViewById(R.id.slider5);
-
- mBar1.setOnSeekBarChangeListener(this);
- mBar2.setOnSeekBarChangeListener(this);
- mBar3.setOnSeekBarChangeListener(this);
- mBar4.setOnSeekBarChangeListener(this);
- mBar5.setOnSeekBarChangeListener(this);
-
- mText1 = (TextView) findViewById(R.id.slider1Text);
- mText2 = (TextView) findViewById(R.id.slider2Text);
- mText3 = (TextView) findViewById(R.id.slider3Text);
- mText4 = (TextView) findViewById(R.id.slider4Text);
- mText5 = (TextView) findViewById(R.id.slider5Text);
-
- mTestSpinner = (Spinner) findViewById(R.id.filterselection);
- mTestSpinner.setOnItemSelectedListener(mTestSpinnerListener);
-
- mBenchmarkResult = (TextView) findViewById(R.id.benchmarkText);
- mBenchmarkResult.setText("Result: not run");
-
- setupTests();
- changeTest(TestName.LEVELS_VEC3_RELAXED);
- }
-
-
- private Bitmap loadBitmap(int resource) {
- final BitmapFactory.Options options = new BitmapFactory.Options();
- options.inPreferredConfig = Bitmap.Config.ARGB_8888;
- return copyBitmap(BitmapFactory.decodeResource(getResources(), resource, options));
- }
-
- private static Bitmap copyBitmap(Bitmap source) {
- Bitmap b = Bitmap.createBitmap(source.getWidth(), source.getHeight(), source.getConfig());
- Canvas c = new Canvas(b);
- c.drawBitmap(source, 0, 0, null);
- source.recycle();
- return b;
- }
-
- // button hook
- public void benchmark(View v) {
- float t = getBenchmark();
- //long javaTime = javaFilter();
- //mBenchmarkResult.setText("RS: " + t + " ms Java: " + javaTime + " ms");
- mBenchmarkResult.setText("Result: " + t + " ms");
- Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + t);
- }
-
- public void benchmark_all(View v) {
- // write result into a file
- File externalStorage = Environment.getExternalStorageDirectory();
- if (!externalStorage.canWrite()) {
- Log.v(TAG, "sdcard is not writable");
- return;
- }
- File resultFile = new File(externalStorage, RESULT_FILE);
- resultFile.setWritable(true, false);
- try {
- BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile));
- Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath());
- for (TestName tn: TestName.values()) {
- changeTest(tn);
- float t = getBenchmark();
- String s = new String("" + tn.toString() + ", " + t);
- rsWriter.write(s + "\n");
- Log.v(TAG, "Test " + s + "ms\n");
- }
- rsWriter.close();
- } catch (IOException e) {
- Log.v(TAG, "Unable to write result file " + e.getMessage());
- }
- changeTest(TestName.LEVELS_VEC3_RELAXED);
- }
-
- // For benchmark test
- public float getBenchmark() {
- mDoingBenchmark = true;
-
- mTest.setupBenchmark();
- long result = 0;
-
- //Log.v(TAG, "Warming");
- long t = java.lang.System.currentTimeMillis() + 250;
- do {
- mTest.runTest();
- mTest.finish();
- } while (t > java.lang.System.currentTimeMillis());
-
- //Log.v(TAG, "Benchmarking");
- int ct = 0;
- t = java.lang.System.currentTimeMillis();
- do {
- mTest.runTest();
- mTest.finish();
- ct++;
- } while ((t+1000) > java.lang.System.currentTimeMillis());
- t = java.lang.System.currentTimeMillis() - t;
- float ft = (float)t;
- ft /= ct;
-
- mTest.exitBenchmark();
- mDoingBenchmark = false;
-
- return ft;
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java
deleted file mode 100644
index 1b38e1f..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import com.android.rs.image.ImageProcessingTestRunner;
-
-import android.os.Bundle;
-import com.android.rs.image.ImageProcessingActivity.TestName;
-
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-/**
- * ImageProcessing benchmark test.
- * To run the test, please use command
- *
- * adb shell am instrument -e iteration <n> -w com.android.rs.image/.ImageProcessingTestRunner
- *
- */
-public class ImageProcessingTest extends ActivityInstrumentationTestCase2<ImageProcessingActivity> {
- private final String TAG = "ImageProcessingTest";
- private final String TEST_NAME = "Testname";
- private final String ITERATIONS = "Iterations";
- private final String BENCHMARK = "Benchmark";
- private static int INSTRUMENTATION_IN_PROGRESS = 2;
- private int mIteration;
- private ImageProcessingActivity mActivity;
-
- public ImageProcessingTest() {
- super(ImageProcessingActivity.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- setActivityInitialTouchMode(false);
- mActivity = getActivity();
- ImageProcessingTestRunner mRunner = (ImageProcessingTestRunner) getInstrumentation();
- mIteration = mRunner.mIteration;
- assertTrue("please enter a valid iteration value", mIteration > 0);
- }
-
- @Override
- public void tearDown() throws Exception {
- super.tearDown();
- }
-
- class TestAction implements Runnable {
- TestName mTestName;
- float mResult;
- public TestAction(TestName testName) {
- mTestName = testName;
- }
- public void run() {
- mActivity.changeTest(mTestName);
- mResult = mActivity.getBenchmark();
- Log.v(TAG, "Benchmark for test \"" + mTestName.toString() + "\" is: " + mResult);
- synchronized(this) {
- this.notify();
- }
- }
- public float getBenchmark() {
- return mResult;
- }
- }
-
- // Set the benchmark thread to run on ui thread
- // Synchronized the thread such that the test will wait for the benchmark thread to finish
- public void runOnUiThread(Runnable action) {
- synchronized(action) {
- mActivity.runOnUiThread(action);
- try {
- action.wait();
- } catch (InterruptedException e) {
- Log.v(TAG, "waiting for action running on UI thread is interrupted: " +
- e.toString());
- }
- }
- }
-
- public void runTest(TestAction ta, String testName) {
- float sum = 0;
- for (int i = 0; i < mIteration; i++) {
- runOnUiThread(ta);
- float bmValue = ta.getBenchmark();
- Log.v(TAG, "results for iteration " + i + " is " + bmValue);
- sum += bmValue;
- }
- float avgResult = sum/mIteration;
-
- // post result to INSTRUMENTATION_STATUS
- Bundle results = new Bundle();
- results.putString(TEST_NAME, testName);
- results.putInt(ITERATIONS, mIteration);
- results.putFloat(BENCHMARK, avgResult);
- getInstrumentation().sendStatus(INSTRUMENTATION_IN_PROGRESS, results);
- }
-
- // Test case 0: Levels Vec3 Relaxed
- @LargeTest
- public void testLevelsVec3Relaxed() {
- TestAction ta = new TestAction(TestName.LEVELS_VEC3_RELAXED);
- runTest(ta, TestName.LEVELS_VEC3_RELAXED.name());
- }
-
- // Test case 1: Levels Vec4 Relaxed
- @LargeTest
- public void testLevelsVec4Relaxed() {
- TestAction ta = new TestAction(TestName.LEVELS_VEC4_RELAXED);
- runTest(ta, TestName.LEVELS_VEC4_RELAXED.name());
- }
-
- // Test case 2: Levels Vec3 Full
- @LargeTest
- public void testLevelsVec3Full() {
- TestAction ta = new TestAction(TestName.LEVELS_VEC3_FULL);
- runTest(ta, TestName.LEVELS_VEC3_FULL.name());
- }
-
- // Test case 3: Levels Vec4 Full
- @LargeTest
- public void testLevelsVec4Full() {
- TestAction ta = new TestAction(TestName.LEVELS_VEC4_FULL);
- runTest(ta, TestName.LEVELS_VEC4_FULL.name());
- }
-
- // Test case 4: Blur Radius 25
- @LargeTest
- public void testBlurRadius25() {
- TestAction ta = new TestAction(TestName.BLUR_RADIUS_25);
- runTest(ta, TestName.BLUR_RADIUS_25.name());
- }
-
- // Test case 5: Intrinsic Blur Radius 25
- @LargeTest
- public void testIntrinsicBlurRadius25() {
- TestAction ta = new TestAction(TestName.INTRINSIC_BLUE_RADIUS_25);
- runTest(ta, TestName.INTRINSIC_BLUE_RADIUS_25.name());
- }
-
- // Test case 6: Greyscale
- @LargeTest
- public void testGreyscale() {
- TestAction ta = new TestAction(TestName.GREYSCALE);
- runTest(ta, TestName.GREYSCALE.name());
- }
-
- // Test case 7: Grain
- @LargeTest
- public void testGrain() {
- TestAction ta = new TestAction(TestName.GRAIN);
- runTest(ta, TestName.GRAIN.name());
- }
-
- // Test case 8: Fisheye Full
- @LargeTest
- public void testFisheyeFull() {
- TestAction ta = new TestAction(TestName.FISHEYE_FULL);
- runTest(ta, TestName.FISHEYE_FULL.name());
- }
-
- // Test case 9: Fisheye Relaxed
- @LargeTest
- public void testFishEyeRelaxed() {
- TestAction ta = new TestAction(TestName.FISHEYE_RELAXED);
- runTest(ta, TestName.FISHEYE_RELAXED.name());
- }
-
- // Test case 10: Fisheye Approximate Full
- @LargeTest
- public void testFisheyeApproximateFull() {
- TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_FULL);
- runTest(ta, TestName.FISHEYE_APPROXIMATE_FULL.name());
- }
-
- // Test case 11: Fisheye Approximate Relaxed
- @LargeTest
- public void testFisheyeApproximateRelaxed() {
- TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_RELAXED);
- runTest(ta, TestName.FISHEYE_APPROXIMATE_RELAXED.name());
- }
-
- // Test case 12: Vignette Full
- @LargeTest
- public void testVignetteFull() {
- TestAction ta = new TestAction(TestName.VIGNETTE_FULL);
- runTest(ta, TestName.VIGNETTE_FULL.name());
- }
-
- // Test case 13: Vignette Relaxed
- @LargeTest
- public void testVignetteRelaxed() {
- TestAction ta = new TestAction(TestName.VIGNETTE_RELAXED);
- runTest(ta, TestName.VIGNETTE_RELAXED.name());
- }
-
- // Test case 14: Vignette Approximate Full
- @LargeTest
- public void testVignetteApproximateFull() {
- TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_FULL);
- runTest(ta, TestName.VIGNETTE_APPROXIMATE_FULL.name());
- }
-
- // Test case 15: Vignette Approximate Relaxed
- @LargeTest
- public void testVignetteApproximateRelaxed() {
- TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_RELAXED);
- runTest(ta, TestName.VIGNETTE_APPROXIMATE_RELAXED.name());
- }
-
- // Test case 16: Group Test (emulated)
- @LargeTest
- public void testGroupTestEmulated() {
- TestAction ta = new TestAction(TestName.GROUP_TEST_EMULATED);
- runTest(ta, TestName.GROUP_TEST_EMULATED.name());
- }
-
- // Test case 17: Group Test (native)
- @LargeTest
- public void testGroupTestNative() {
- TestAction ta = new TestAction(TestName.GROUP_TEST_NATIVE);
- runTest(ta, TestName.GROUP_TEST_NATIVE.name());
- }
-
- // Test case 18: Convolve 3x3
- @LargeTest
- public void testConvolve3x3() {
- TestAction ta = new TestAction(TestName.CONVOLVE_3X3);
- runTest(ta, TestName.CONVOLVE_3X3.name());
- }
-
- // Test case 19: Intrinsics Convolve 3x3
- @LargeTest
- public void testIntrinsicsConvolve3x3() {
- TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_3X3);
- runTest(ta, TestName.INTRINSICS_CONVOLVE_3X3.name());
- }
-
- // Test case 20: ColorMatrix
- @LargeTest
- public void testColorMatrix() {
- TestAction ta = new TestAction(TestName.COLOR_MATRIX);
- runTest(ta, TestName.COLOR_MATRIX.name());
- }
-
- // Test case 21: Intrinsics ColorMatrix
- @LargeTest
- public void testIntrinsicsColorMatrix() {
- TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX);
- runTest(ta, TestName.INTRINSICS_COLOR_MATRIX.name());
- }
-
- // Test case 22: Intrinsics ColorMatrix Grey
- @LargeTest
- public void testIntrinsicsColorMatrixGrey() {
- TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX_GREY);
- runTest(ta, TestName.INTRINSICS_COLOR_MATRIX_GREY.name());
- }
-
- // Test case 23: Copy
- @LargeTest
- public void testCopy() {
- TestAction ta = new TestAction(TestName.COPY);
- runTest(ta, TestName.COPY.name());
- }
-
- // Test case 24: CrossProcess (using LUT)
- @LargeTest
- public void testCrossProcessUsingLUT() {
- TestAction ta = new TestAction(TestName.CROSS_PROCESS_USING_LUT);
- runTest(ta, TestName.CROSS_PROCESS_USING_LUT.name());
- }
-
- // Test case 25: Convolve 5x5
- @LargeTest
- public void testConvolve5x5() {
- TestAction ta = new TestAction(TestName.CONVOLVE_5X5);
- runTest(ta, TestName.CONVOLVE_5X5.name());
- }
-
- // Test case 26: Intrinsics Convolve 5x5
- @LargeTest
- public void testIntrinsicsConvolve5x5() {
- TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_5X5);
- runTest(ta, TestName.INTRINSICS_CONVOLVE_5X5.name());
- }
-
- // Test case 27: Mandelbrot
- @LargeTest
- public void testMandelbrot() {
- TestAction ta = new TestAction(TestName.MANDELBROT);
- runTest(ta, TestName.MANDELBROT.name());
- }
-
- // Test case 28
- @LargeTest
- public void testIntrinsicsBlend() {
- TestAction ta = new TestAction(TestName.INTRINSICS_BLEND);
- runTest(ta, TestName.INTRINSICS_BLEND.name());
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java
deleted file mode 100644
index 36fbb3e..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import com.android.rs.image.ImageProcessingTest;
-import android.os.Bundle;
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-import junit.framework.TestSuite;
-
-/**
- * Run the ImageProcessing benchmark test
- * adb shell am instrument -e iteration <n> -w com.android.rs.image/.ImageProcessingTestRunner
- *
- */
-public class ImageProcessingTestRunner extends InstrumentationTestRunner {
- public int mIteration = 5;
-
- @Override
- public TestSuite getAllTests() {
- TestSuite suite = new InstrumentationTestSuite(this);
- suite.addTestSuite(ImageProcessingTest.class);
- return suite;
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- String strIteration = (String) icicle.get("iteration");
- if (strIteration != null) {
- mIteration = Integer.parseInt(strIteration);
- }
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/LevelsV4.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/LevelsV4.java
deleted file mode 100644
index 9eb5647..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/LevelsV4.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.Matrix3f;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.Type;
-import android.util.Log;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-
-public class LevelsV4 extends TestBase {
- private ScriptC_levels_relaxed mScriptR;
- private ScriptC_levels_full mScriptF;
- private float mInBlack = 0.0f;
- private float mOutBlack = 0.0f;
- private float mInWhite = 255.0f;
- private float mOutWhite = 255.0f;
- private float mSaturation = 1.0f;
-
- Matrix3f satMatrix = new Matrix3f();
- float mInWMinInB;
- float mOutWMinOutB;
- float mOverInWMinInB;
-
- boolean mUseFull;
- boolean mUseV4;
-
- LevelsV4(boolean useFull, boolean useV4) {
- mUseFull = useFull;
- mUseV4 = useV4;
- }
-
-
- private void setLevels() {
- mInWMinInB = mInWhite - mInBlack;
- mOutWMinOutB = mOutWhite - mOutBlack;
- mOverInWMinInB = 1.f / mInWMinInB;
-
- mScriptR.set_inBlack(mInBlack);
- mScriptR.set_outBlack(mOutBlack);
- mScriptR.set_inWMinInB(mInWMinInB);
- mScriptR.set_outWMinOutB(mOutWMinOutB);
- mScriptR.set_overInWMinInB(mOverInWMinInB);
- mScriptF.set_inBlack(mInBlack);
- mScriptF.set_outBlack(mOutBlack);
- mScriptF.set_inWMinInB(mInWMinInB);
- mScriptF.set_outWMinOutB(mOutWMinOutB);
- mScriptF.set_overInWMinInB(mOverInWMinInB);
- }
-
- private void setSaturation() {
- float rWeight = 0.299f;
- float gWeight = 0.587f;
- float bWeight = 0.114f;
- float oneMinusS = 1.0f - mSaturation;
-
- satMatrix.set(0, 0, oneMinusS * rWeight + mSaturation);
- satMatrix.set(0, 1, oneMinusS * rWeight);
- satMatrix.set(0, 2, oneMinusS * rWeight);
- satMatrix.set(1, 0, oneMinusS * gWeight);
- satMatrix.set(1, 1, oneMinusS * gWeight + mSaturation);
- satMatrix.set(1, 2, oneMinusS * gWeight);
- satMatrix.set(2, 0, oneMinusS * bWeight);
- satMatrix.set(2, 1, oneMinusS * bWeight);
- satMatrix.set(2, 2, oneMinusS * bWeight + mSaturation);
- mScriptR.set_colorMat(satMatrix);
- mScriptF.set_colorMat(satMatrix);
- }
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- b.setProgress(50);
- t.setText("Saturation");
- return true;
- }
- public boolean onBar2Setup(SeekBar b, TextView t) {
- b.setMax(128);
- b.setProgress(0);
- t.setText("In Black");
- return true;
- }
- public boolean onBar3Setup(SeekBar b, TextView t) {
- b.setMax(128);
- b.setProgress(0);
- t.setText("Out Black");
- return true;
- }
- public boolean onBar4Setup(SeekBar b, TextView t) {
- b.setMax(128);
- b.setProgress(128);
- t.setText("Out White");
- return true;
- }
- public boolean onBar5Setup(SeekBar b, TextView t) {
- b.setMax(128);
- b.setProgress(128);
- t.setText("Out White");
- return true;
- }
-
- public void onBar1Changed(int progress) {
- mSaturation = (float)progress / 50.0f;
- setSaturation();
- }
- public void onBar2Changed(int progress) {
- mInBlack = (float)progress;
- setLevels();
- }
- public void onBar3Changed(int progress) {
- mOutBlack = (float)progress;
- setLevels();
- }
- public void onBar4Changed(int progress) {
- mInWhite = (float)progress + 127.0f;
- setLevels();
- }
- public void onBar5Changed(int progress) {
- mOutWhite = (float)progress + 127.0f;
- setLevels();
- }
-
- public void createTest(android.content.res.Resources res) {
- mScriptR = new ScriptC_levels_relaxed(mRS, res, R.raw.levels_relaxed);
- mScriptF = new ScriptC_levels_full(mRS, res, R.raw.levels_full);
- setSaturation();
- setLevels();
- }
-
- public void runTest() {
- if (mUseFull) {
- if (mUseV4) {
- mScriptF.forEach_root4(mInPixelsAllocation, mOutPixelsAllocation);
- } else {
- mScriptF.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
- } else {
- if (mUseV4) {
- mScriptR.forEach_root4(mInPixelsAllocation, mOutPixelsAllocation);
- } else {
- mScriptR.forEach_root(mInPixelsAllocation, mOutPixelsAllocation);
- }
- }
- }
-
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java
deleted file mode 100644
index 20036e6..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import java.lang.Math;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.Script;
-import android.renderscript.ScriptC;
-import android.renderscript.Type;
-import android.util.Log;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-public class Mandelbrot extends TestBase {
- private ScriptC_mandelbrot mScript;
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Iterations");
- b.setProgress(0);
- return true;
- }
-
- public void onBar1Changed(int progress) {
- int iters = progress * 3 + 50;
- mScript.set_gMaxIteration(iters);
- }
-
- public boolean onBar2Setup(SeekBar b, TextView t) {
- t.setText("Lower Bound: X");
- b.setProgress(0);
- return true;
- }
-
- public void onBar2Changed(int progress) {
- float scaleFactor = mScript.get_scaleFactor();
- // allow viewport to be moved by 2x scale factor
- float lowerBoundX = -2.f + ((progress / scaleFactor) / 50.f);
- mScript.set_lowerBoundX(lowerBoundX);
- }
-
- public boolean onBar3Setup(SeekBar b, TextView t) {
- t.setText("Lower Bound: Y");
- b.setProgress(0);
- return true;
- }
-
- public void onBar3Changed(int progress) {
- float scaleFactor = mScript.get_scaleFactor();
- // allow viewport to be moved by 2x scale factor
- float lowerBoundY = -2.f + ((progress / scaleFactor) / 50.f);
- mScript.set_lowerBoundY(lowerBoundY);
- }
-
- public boolean onBar4Setup(SeekBar b, TextView t) {
- t.setText("Scale Factor");
- b.setProgress(0);
- return true;
- }
-
- public void onBar4Changed(int progress) {
- float scaleFactor = 4.f - (3.96f * (progress / 100.f));
- mScript.set_scaleFactor(scaleFactor);
- }
-
- public void createTest(android.content.res.Resources res) {
- int width = mOutPixelsAllocation.getType().getX();
- int height = mOutPixelsAllocation.getType().getY();
-
- mScript = new ScriptC_mandelbrot(mRS, res, R.raw.mandelbrot);
- mScript.set_gDimX(width);
- mScript.set_gDimY(height);
- mScript.set_gMaxIteration(50);
- }
-
- public void runTest() {
- mScript.forEach_root(mOutPixelsAllocation);
- mRS.finish();
- }
-
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/TestBase.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/TestBase.java
deleted file mode 100644
index bb3f2f3..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/TestBase.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.graphics.BitmapFactory;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.renderscript.ScriptC;
-import android.renderscript.RenderScript;
-import android.renderscript.Type;
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Script;
-import android.view.SurfaceView;
-import android.view.SurfaceHolder;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.TextView;
-import android.view.View;
-import android.util.Log;
-import java.lang.Math;
-import android.widget.Spinner;
-
-public class TestBase {
- protected final String TAG = "Img";
-
- protected RenderScript mRS;
- protected Allocation mInPixelsAllocation;
- protected Allocation mInPixelsAllocation2;
- protected Allocation mOutPixelsAllocation;
-
- protected ImageProcessingActivity act;
-
- // Override to use UI elements
- public void onBar1Changed(int progress) {
- }
- public void onBar2Changed(int progress) {
- }
- public void onBar3Changed(int progress) {
- }
- public void onBar4Changed(int progress) {
- }
- public void onBar5Changed(int progress) {
- }
-
- // Override to use UI elements
- // Unused bars will be hidden.
- public boolean onBar1Setup(SeekBar b, TextView t) {
- b.setVisibility(View.INVISIBLE);
- t.setVisibility(View.INVISIBLE);
- return false;
- }
- public boolean onBar2Setup(SeekBar b, TextView t) {
- b.setVisibility(View.INVISIBLE);
- t.setVisibility(View.INVISIBLE);
- return false;
- }
- public boolean onBar3Setup(SeekBar b, TextView t) {
- b.setVisibility(View.INVISIBLE);
- t.setVisibility(View.INVISIBLE);
- return false;
- }
- public boolean onBar4Setup(SeekBar b, TextView t) {
- b.setVisibility(View.INVISIBLE);
- t.setVisibility(View.INVISIBLE);
- return false;
- }
- public boolean onBar5Setup(SeekBar b, TextView t) {
- b.setVisibility(View.INVISIBLE);
- t.setVisibility(View.INVISIBLE);
- return false;
- }
-
- public boolean onSpinner1Setup(Spinner s) {
- s.setVisibility(View.INVISIBLE);
- return false;
- }
-
- public final void createBaseTest(ImageProcessingActivity ipact, Bitmap b, Bitmap b2) {
- act = ipact;
- mRS = RenderScript.create(act);
- mInPixelsAllocation = Allocation.createFromBitmap(mRS, b,
- Allocation.MipmapControl.MIPMAP_NONE,
- Allocation.USAGE_SCRIPT);
- mInPixelsAllocation2 = Allocation.createFromBitmap(mRS, b2,
- Allocation.MipmapControl.MIPMAP_NONE,
- Allocation.USAGE_SCRIPT);
- mOutPixelsAllocation = Allocation.createFromBitmap(mRS, b,
- Allocation.MipmapControl.MIPMAP_NONE,
- Allocation.USAGE_SCRIPT);
- createTest(act.getResources());
- }
-
- // Must override
- public void createTest(android.content.res.Resources res) {
- android.util.Log.e("img", "implement createTest");
- }
-
- // Must override
- public void runTest() {
- }
-
- public void finish() {
- mRS.finish();
- }
-
- public void destroy() {
- mRS.destroy();
- mRS = null;
- }
-
- public void updateBitmap(Bitmap b) {
- mOutPixelsAllocation.copyTo(b);
- }
-
- // Override to configure specific benchmark config.
- public void setupBenchmark() {
- }
-
- // Override to reset after benchmark.
- public void exitBenchmark() {
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java
deleted file mode 100644
index 18d1103..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Vignette.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image;
-
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.Sampler;
-import android.renderscript.Type;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-public class Vignette extends TestBase {
- private ScriptC_vignette_full mScript_full = null;
- private ScriptC_vignette_relaxed mScript_relaxed = null;
- private ScriptC_vignette_approx_full mScript_approx_full = null;
- private ScriptC_vignette_approx_relaxed mScript_approx_relaxed = null;
- private final boolean approx;
- private final boolean relaxed;
- private float center_x = 0.5f;
- private float center_y = 0.5f;
- private float scale = 0.5f;
- private float shade = 0.5f;
- private float slope = 20.0f;
-
- public Vignette(boolean approx, boolean relaxed) {
- this.approx = approx;
- this.relaxed = relaxed;
- }
-
- public boolean onBar1Setup(SeekBar b, TextView t) {
- t.setText("Scale");
- b.setMax(100);
- b.setProgress(25);
- return true;
- }
- public boolean onBar2Setup(SeekBar b, TextView t) {
- t.setText("Shade");
- b.setMax(100);
- b.setProgress(50);
- return true;
- }
- public boolean onBar3Setup(SeekBar b, TextView t) {
- t.setText("Slope");
- b.setMax(100);
- b.setProgress(20);
- return true;
- }
- public boolean onBar4Setup(SeekBar b, TextView t) {
- t.setText("Shift center X");
- b.setMax(100);
- b.setProgress(50);
- return true;
- }
- public boolean onBar5Setup(SeekBar b, TextView t) {
- t.setText("Shift center Y");
- b.setMax(100);
- b.setProgress(50);
- return true;
- }
-
- public void onBar1Changed(int progress) {
- scale = progress / 50.0f;
- do_init();
- }
- public void onBar2Changed(int progress) {
- shade = progress / 100.0f;
- do_init();
- }
- public void onBar3Changed(int progress) {
- slope = (float)progress;
- do_init();
- }
- public void onBar4Changed(int progress) {
- center_x = progress / 100.0f;
- do_init();
- }
- public void onBar5Changed(int progress) {
- center_y = progress / 100.0f;
- do_init();
- }
-
- private void do_init() {
- if (approx) {
- if (relaxed)
- mScript_approx_relaxed.invoke_init_vignette(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x,
- center_y, scale, shade, slope);
- else
- mScript_approx_full.invoke_init_vignette(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x,
- center_y, scale, shade, slope);
- } else if (relaxed)
- mScript_relaxed.invoke_init_vignette(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x, center_y,
- scale, shade, slope);
- else
- mScript_full.invoke_init_vignette(
- mInPixelsAllocation.getType().getX(),
- mInPixelsAllocation.getType().getY(), center_x, center_y,
- scale, shade, slope);
- }
-
- public void createTest(android.content.res.Resources res) {
- if (approx) {
- if (relaxed)
- mScript_approx_relaxed = new ScriptC_vignette_approx_relaxed(
- mRS, res, R.raw.vignette_approx_relaxed);
- else
- mScript_approx_full = new ScriptC_vignette_approx_full(
- mRS, res, R.raw.vignette_approx_full);
- } else if (relaxed)
- mScript_relaxed = new ScriptC_vignette_relaxed(mRS, res,
- R.raw.vignette_relaxed);
- else
- mScript_full = new ScriptC_vignette_full(mRS, res,
- R.raw.vignette_full);
- do_init();
- }
-
- public void runTest() {
- if (approx) {
- if (relaxed)
- mScript_approx_relaxed.forEach_root(mInPixelsAllocation,
- mOutPixelsAllocation);
- else
- mScript_approx_full.forEach_root(mInPixelsAllocation,
- mOutPixelsAllocation);
- } else if (relaxed)
- mScript_relaxed.forEach_root(mInPixelsAllocation,
- mOutPixelsAllocation);
- else
- mScript_full.forEach_root(mInPixelsAllocation,
- mOutPixelsAllocation);
- }
-
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/blend.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/blend.rs
deleted file mode 100644
index 87b56f7..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/blend.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2011 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-uchar alpha = 0x0;
-
-void setImageAlpha(uchar4 *v_out, uint32_t x, uint32_t y) {
- v_out->rgba = convert_uchar4((convert_uint4(v_out->rgba) * alpha) >> (uint4)8);
- v_out->a = alpha;
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/colormatrix.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/colormatrix.fs
deleted file mode 100644
index ba8711b..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/colormatrix.fs
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-
-static rs_matrix4x4 Mat;
-
-void init() {
- rsMatrixLoadIdentity(&Mat);
-}
-
-void setMatrix(rs_matrix4x4 m) {
- Mat = m;
-}
-
-uchar4 __attribute__((kernel)) root(uchar4 in) {
- float4 f = convert_float4(in);
- f = rsMatrixMultiply(&Mat, f);
- f = clamp(f, 0.f, 255.f);
- return convert_uchar4(f);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve3x3.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve3x3.fs
deleted file mode 100644
index 772503f..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve3x3.fs
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-int32_t gWidth;
-int32_t gHeight;
-rs_allocation gIn;
-
-float gCoeffs[9];
-
-uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
- uint32_t x1 = min((int32_t)x+1, gWidth-1);
- uint32_t x2 = max((int32_t)x-1, 0);
- uint32_t y1 = min((int32_t)y+1, gHeight-1);
- uint32_t y2 = max((int32_t)y-1, 0);
-
- float4 p00 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y1));
- float4 p01 = convert_float4(rsGetElementAt_uchar4(gIn, x, y1));
- float4 p02 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y1));
- float4 p10 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y));
- float4 p11 = convert_float4(rsGetElementAt_uchar4(gIn, x, y));
- float4 p12 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y));
- float4 p20 = convert_float4(rsGetElementAt_uchar4(gIn, x1, y2));
- float4 p21 = convert_float4(rsGetElementAt_uchar4(gIn, x, y2));
- float4 p22 = convert_float4(rsGetElementAt_uchar4(gIn, x2, y2));
- p00 *= gCoeffs[0];
- p01 *= gCoeffs[1];
- p02 *= gCoeffs[2];
- p10 *= gCoeffs[3];
- p11 *= gCoeffs[4];
- p12 *= gCoeffs[5];
- p20 *= gCoeffs[6];
- p21 *= gCoeffs[7];
- p22 *= gCoeffs[8];
-
- p00 += p01;
- p02 += p10;
- p11 += p12;
- p20 += p21;
-
- p22 += p00;
- p02 += p11;
-
- p20 += p22;
- p20 += p02;
-
- p20 = clamp(p20, 0.f, 255.f);
- return convert_uchar4(p20);
-}
-
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve5x5.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve5x5.fs
deleted file mode 100644
index a916bfb..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/convolve5x5.fs
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-int32_t gWidth;
-int32_t gHeight;
-rs_allocation gIn;
-
-float gCoeffs[25];
-
-uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
- uint32_t x0 = max((int32_t)x-2, 0);
- uint32_t x1 = max((int32_t)x-1, 0);
- uint32_t x2 = x;
- uint32_t x3 = min((int32_t)x+1, gWidth-1);
- uint32_t x4 = min((int32_t)x+2, gWidth-1);
-
- uint32_t y0 = max((int32_t)y-2, 0);
- uint32_t y1 = max((int32_t)y-1, 0);
- uint32_t y2 = y;
- uint32_t y3 = min((int32_t)y+1, gHeight-1);
- uint32_t y4 = min((int32_t)y+2, gHeight-1);
-
- float4 p0 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y0)) * gCoeffs[0]
- + convert_float4(rsGetElementAt_uchar4(gIn, x1, y0)) * gCoeffs[1]
- + convert_float4(rsGetElementAt_uchar4(gIn, x2, y0)) * gCoeffs[2]
- + convert_float4(rsGetElementAt_uchar4(gIn, x3, y0)) * gCoeffs[3]
- + convert_float4(rsGetElementAt_uchar4(gIn, x4, y0)) * gCoeffs[4];
-
- float4 p1 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y1)) * gCoeffs[5]
- + convert_float4(rsGetElementAt_uchar4(gIn, x1, y1)) * gCoeffs[6]
- + convert_float4(rsGetElementAt_uchar4(gIn, x2, y1)) * gCoeffs[7]
- + convert_float4(rsGetElementAt_uchar4(gIn, x3, y1)) * gCoeffs[8]
- + convert_float4(rsGetElementAt_uchar4(gIn, x4, y1)) * gCoeffs[9];
-
- float4 p2 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y2)) * gCoeffs[10]
- + convert_float4(rsGetElementAt_uchar4(gIn, x1, y2)) * gCoeffs[11]
- + convert_float4(rsGetElementAt_uchar4(gIn, x2, y2)) * gCoeffs[12]
- + convert_float4(rsGetElementAt_uchar4(gIn, x3, y2)) * gCoeffs[13]
- + convert_float4(rsGetElementAt_uchar4(gIn, x4, y2)) * gCoeffs[14];
-
- float4 p3 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y3)) * gCoeffs[15]
- + convert_float4(rsGetElementAt_uchar4(gIn, x1, y3)) * gCoeffs[16]
- + convert_float4(rsGetElementAt_uchar4(gIn, x2, y3)) * gCoeffs[17]
- + convert_float4(rsGetElementAt_uchar4(gIn, x3, y3)) * gCoeffs[18]
- + convert_float4(rsGetElementAt_uchar4(gIn, x4, y3)) * gCoeffs[19];
-
- float4 p4 = convert_float4(rsGetElementAt_uchar4(gIn, x0, y4)) * gCoeffs[20]
- + convert_float4(rsGetElementAt_uchar4(gIn, x1, y4)) * gCoeffs[21]
- + convert_float4(rsGetElementAt_uchar4(gIn, x2, y4)) * gCoeffs[22]
- + convert_float4(rsGetElementAt_uchar4(gIn, x3, y4)) * gCoeffs[23]
- + convert_float4(rsGetElementAt_uchar4(gIn, x4, y4)) * gCoeffs[24];
-
- p0 = clamp(p0 + p1 + p2 + p3 + p4, 0.f, 255.f);
- return convert_uchar4(p0);
-}
-
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/copy.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/copy.fs
deleted file mode 100644
index 5f03483..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/copy.fs
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-uchar4 __attribute__((kernel)) root(uchar4 v_in) {
- return v_in;
-}
-
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh
deleted file mode 100644
index 2eacb7d..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye.rsh
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-rs_allocation in_alloc;
-rs_sampler sampler;
-
-static float2 center, neg_center, inv_dimensions, axis_scale;
-static float alpha, radius2, factor;
-
-void init_filter(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y, float k) {
- center.x = center_x;
- center.y = center_y;
- neg_center = -center;
- inv_dimensions.x = 1.f / (float)dim_x;
- inv_dimensions.y = 1.f / (float)dim_y;
- alpha = k * 2.0f + 0.75f;
-
- axis_scale = (float2)1.f;
- if (dim_x > dim_y)
- axis_scale.y = (float)dim_y / (float)dim_x;
- else
- axis_scale.x = (float)dim_x / (float)dim_y;
-
- const float bound2 = 0.25f * (axis_scale.x*axis_scale.x + axis_scale.y*axis_scale.y);
- const float bound = sqrt(bound2);
- const float radius = 1.15f * bound;
- radius2 = radius*radius;
- const float max_radian = M_PI_2 - atan(alpha / bound * sqrt(radius2 - bound2));
- factor = bound / max_radian;
-}
-
-uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
- // Convert x and y to floating point coordinates with center as origin
- const float2 inCoord = {(float)x, (float)y};
- const float2 coord = mad(inCoord, inv_dimensions, neg_center);
- const float2 scaledCoord = axis_scale * coord;
- const float dist2 = scaledCoord.x*scaledCoord.x + scaledCoord.y*scaledCoord.y;
- const float inv_dist = rsqrt(dist2);
- const float radian = M_PI_2 - atan((alpha * sqrt(radius2 - dist2)) * inv_dist);
- const float scalar = radian * factor * inv_dist;
- const float2 new_coord = mad(coord, scalar, center);
- const float4 fout = rsSample(in_alloc, sampler, new_coord);
- return rsPackColorTo8888(fout);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh
deleted file mode 100644
index fcf0a3d..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-rs_allocation in_alloc;
-rs_sampler sampler;
-
-static float2 center, neg_center, inv_dimensions, axis_scale;
-static float alpha, radius2, factor;
-
-void init_filter(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y, float k) {
- center.x = center_x;
- center.y = center_y;
- neg_center = -center;
- inv_dimensions.x = 1.f / (float)dim_x;
- inv_dimensions.y = 1.f / (float)dim_y;
- alpha = k * 2.0f + 0.75f;
-
- axis_scale = (float2)1.f;
- if (dim_x > dim_y)
- axis_scale.y = (float)dim_y / (float)dim_x;
- else
- axis_scale.x = (float)dim_x / (float)dim_y;
-
- const float bound2 = 0.25f * (axis_scale.x*axis_scale.x + axis_scale.y*axis_scale.y);
- const float bound = sqrt(bound2);
- const float radius = 1.15f * bound;
- radius2 = radius*radius;
- const float max_radian = M_PI_2 - atan(alpha / bound * sqrt(radius2 - bound2));
- factor = bound / max_radian;
-}
-
-uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
- // Convert x and y to floating point coordinates with center as origin
- const float2 inCoord = {(float)x, (float)y};
- const float2 coord = mad(inCoord, inv_dimensions, neg_center);
- const float2 scaledCoord = axis_scale * coord;
- const float dist2 = scaledCoord.x*scaledCoord.x + scaledCoord.y*scaledCoord.y;
- const float inv_dist = half_rsqrt(dist2);
- const float radian = M_PI_2 - atan((alpha * half_sqrt(radius2 - dist2)) * inv_dist);
- const float scalar = radian * factor * inv_dist;
- const float2 new_coord = mad(coord, scalar, center);
- const float4 fout = rsSample(in_alloc, sampler, new_coord);
- return rsPackColorTo8888(fout);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs
deleted file mode 100644
index 1ea37db..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-#include "fisheye_approx.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.fs
deleted file mode 100644
index 3e76368..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.fs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-#include "fisheye_approx.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs
deleted file mode 100644
index 20f27e2..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-#include "fisheye.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.fs
deleted file mode 100644
index dc3ffcb..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.fs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-#include "fisheye.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/grain.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/grain.fs
deleted file mode 100644
index 4ae095d..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/grain.fs
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-uchar __attribute__((kernel)) genRand() {
- return (uchar)rsRand(0xff);
-}
-
-/*
- * Convolution matrix of distance 2 with fixed point of 'kShiftBits' bits
- * shifted. Thus the sum of this matrix should be 'kShiftValue'. Entries of
- * small values are not calculated to gain efficiency.
- * The order ot pixels represented in this matrix is:
- * 1 2 3
- * 4 0 5
- * 6 7 8
- * and the matrix should be: {230, 56, 114, 56, 114, 114, 56, 114, 56}.
- * However, since most of the valus are identical, we only use the first three
- * entries and the entries corresponding to the pixels is:
- * 1 2 1
- * 2 0 2
- * 1 2 1
- */
-
-int32_t gWMask;
-int32_t gHMask;
-
-rs_allocation gBlendSource;
-uchar __attribute__((kernel)) blend9(uint32_t x, uint32_t y) {
- uint32_t x1 = (x-1) & gWMask;
- uint32_t x2 = (x+1) & gWMask;
- uint32_t y1 = (y-1) & gHMask;
- uint32_t y2 = (y+1) & gHMask;
-
- uint p00 = 56 * rsGetElementAt_uchar(gBlendSource, x1, y1);
- uint p01 = 114 * rsGetElementAt_uchar(gBlendSource, x, y1);
- uint p02 = 56 * rsGetElementAt_uchar(gBlendSource, x2, y1);
- uint p10 = 114 * rsGetElementAt_uchar(gBlendSource, x1, y);
- uint p11 = 230 * rsGetElementAt_uchar(gBlendSource, x, y);
- uint p12 = 114 * rsGetElementAt_uchar(gBlendSource, x2, y);
- uint p20 = 56 * rsGetElementAt_uchar(gBlendSource, x1, y2);
- uint p21 = 114 * rsGetElementAt_uchar(gBlendSource, x, y2);
- uint p22 = 56 * rsGetElementAt_uchar(gBlendSource, x2, y2);
-
- p00 += p01;
- p02 += p10;
- p11 += p12;
- p20 += p21;
-
- p22 += p00;
- p02 += p11;
-
- p20 += p22;
- p20 += p02;
-
- p20 = min(p20 >> 10, (uint)255);
- return (uchar)p20;
-}
-
-float gNoiseStrength;
-
-rs_allocation gNoise;
-uchar4 __attribute__((kernel)) root(uchar4 in, uint32_t x, uint32_t y) {
- float4 ip = convert_float4(in);
- float pnoise = (float) rsGetElementAt_uchar(gNoise, x & gWMask, y & gHMask);
-
- float energy_level = ip.r + ip.g + ip.b;
- float energy_mask = (28.f - sqrt(energy_level)) * 0.03571f;
- pnoise = (pnoise - 128.f) * energy_mask;
-
- ip += pnoise * gNoiseStrength;
- ip = clamp(ip, 0.f, 255.f);
-
- uchar4 p = convert_uchar4(ip);
- p.a = 0xff;
- return p;
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/greyscale.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/greyscale.fs
deleted file mode 100644
index 90ba058..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/greyscale.fs
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-const static float3 gMonoMult = {0.299f, 0.587f, 0.114f};
-
-uchar4 __attribute__((kernel)) root(uchar4 v_in) {
- float4 f4 = rsUnpackColor8888(v_in);
-
- float3 mono = dot(f4.rgb, gMonoMult);
- return rsPackColorTo8888(mono);
-}
-
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels.rsh
deleted file mode 100644
index e289906..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels.rsh
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-float inBlack;
-float outBlack;
-float inWMinInB;
-float outWMinOutB;
-float overInWMinInB;
-rs_matrix3x3 colorMat;
-
-uchar4 __attribute__((kernel)) root(uchar4 in, uint32_t x, uint32_t y) {
- uchar4 out;
- float3 pixel = convert_float4(in).rgb;
- pixel = rsMatrixMultiply(&colorMat, pixel);
- pixel = clamp(pixel, 0.f, 255.f);
- pixel = (pixel - inBlack) * overInWMinInB;
- pixel = pixel * outWMinOutB + outBlack;
- pixel = clamp(pixel, 0.f, 255.f);
- out.xyz = convert_uchar3(pixel);
- out.w = 0xff;
- return out;
-}
-
-uchar4 __attribute__((kernel)) root4(uchar4 in, uint32_t x, uint32_t y) {
- float4 pixel = convert_float4(in);
- pixel.rgb = rsMatrixMultiply(&colorMat, pixel.rgb);
- pixel = clamp(pixel, 0.f, 255.f);
- pixel = (pixel - inBlack) * overInWMinInB;
- pixel = pixel * outWMinOutB + outBlack;
- pixel = clamp(pixel, 0.f, 255.f);
- return convert_uchar4(pixel);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_full.rs
deleted file mode 100644
index da6a291..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_full.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-#include "levels.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_relaxed.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_relaxed.fs
deleted file mode 100644
index b115445..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/levels_relaxed.fs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-#include "levels.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs
deleted file mode 100644
index ac2061b..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (C) 2011 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-uint32_t gMaxIteration = 500;
-uint32_t gDimX = 1024;
-uint32_t gDimY = 1024;
-
-float lowerBoundX = -2.f;
-float lowerBoundY = -2.f;
-float scaleFactor = 4.f;
-
-uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
- float2 p;
- p.x = lowerBoundX + ((float)x / gDimX) * scaleFactor;
- p.y = lowerBoundY + ((float)y / gDimY) * scaleFactor;
-
- float2 t = 0;
- float2 t2 = t * t;
- int iter = 0;
- while((t2.x + t2.y < 4.f) && (iter < gMaxIteration)) {
- float xtemp = t2.x - t2.y + p.x;
- t.y = 2 * t.x * t.y + p.y;
- t.x = xtemp;
- iter++;
- t2 = t * t;
- }
-
- if(iter >= gMaxIteration) {
- // write a non-transparent black pixel
- return (uchar4){0, 0, 0, 0xff};
- } else {
- float mi3 = gMaxIteration / 3.f;
- if (iter <= (gMaxIteration / 3))
- return (uchar4){0xff * (iter / mi3), 0, 0, 0xff};
- else if (iter <= (((gMaxIteration / 3) * 2)))
- return (uchar4){0xff - (0xff * ((iter - mi3) / mi3)),
- (0xff * ((iter - mi3) / mi3)), 0, 0xff};
- else
- return (uchar4){0, 0xff - (0xff * ((iter - (mi3 * 2)) / mi3)),
- (0xff * ((iter - (mi3 * 2)) / mi3)), 0xff};
- }
-}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/threshold.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/threshold.fs
deleted file mode 100644
index 86e155a..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/threshold.fs
+++ /dev/null
@@ -1,104 +0,0 @@
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-
-int height;
-int width;
-static int radius;
-
-rs_allocation InPixel;
-rs_allocation ScratchPixel1;
-rs_allocation ScratchPixel2;
-
-const int MAX_RADIUS = 25;
-
-// Store our coefficients here
-static float gaussian[MAX_RADIUS * 2 + 1];
-
-void setRadius(int rad) {
- radius = rad;
- // Compute gaussian weights for the blur
- // e is the euler's number
- float e = 2.718281828459045f;
- float pi = 3.1415926535897932f;
- // g(x) = ( 1 / sqrt( 2 * pi ) * sigma) * e ^ ( -x^2 / 2 * sigma^2 )
- // x is of the form [-radius .. 0 .. radius]
- // and sigma varies with radius.
- // Based on some experimental radius values and sigma's
- // we approximately fit sigma = f(radius) as
- // sigma = radius * 0.4 + 0.6
- // The larger the radius gets, the more our gaussian blur
- // will resemble a box blur since with large sigma
- // the gaussian curve begins to lose its shape
- float sigma = 0.4f * (float)radius + 0.6f;
-
- // Now compute the coefficints
- // We will store some redundant values to save some math during
- // the blur calculations
- // precompute some values
- float coeff1 = 1.0f / (sqrt( 2.0f * pi ) * sigma);
- float coeff2 = - 1.0f / (2.0f * sigma * sigma);
-
- float normalizeFactor = 0.0f;
- float floatR = 0.0f;
- for (int r = -radius; r <= radius; r ++) {
- floatR = (float)r;
- gaussian[r + radius] = coeff1 * pow(e, floatR * floatR * coeff2);
- normalizeFactor += gaussian[r + radius];
- }
-
- //Now we need to normalize the weights because all our coefficients need to add up to one
- normalizeFactor = 1.0f / normalizeFactor;
- for (int r = -radius; r <= radius; r ++) {
- floatR = (float)r;
- gaussian[r + radius] *= normalizeFactor;
- }
-}
-
-float4 __attribute__((kernel)) copyIn(uchar4 in) {
- return convert_float4(in);
-}
-
-uchar4 __attribute__((kernel)) vert(uint32_t x, uint32_t y) {
- float3 blurredPixel = 0;
- int gi = 0;
- uchar4 out;
- if ((y > radius) && (y < (height - radius))) {
- for (int r = -radius; r <= radius; r ++) {
- float4 i = rsGetElementAt_float4(ScratchPixel2, x, y + r);
- blurredPixel += i.xyz * gaussian[gi++];
- }
- } else {
- for (int r = -radius; r <= radius; r ++) {
- int validH = rsClamp((int)y + r, (int)0, (int)(height - 1));
- float4 i = rsGetElementAt_float4(ScratchPixel2, x, validH);
- blurredPixel += i.xyz * gaussian[gi++];
- }
- }
-
- out.xyz = convert_uchar3(clamp(blurredPixel, 0.f, 255.f));
- out.w = 0xff;
- return out;
-}
-
-float4 __attribute__((kernel)) horz(uint32_t x, uint32_t y) {
- float4 blurredPixel = 0;
- int gi = 0;
- if ((x > radius) && (x < (width - radius))) {
- for (int r = -radius; r <= radius; r ++) {
- float4 i = rsGetElementAt_float4(ScratchPixel1, x + r, y);
- blurredPixel += i * gaussian[gi++];
- }
- } else {
- for (int r = -radius; r <= radius; r ++) {
- // Stepping left and right away from the pixel
- int validX = rsClamp((int)x + r, (int)0, (int)(width - 1));
- float4 i = rsGetElementAt_float4(ScratchPixel1, validX, y);
- blurredPixel += i * gaussian[gi++];
- }
- }
-
- return blurredPixel;
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh
deleted file mode 100644
index 04ca1f1..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-static float2 neg_center, axis_scale, inv_dimensions;
-static float sloped_neg_range, sloped_inv_max_dist, shade, opp_shade;
-
-void init_vignette(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y,
- float desired_scale, float desired_shade, float desired_slope) {
-
- neg_center.x = -center_x;
- neg_center.y = -center_y;
- inv_dimensions.x = 1.f / (float)dim_x;
- inv_dimensions.y = 1.f / (float)dim_y;
-
- axis_scale = (float2)1.f;
- if (dim_x > dim_y)
- axis_scale.y = (float)dim_y / (float)dim_x;
- else
- axis_scale.x = (float)dim_x / (float)dim_y;
-
- const float max_dist = 0.5f * length(axis_scale);
- sloped_inv_max_dist = desired_slope * 1.f/max_dist;
-
- // Range needs to be between 1.3 to 0.6. When scale is zero then range is
- // 1.3 which means no vignette at all because the luminousity difference is
- // less than 1/256. Expect input scale to be between 0.0 and 1.0.
- const float neg_range = 0.7f*sqrt(desired_scale) - 1.3f;
- sloped_neg_range = exp(neg_range * desired_slope);
-
- shade = desired_shade;
- opp_shade = 1.f - desired_shade;
-}
-
-uchar4 __attribute__((kernel)) root(uchar4 in, uint32_t x, uint32_t y) {
- // Convert x and y to floating point coordinates with center as origin
- const float4 fin = convert_float4(in);
- const float2 inCoord = {(float)x, (float)y};
- const float2 coord = mad(inCoord, inv_dimensions, neg_center);
- const float sloped_dist_ratio = length(axis_scale * coord) * sloped_inv_max_dist;
- const float lumen = opp_shade + shade / ( 1.0f + sloped_neg_range * exp(sloped_dist_ratio) );
- float4 fout;
- fout.rgb = fin.rgb * lumen;
- fout.w = fin.w;
- return convert_uchar4(fout);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh
deleted file mode 100644
index 05a5929..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-static float2 neg_center, axis_scale, inv_dimensions;
-static float sloped_neg_range, sloped_inv_max_dist, shade, opp_shade;
-
-void init_vignette(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y,
- float desired_scale, float desired_shade, float desired_slope) {
-
- neg_center.x = -center_x;
- neg_center.y = -center_y;
- inv_dimensions.x = 1.f / (float)dim_x;
- inv_dimensions.y = 1.f / (float)dim_y;
-
- axis_scale = (float2)1.f;
- if (dim_x > dim_y)
- axis_scale.y = (float)dim_y / (float)dim_x;
- else
- axis_scale.x = (float)dim_x / (float)dim_y;
-
- const float max_dist = 0.5f * length(axis_scale);
- sloped_inv_max_dist = desired_slope * 1.f/max_dist;
-
- // Range needs to be between 1.3 to 0.6. When scale is zero then range is
- // 1.3 which means no vignette at all because the luminousity difference is
- // less than 1/256. Expect input scale to be between 0.0 and 1.0.
- const float neg_range = 0.7f*sqrt(desired_scale) - 1.3f;
- sloped_neg_range = exp(neg_range * desired_slope);
-
- shade = desired_shade;
- opp_shade = 1.f - desired_shade;
-}
-
-uchar4 __attribute__((kernel)) root(uchar4 in, uint32_t x, uint32_t y) {
- // Convert x and y to floating point coordinates with center as origin
- const float4 fin = convert_float4(in);
- const float2 inCoord = {(float)x, (float)y};
- const float2 coord = mad(inCoord, inv_dimensions, neg_center);
- const float sloped_dist_ratio = fast_length(axis_scale * coord) * sloped_inv_max_dist;
- // TODO: add half_exp once implemented
- const float lumen = opp_shade + shade * half_recip(1.f + sloped_neg_range * exp(sloped_dist_ratio));
- float4 fout;
- fout.rgb = fin.rgb * lumen;
- fout.w = fin.w;
- return convert_uchar4(fout);
-}
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs
deleted file mode 100644
index c83c6e1..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-#include "vignette_approx.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.fs
deleted file mode 100644
index 9120612..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.fs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-#include "vignette_approx.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs
deleted file mode 100644
index 64942d9..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_full.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-
-#include "vignette.rsh"
-
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.fs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.fs
deleted file mode 100644
index 8e47ea9..0000000
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.fs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
-
-#include "vignette.rsh"
-