summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2011-03-16 16:29:28 -0700
committerJason Sams <rjsams@android.com>2011-03-17 16:13:03 -0700
commite4a06c5fc738bf219f2a495e12a637b2d0871651 (patch)
treea7102d6914154f456a57403ae690d9d2f8979aae /graphics
parentce06ebfda4bd7c511cef3d98aacf7291a743ea46 (diff)
downloadframeworks_base-e4a06c5fc738bf219f2a495e12a637b2d0871651.zip
frameworks_base-e4a06c5fc738bf219f2a495e12a637b2d0871651.tar.gz
frameworks_base-e4a06c5fc738bf219f2a495e12a637b2d0871651.tar.bz2
Start seperating out RS compute implementation. Create hal
layer to seperate from runtime. Change-Id: Idf5c1261be4131690d25c15948e98324e979b4f9
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/renderscript/RenderScript.java17
-rw-r--r--graphics/java/android/renderscript/ScriptC.java7
-rw-r--r--graphics/jni/android_renderscript_RenderScript.cpp54
3 files changed, 25 insertions, 53 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index b51279a..f577532 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -457,20 +457,11 @@ public class RenderScript {
rsnScriptSetVarObj(mContext, id, slot, val);
}
- native void rsnScriptCBegin(int con);
- synchronized void nScriptCBegin() {
+ native int rsnScriptCCreate(int con, String resName, String cacheDir,
+ byte[] script, int length);
+ synchronized int nScriptCCreate(String resName, String cacheDir, byte[] script, int length) {
validate();
- rsnScriptCBegin(mContext);
- }
- native void rsnScriptCSetScript(int con, byte[] script, int offset, int length);
- synchronized void nScriptCSetScript(byte[] script, int offset, int length) {
- validate();
- rsnScriptCSetScript(mContext, script, offset, length);
- }
- native int rsnScriptCCreate(int con, String packageName, String resName, String cacheDir);
- synchronized int nScriptCCreate(String packageName, String resName, String cacheDir) {
- validate();
- return rsnScriptCCreate(mContext, packageName, resName, cacheDir);
+ return rsnScriptCCreate(mContext, resName, cacheDir, script, length);
}
native void rsnSamplerBegin(int con);
diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java
index 9445283..f865753 100644
--- a/graphics/java/android/renderscript/ScriptC.java
+++ b/graphics/java/android/renderscript/ScriptC.java
@@ -92,16 +92,13 @@ public class ScriptC extends Script {
throw new Resources.NotFoundException();
}
- rs.nScriptCBegin();
- rs.nScriptCSetScript(pgm, 0, pgmLength);
-
// E.g, /system/apps/Fountain.apk
- String packageName = rs.getApplicationContext().getPackageResourcePath();
+ //String packageName = rs.getApplicationContext().getPackageResourcePath();
// For res/raw/fountain.bc, it wil be /com.android.fountain:raw/fountain
String resName = resources.getResourceName(resourceID);
String cacheDir = rs.getApplicationContext().getCacheDir().toString();
Log.v(TAG, "Create script for resource = " + resName);
- return rs.nScriptCCreate(packageName, resName, cacheDir);
+ return rs.nScriptCCreate(resName, cacheDir, pgm, pgmLength);
}
}
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index 2afd74c..c7f4809 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -848,65 +848,51 @@ nScriptInvokeV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo
// -----------------------------------
-static void
-nScriptCBegin(JNIEnv *_env, jobject _this, RsContext con)
+static jint
+nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con,
+ jstring resName, jstring cacheDir,
+ jbyteArray scriptRef, jint length)
{
- LOG_API("nScriptCBegin, con(%p)", con);
- rsScriptCBegin(con);
-}
+ LOG_API("nScriptCCreate, con(%p)", con);
+
+ AutoJavaStringToUTF8 resNameUTF(_env, resName);
+ AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);
+ jint ret = 0;
-static void
-nScriptCSetScript(JNIEnv *_env, jobject _this, RsContext con, jbyteArray scriptRef,
- jint offset, jint length)
-{
- LOG_API("!!! nScriptCSetScript, con(%p)", con);
jint _exception = 0;
jint remaining;
- jbyte* script_base = 0;
jbyte* script_ptr;
if (!scriptRef) {
_exception = 1;
//_env->ThrowNew(IAEClass, "script == null");
goto exit;
}
- if (offset < 0) {
- _exception = 1;
- //_env->ThrowNew(IAEClass, "offset < 0");
- goto exit;
- }
if (length < 0) {
_exception = 1;
//_env->ThrowNew(IAEClass, "length < 0");
goto exit;
}
- remaining = _env->GetArrayLength(scriptRef) - offset;
+ remaining = _env->GetArrayLength(scriptRef);
if (remaining < length) {
_exception = 1;
//_env->ThrowNew(IAEClass, "length > script.length - offset");
goto exit;
}
- script_base = (jbyte *)
+ script_ptr = (jbyte *)
_env->GetPrimitiveArrayCritical(scriptRef, (jboolean *)0);
- script_ptr = script_base + offset;
- rsScriptCSetText(con, (const char *)script_ptr, length);
+ //rsScriptCSetText(con, (const char *)script_ptr, length);
+
+ ret = (jint)rsScriptCCreate(con, resNameUTF.c_str(), cacheDirUTF.c_str(),
+ (const char *)script_ptr, length);
exit:
- if (script_base) {
- _env->ReleasePrimitiveArrayCritical(scriptRef, script_base,
+ if (script_ptr) {
+ _env->ReleasePrimitiveArrayCritical(scriptRef, script_ptr,
_exception ? JNI_ABORT: 0);
}
-}
-static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con, jstring packageName, jstring resName, jstring cacheDir)
-{
- LOG_API("nScriptCCreate, con(%p)", con);
- AutoJavaStringToUTF8 packageNameUTF(_env, packageName);
- AutoJavaStringToUTF8 resNameUTF(_env, resName);
- AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);
- jint i = (jint)rsScriptCCreate(con, packageNameUTF.c_str(), resNameUTF.c_str(), cacheDirUTF.c_str());
- return i;
+ return ret;
}
// ---------------------------------------------------------------------------
@@ -1282,9 +1268,7 @@ static JNINativeMethod methods[] = {
{"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV },
{"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj },
-{"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin },
-{"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript },
-{"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I", (void*)nScriptCCreate },
+{"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;[BI)I", (void*)nScriptCCreate },
{"rsnProgramStoreBegin", "(III)V", (void*)nProgramStoreBegin },
{"rsnProgramStoreDepthFunc", "(II)V", (void*)nProgramStoreDepthFunc },