Intrinsics test
Change-Id: I1847ad0c9190100eb84f7e052dd9f3bff81dc447
This commit is contained in:
@@ -561,6 +561,12 @@ public class RenderScript {
|
||||
return rsnScriptCCreate(mContext, resName, cacheDir, script, length);
|
||||
}
|
||||
|
||||
native int rsnScriptIntrinsicCreate(int con, int id, int eid);
|
||||
synchronized int nScriptIntrinsicCreate(int id, int eid) {
|
||||
validate();
|
||||
return rsnScriptIntrinsicCreate(mContext, id, eid);
|
||||
}
|
||||
|
||||
native int rsnSamplerCreate(int con, int magFilter, int minFilter,
|
||||
int wrapS, int wrapT, int wrapR, float aniso);
|
||||
synchronized int nSamplerCreate(int magFilter, int minFilter,
|
||||
|
||||
35
graphics/java/android/renderscript/ScriptIntrinsic.java
Normal file
35
graphics/java/android/renderscript/ScriptIntrinsic.java
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package android.renderscript;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
/**
|
||||
* @hide
|
||||
**/
|
||||
public class ScriptIntrinsic extends Script {
|
||||
ScriptIntrinsic(int id, RenderScript rs) {
|
||||
super(id, rs);
|
||||
}
|
||||
|
||||
public void forEach(Allocation ain, Allocation aout) {
|
||||
forEach(0, ain, aout, null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* 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 android.renderscript;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
/**
|
||||
* @hide
|
||||
**/
|
||||
public class ScriptIntrinsicConvolve3x3 extends ScriptIntrinsic {
|
||||
private float[] mValues = new float[9];
|
||||
|
||||
ScriptIntrinsicConvolve3x3(int id, RenderScript rs) {
|
||||
super(id, rs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Supported elements types are float, float4, uchar, uchar4
|
||||
*
|
||||
*
|
||||
* @param rs
|
||||
* @param e
|
||||
*
|
||||
* @return ScriptIntrinsicConvolve3x3
|
||||
*/
|
||||
public static ScriptIntrinsicConvolve3x3 create(RenderScript rs, Element e) {
|
||||
int id = rs.nScriptIntrinsicCreate(1, e.getID(rs));
|
||||
return new ScriptIntrinsicConvolve3x3(id, rs);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void setValues(float v[]) {
|
||||
FieldPacker fp = new FieldPacker(9*4);
|
||||
for (int ct=0; ct < mValues.length; ct++) {
|
||||
mValues[ct] = v[ct];
|
||||
fp.addF32(mValues[ct]);
|
||||
}
|
||||
setVar(0, fp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package android.renderscript;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.HashMap;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
**/
|
||||
public class ScriptIntrinsicYuvToRGB extends ScriptIntrinsic {
|
||||
ScriptIntrinsicYuvToRGB(int id, RenderScript rs) {
|
||||
super(id, rs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static class Builder {
|
||||
RenderScript mRS;
|
||||
|
||||
public Builder(RenderScript rs) {
|
||||
mRS = rs;
|
||||
}
|
||||
|
||||
public void setInputFormat(int inputFormat) {
|
||||
|
||||
}
|
||||
|
||||
public void setOutputFormat(Element e) {
|
||||
|
||||
}
|
||||
|
||||
public ScriptIntrinsicYuvToRGB create() {
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1071,6 +1071,13 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static jint
|
||||
nScriptIntrinsicCreate(JNIEnv *_env, jobject _this, RsContext con, jint id, jint eid)
|
||||
{
|
||||
LOG_API("nScriptIntrinsicCreate, con(%p) id(%i) element(%p)", con, id, (void *)eid);
|
||||
return (jint)rsScriptIntrinsicCreate(con, id, (RsElement)eid);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static jint
|
||||
@@ -1412,6 +1419,7 @@ static JNINativeMethod methods[] = {
|
||||
{"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj },
|
||||
|
||||
{"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;[BI)I", (void*)nScriptCCreate },
|
||||
{"rsnScriptIntrinsicCreate", "(III)I", (void*)nScriptIntrinsicCreate },
|
||||
|
||||
{"rsnProgramStoreCreate", "(IZZZZZZIII)I", (void*)nProgramStoreCreate },
|
||||
|
||||
|
||||
@@ -167,6 +167,9 @@ public class ImageProcessingActivity extends Activity
|
||||
case 14:
|
||||
mTest = new GroupTest(false);
|
||||
break;
|
||||
case 15:
|
||||
mTest = new Intrinsics(0);
|
||||
break;
|
||||
}
|
||||
|
||||
mTest.createBaseTest(this, mBitmapIn);
|
||||
@@ -179,7 +182,7 @@ public class ImageProcessingActivity extends Activity
|
||||
}
|
||||
|
||||
void setupTests() {
|
||||
mTestNames = new String[15];
|
||||
mTestNames = new String[16];
|
||||
mTestNames[0] = "Levels Vec3 Relaxed";
|
||||
mTestNames[1] = "Levels Vec4 Relaxed";
|
||||
mTestNames[2] = "Levels Vec3 Full";
|
||||
@@ -195,6 +198,7 @@ public class ImageProcessingActivity extends Activity
|
||||
mTestNames[12] = "Vignette Approximate Relaxed";
|
||||
mTestNames[13] = "Group Test (emulated)";
|
||||
mTestNames[14] = "Group Test (native)";
|
||||
mTestNames[15] = "Intrinsics Convolve 3x3";
|
||||
mTestSpinner.setAdapter(new ArrayAdapter<String>(
|
||||
this, R.layout.spinner_layout, mTestNames));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* 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.ScriptIntrinsicConvolve3x3;
|
||||
import android.renderscript.Type;
|
||||
import android.util.Log;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class Intrinsics extends TestBase {
|
||||
private ScriptIntrinsicConvolve3x3 mScript;
|
||||
|
||||
Intrinsics(int id) {
|
||||
}
|
||||
|
||||
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;
|
||||
float v[] = new float[9];
|
||||
v[0] = 0.f; v[1] = -s; v[2] = 0.f;
|
||||
v[3] = -s; v[4] = s*4+1; v[5] = -s;
|
||||
v[6] = 0.f; v[7] = -s; v[8] = 0.f;
|
||||
mScript.setValues(v);
|
||||
}
|
||||
|
||||
|
||||
public void createTest(android.content.res.Resources res) {
|
||||
mScript = ScriptIntrinsicConvolve3x3.create(mRS, Element.RGBA_8888(mRS));
|
||||
}
|
||||
|
||||
public void runTest() {
|
||||
mScript.forEach(mInPixelsAllocation, mOutPixelsAllocation);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user