Loading graphics/java/android/renderscript/RenderScript.java +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ public class RenderScript { native void nContextBindProgramFragmentStore(int pfs); native void nContextBindProgramFragment(int pf); native void nContextBindProgramVertex(int pf); native void nContextAddDefineI32(String name, int value); native void nContextAddDefineF(String name, float value); native void nAssignName(int obj, byte[] name); native int nFileOpen(byte[] name); Loading Loading @@ -139,6 +141,8 @@ public class RenderScript { native void nScriptCSetRoot(boolean isRoot); native void nScriptCSetScript(byte[] script, int offset, int length); native int nScriptCCreate(); native void nScriptCAddDefineI32(String name, int value); native void nScriptCAddDefineF(String name, float value); native void nSamplerDestroy(int sampler); native void nSamplerBegin(); Loading graphics/java/android/renderscript/ScriptC.java +24 −9 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package android.renderscript; import java.io.IOException; import java.io.InputStream; import android.content.res.Resources; import android.util.Log; import java.io.IOException; import java.io.InputStream; import java.util.Map.Entry; import java.util.HashMap; /** * @hide Loading @@ -30,12 +32,11 @@ public class ScriptC extends Script { super(id, rs); } public static class Builder extends Script.Builder { byte[] mProgram; int mProgramLength; HashMap<String,Integer> mIntDefines = new HashMap(); HashMap<String,Float> mFloatDefines = new HashMap(); public Builder(RenderScript rs) { super(rs); Loading Loading @@ -88,19 +89,33 @@ public class ScriptC extends Script { b.mRS.nScriptCBegin(); b.transferCreate(); b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); for (Entry<String,Integer> e: b.mIntDefines.entrySet()) { b.mRS.nScriptCAddDefineI32(e.getKey(), e.getValue().intValue()); } for (Entry<String,Float> e: b.mFloatDefines.entrySet()) { b.mRS.nScriptCAddDefineF(e.getKey(), e.getValue().floatValue()); } b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); int id = b.mRS.nScriptCCreate(); ScriptC obj = new ScriptC(id, b.mRS); b.transferObject(obj); return obj; } public void addDefine(String name, int value) { mIntDefines.put(name, value); } public void addDefine(String name, float value) { mFloatDefines.put(name, value); } public ScriptC create() { return internalCreate(this); } } } graphics/jni/android_renderscript_RenderScript.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -765,6 +765,26 @@ nScriptCCreate(JNIEnv *_env, jobject _this) return (jint)rsScriptCCreate(); } static void nScriptCAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); rsScriptCSetDefineI32(n, value); _env->ReleaseStringUTFChars(name, n); } static void nScriptCAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); rsScriptCSetDefineF(n, value); _env->ReleaseStringUTFChars(name, n); } // --------------------------------------------------------------------------- static void Loading Loading @@ -985,6 +1005,27 @@ nContextBindProgramVertex(JNIEnv *_env, jobject _this, jint pf) rsContextBindProgramVertex((RsProgramVertex)pf); } static void nContextAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); rsContextSetDefineI32(n, value); _env->ReleaseStringUTFChars(name, n); } static void nContextAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); rsContextSetDefineF(n, value); _env->ReleaseStringUTFChars(name, n); } // --------------------------------------------------------------------------- static void Loading Loading @@ -1197,6 +1238,8 @@ static JNINativeMethod methods[] = { {"nScriptCSetRoot", "(Z)V", (void*)nScriptCSetRoot }, {"nScriptCSetScript", "([BII)V", (void*)nScriptCSetScript }, {"nScriptCCreate", "()I", (void*)nScriptCCreate }, {"nScriptCAddDefineI32", "(Ljava/lang/String;I)V", (void*)nScriptCAddDefineI32 }, {"nScriptCAddDefineF", "(Ljava/lang/String;F)V", (void*)nScriptCAddDefineF }, {"nProgramFragmentStoreBegin", "(II)V", (void*)nProgramFragmentStoreBegin }, {"nProgramFragmentStoreDepthFunc", "(I)V", (void*)nProgramFragmentStoreDepthFunc }, Loading libs/rs/rs.spec +19 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ ContextBindProgramVertex { param RsProgramVertex pgm } ContextSetDefineF { param const char* name param float value } ContextSetDefineI32 { param const char* name param int32_t value } AssignName { param void *obj param const char *name Loading Loading @@ -318,6 +328,15 @@ ScriptCCreate { ret RsScript } ScriptCSetDefineF { param const char* name param float value } ScriptCSetDefineI32 { param const char* name param int32_t value } ProgramFragmentStoreBegin { param RsElement in Loading libs/rs/rsContext.cpp +29 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,26 @@ void Context::appendNameDefines(String8 *str) const } } void Context::appendVarDefines(String8 *str) const { char buf[256]; for (size_t ct=0; ct < mInt32Defines.size(); ct++) { str->append("#define "); str->append(mInt32Defines.keyAt(ct)); str->append(" "); sprintf(buf, "%i\n", (int)mInt32Defines.valueAt(ct)); str->append(buf); } for (size_t ct=0; ct < mFloatDefines.size(); ct++) { str->append("#define "); str->append(mFloatDefines.keyAt(ct)); str->append(" "); sprintf(buf, "%ff\n", mFloatDefines.valueAt(ct)); str->append(buf); } } /////////////////////////////////////////////////////////////////////////////////////////// // Loading Loading @@ -381,6 +401,15 @@ void rsi_AssignName(Context *rsc, void * obj, const char *name, uint32_t len) rsc->assignName(ob, name, len); } void rsi_ContextSetDefineF(Context *rsc, const char* name, float value) { rsc->addInt32Define(name, value); } void rsi_ContextSetDefineI32(Context *rsc, const char* name, int32_t value) { rsc->addFloatDefine(name, value); } } } Loading Loading
graphics/java/android/renderscript/RenderScript.java +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ public class RenderScript { native void nContextBindProgramFragmentStore(int pfs); native void nContextBindProgramFragment(int pf); native void nContextBindProgramVertex(int pf); native void nContextAddDefineI32(String name, int value); native void nContextAddDefineF(String name, float value); native void nAssignName(int obj, byte[] name); native int nFileOpen(byte[] name); Loading Loading @@ -139,6 +141,8 @@ public class RenderScript { native void nScriptCSetRoot(boolean isRoot); native void nScriptCSetScript(byte[] script, int offset, int length); native int nScriptCCreate(); native void nScriptCAddDefineI32(String name, int value); native void nScriptCAddDefineF(String name, float value); native void nSamplerDestroy(int sampler); native void nSamplerBegin(); Loading
graphics/java/android/renderscript/ScriptC.java +24 −9 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package android.renderscript; import java.io.IOException; import java.io.InputStream; import android.content.res.Resources; import android.util.Log; import java.io.IOException; import java.io.InputStream; import java.util.Map.Entry; import java.util.HashMap; /** * @hide Loading @@ -30,12 +32,11 @@ public class ScriptC extends Script { super(id, rs); } public static class Builder extends Script.Builder { byte[] mProgram; int mProgramLength; HashMap<String,Integer> mIntDefines = new HashMap(); HashMap<String,Float> mFloatDefines = new HashMap(); public Builder(RenderScript rs) { super(rs); Loading Loading @@ -88,19 +89,33 @@ public class ScriptC extends Script { b.mRS.nScriptCBegin(); b.transferCreate(); b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); for (Entry<String,Integer> e: b.mIntDefines.entrySet()) { b.mRS.nScriptCAddDefineI32(e.getKey(), e.getValue().intValue()); } for (Entry<String,Float> e: b.mFloatDefines.entrySet()) { b.mRS.nScriptCAddDefineF(e.getKey(), e.getValue().floatValue()); } b.mRS.nScriptCSetScript(b.mProgram, 0, b.mProgramLength); int id = b.mRS.nScriptCCreate(); ScriptC obj = new ScriptC(id, b.mRS); b.transferObject(obj); return obj; } public void addDefine(String name, int value) { mIntDefines.put(name, value); } public void addDefine(String name, float value) { mFloatDefines.put(name, value); } public ScriptC create() { return internalCreate(this); } } }
graphics/jni/android_renderscript_RenderScript.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -765,6 +765,26 @@ nScriptCCreate(JNIEnv *_env, jobject _this) return (jint)rsScriptCCreate(); } static void nScriptCAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); rsScriptCSetDefineI32(n, value); _env->ReleaseStringUTFChars(name, n); } static void nScriptCAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); rsScriptCSetDefineF(n, value); _env->ReleaseStringUTFChars(name, n); } // --------------------------------------------------------------------------- static void Loading Loading @@ -985,6 +1005,27 @@ nContextBindProgramVertex(JNIEnv *_env, jobject _this, jint pf) rsContextBindProgramVertex((RsProgramVertex)pf); } static void nContextAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); rsContextSetDefineI32(n, value); _env->ReleaseStringUTFChars(name, n); } static void nContextAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); const char* n = _env->GetStringUTFChars(name, NULL); LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); rsContextSetDefineF(n, value); _env->ReleaseStringUTFChars(name, n); } // --------------------------------------------------------------------------- static void Loading Loading @@ -1197,6 +1238,8 @@ static JNINativeMethod methods[] = { {"nScriptCSetRoot", "(Z)V", (void*)nScriptCSetRoot }, {"nScriptCSetScript", "([BII)V", (void*)nScriptCSetScript }, {"nScriptCCreate", "()I", (void*)nScriptCCreate }, {"nScriptCAddDefineI32", "(Ljava/lang/String;I)V", (void*)nScriptCAddDefineI32 }, {"nScriptCAddDefineF", "(Ljava/lang/String;F)V", (void*)nScriptCAddDefineF }, {"nProgramFragmentStoreBegin", "(II)V", (void*)nProgramFragmentStoreBegin }, {"nProgramFragmentStoreDepthFunc", "(I)V", (void*)nProgramFragmentStoreDepthFunc }, Loading
libs/rs/rs.spec +19 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ ContextBindProgramVertex { param RsProgramVertex pgm } ContextSetDefineF { param const char* name param float value } ContextSetDefineI32 { param const char* name param int32_t value } AssignName { param void *obj param const char *name Loading Loading @@ -318,6 +328,15 @@ ScriptCCreate { ret RsScript } ScriptCSetDefineF { param const char* name param float value } ScriptCSetDefineI32 { param const char* name param int32_t value } ProgramFragmentStoreBegin { param RsElement in Loading
libs/rs/rsContext.cpp +29 −0 Original line number Diff line number Diff line Loading @@ -331,6 +331,26 @@ void Context::appendNameDefines(String8 *str) const } } void Context::appendVarDefines(String8 *str) const { char buf[256]; for (size_t ct=0; ct < mInt32Defines.size(); ct++) { str->append("#define "); str->append(mInt32Defines.keyAt(ct)); str->append(" "); sprintf(buf, "%i\n", (int)mInt32Defines.valueAt(ct)); str->append(buf); } for (size_t ct=0; ct < mFloatDefines.size(); ct++) { str->append("#define "); str->append(mFloatDefines.keyAt(ct)); str->append(" "); sprintf(buf, "%ff\n", mFloatDefines.valueAt(ct)); str->append(buf); } } /////////////////////////////////////////////////////////////////////////////////////////// // Loading Loading @@ -381,6 +401,15 @@ void rsi_AssignName(Context *rsc, void * obj, const char *name, uint32_t len) rsc->assignName(ob, name, len); } void rsi_ContextSetDefineF(Context *rsc, const char* name, float value) { rsc->addInt32Define(name, value); } void rsi_ContextSetDefineI32(Context *rsc, const char* name, int32_t value) { rsc->addFloatDefine(name, value); } } } Loading