diff options
author | Jason Sams <rjsams@android.com> | 2009-08-17 13:56:09 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-17 13:56:09 -0700 |
commit | 334ea0c98f051b5a6b85bc616c93304651854298 (patch) | |
tree | b3d87acd4f6285446fdc166d0ec9bb5330f42c21 /graphics | |
parent | 0ef135d5c79ff5b443b43f8743250044700a8bb5 (diff) | |
download | frameworks_base-334ea0c98f051b5a6b85bc616c93304651854298.zip frameworks_base-334ea0c98f051b5a6b85bc616c93304651854298.tar.gz frameworks_base-334ea0c98f051b5a6b85bc616c93304651854298.tar.bz2 |
Update fountain and add writable flag to script slots.
Diffstat (limited to 'graphics')
4 files changed, 59 insertions, 6 deletions
diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java index aab8c21..3061b1e 100644 --- a/graphics/java/android/renderscript/Element.java +++ b/graphics/java/android/renderscript/Element.java @@ -223,6 +223,52 @@ public class Element extends BaseObj { return this; } + public Builder addFloat(Element.DataKind dk) { + add(DataType.FLOAT, dk, false, 32, null); + return this; + } + + public Builder addFloat(Element.DataKind dk, String name) { + add(DataType.FLOAT, dk, false, 32, name); + return this; + } + + public Builder addFloatXY() { + add(DataType.FLOAT, DataKind.X, false, 32, null); + add(DataType.FLOAT, DataKind.Y, false, 32, null); + return this; + } + + public Builder addFloatXYZ() { + add(DataType.FLOAT, DataKind.X, false, 32, null); + add(DataType.FLOAT, DataKind.Y, false, 32, null); + add(DataType.FLOAT, DataKind.Z, false, 32, null); + return this; + } + + public Builder addFloatRGB() { + add(DataType.FLOAT, DataKind.RED, false, 32, null); + add(DataType.FLOAT, DataKind.GREEN, false, 32, null); + add(DataType.FLOAT, DataKind.BLUE, false, 32, null); + return this; + } + + public Builder addFloatRGBA() { + add(DataType.FLOAT, DataKind.RED, false, 32, null); + add(DataType.FLOAT, DataKind.GREEN, false, 32, null); + add(DataType.FLOAT, DataKind.BLUE, false, 32, null); + add(DataType.FLOAT, DataKind.ALPHA, false, 32, null); + return this; + } + + public Builder addUNorm8RGBA() { + add(DataType.UNSIGNED, DataKind.RED, true, 8, null); + add(DataType.UNSIGNED, DataKind.GREEN, true, 8, null); + add(DataType.UNSIGNED, DataKind.BLUE, true, 8, null); + add(DataType.UNSIGNED, DataKind.ALPHA, true, 8, null); + return this; + } + static synchronized Element internalCreate(RenderScript rs, Builder b) { rs.nElementBegin(); for (int ct=0; ct < b.mEntryCount; ct++) { diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index b98a48a..ab263ed 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -142,7 +142,7 @@ public class RenderScript { native void nScriptSetClearDepth(int script, float depth); native void nScriptSetClearStencil(int script, int stencil); native void nScriptSetTimeZone(int script, byte[] timeZone); - native void nScriptSetType(int type, String name, int slot); + native void nScriptSetType(int type, boolean writable, String name, int slot); native void nScriptSetRoot(boolean isRoot); native void nScriptCBegin(); diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java index 47479d8..5b9eb55 100644 --- a/graphics/java/android/renderscript/Script.java +++ b/graphics/java/android/renderscript/Script.java @@ -24,6 +24,7 @@ public class Script extends BaseObj { boolean mIsRoot; Type[] mTypes; + boolean[] mWritable; Script(int id, RenderScript rs) { super(rs); @@ -67,11 +68,13 @@ public class Script extends BaseObj { boolean mIsRoot = false; Type[] mTypes; String[] mNames; + boolean[] mWritable; Builder(RenderScript rs) { mRS = rs; mTypes = new Type[MAX_SLOT]; mNames = new String[MAX_SLOT]; + mWritable = new boolean[MAX_SLOT]; } public void setType(Type t, int slot) { @@ -84,11 +87,15 @@ public class Script extends BaseObj { mNames[slot] = name; } + public void setType(boolean writable, int slot) { + mWritable[slot] = writable; + } + void transferCreate() { mRS.nScriptSetRoot(mIsRoot); for(int ct=0; ct < mTypes.length; ct++) { if(mTypes[ct] != null) { - mRS.nScriptSetType(mTypes[ct].mID, mNames[ct], ct); + mRS.nScriptSetType(mTypes[ct].mID, mWritable[ct], mNames[ct], ct); } } } diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index 5780e02..4d6f252 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -825,15 +825,15 @@ nScriptSetTimeZone(JNIEnv *_env, jobject _this, jint script, jbyteArray timeZone } static void -nScriptSetType(JNIEnv *_env, jobject _this, jint type, jstring _str, jint slot) +nScriptSetType(JNIEnv *_env, jobject _this, jint type, jboolean writable, jstring _str, jint slot) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nScriptCAddType, con(%p), type(%p), slot(%i)", con, (RsType)type, slot); + LOG_API("nScriptCAddType, con(%p), type(%p), writable(%i), slot(%i)", con, (RsType)type, writable, slot); const char* n = NULL; if (_str) { n = _env->GetStringUTFChars(_str, NULL); } - rsScriptSetType((RsType)type, slot, n); + rsScriptSetType((RsType)type, slot, writable, n); if (n) { _env->ReleaseStringUTFChars(_str, n); } @@ -1381,7 +1381,7 @@ static JNINativeMethod methods[] = { {"nScriptSetClearDepth", "(IF)V", (void*)nScriptSetClearDepth }, {"nScriptSetClearStencil", "(II)V", (void*)nScriptSetClearStencil }, {"nScriptSetTimeZone", "(I[B)V", (void*)nScriptSetTimeZone }, -{"nScriptSetType", "(ILjava/lang/String;I)V", (void*)nScriptSetType }, +{"nScriptSetType", "(IZLjava/lang/String;I)V", (void*)nScriptSetType }, {"nScriptSetRoot", "(Z)V", (void*)nScriptSetRoot }, {"nScriptCBegin", "()V", (void*)nScriptCBegin }, |