diff options
author | Jason Sams <rjsams@android.com> | 2009-12-17 16:55:08 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-12-17 16:55:08 -0800 |
commit | 68afd01ec9fd37774d8291192952a25e5605b6fb (patch) | |
tree | b75c5b23b57446285d9c14a5d789722b916ea1e8 /graphics/jni | |
parent | 8bb41dd61474e977aa61048ba8f733a984a3b22d (diff) | |
download | frameworks_base-68afd01ec9fd37774d8291192952a25e5605b6fb.zip frameworks_base-68afd01ec9fd37774d8291192952a25e5605b6fb.tar.gz frameworks_base-68afd01ec9fd37774d8291192952a25e5605b6fb.tar.bz2 |
Move texture bindings to base program object. Change ProgramFragment creation to require a texture format in 1.0 mode.
Diffstat (limited to 'graphics/jni')
-rw-r--r-- | graphics/jni/android_renderscript_RenderScript.cpp | 59 |
1 files changed, 18 insertions, 41 deletions
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index 8bacefc..6ae93a7 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -1063,56 +1063,36 @@ nProgramBindConstants(JNIEnv *_env, jobject _this, jint vpv, jint slot, jint a) rsProgramBindConstants(con, (RsProgram)vpv, slot, (RsAllocation)a); } -// --------------------------------------------------------------------------- - static void -nProgramFragmentSetShader(JNIEnv *_env, jobject _this, jstring name) +nProgramBindTexture(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - const char* n = _env->GetStringUTFChars(name, NULL); - LOG_API("nProgramFragmentSetShader, con(%p)", con); - rsProgramFragmentSetShader(con, n, _env->GetStringUTFLength(name)); - _env->ReleaseStringUTFChars(name, n); + LOG_API("nProgramBindTexture, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsAllocation)a); + rsProgramBindTexture(con, (RsProgramFragment)vpf, slot, (RsAllocation)a); } static void -nProgramFragmentBegin(JNIEnv *_env, jobject _this, jint in, jint out, jboolean pointSpriteEnable) +nProgramBindSampler(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentBegin, con(%p), in(%p), out(%p) PointSprite(%i)", con, (RsElement)in, (RsElement)out, pointSpriteEnable); - rsProgramFragmentBegin(con, (RsElement)in, (RsElement)out, pointSpriteEnable); + LOG_API("nProgramBindSampler, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsSampler)a); + rsProgramBindSampler(con, (RsProgramFragment)vpf, slot, (RsSampler)a); } -static void -nProgramFragmentBindTexture(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentBindTexture, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsAllocation)a); - rsProgramFragmentBindTexture(con, (RsProgramFragment)vpf, slot, (RsAllocation)a); -} +// --------------------------------------------------------------------------- -static void -nProgramFragmentBindSampler(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) +static jint +nProgramFragmentCreate(JNIEnv *_env, jobject _this, jintArray params) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentBindSampler, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsSampler)a); - rsProgramFragmentBindSampler(con, (RsProgramFragment)vpf, slot, (RsSampler)a); -} + jint *paramPtr = _env->GetIntArrayElements(params, NULL); + jint paramLen = _env->GetArrayLength(params); -static void -nProgramFragmentSetSlot(JNIEnv *_env, jobject _this, jint slot, jboolean enable, jint env, jint vt) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentSetType, con(%p), slot(%i), enable(%i), env(%i), vt(%p)", con, slot, enable, env, (RsType)vt); - rsProgramFragmentSetSlot(con, slot, enable, (RsTexEnvMode)env, (RsType)vt); -} + LOG_API("nProgramFragmentCreate, con(%p), paramLen(%i)", con, shaderLen, paramLen); -static jint -nProgramFragmentCreate(JNIEnv *_env, jobject _this, jint slot, jboolean enable) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentCreate, con(%p)", con); - return (jint)rsProgramFragmentCreate(con); + jint ret = (jint)rsProgramFragmentCreate(con, (uint32_t *)paramPtr, paramLen); + _env->ReleaseIntArrayElements(params, paramPtr, JNI_ABORT); + return ret; } static jint @@ -1455,13 +1435,10 @@ static JNINativeMethod methods[] = { {"nProgramFragmentStoreCreate", "()I", (void*)nProgramFragmentStoreCreate }, {"nProgramBindConstants", "(III)V", (void*)nProgramBindConstants }, +{"nProgramBindTexture", "(III)V", (void*)nProgramBindTexture }, +{"nProgramBindSampler", "(III)V", (void*)nProgramBindSampler }, -{"nProgramFragmentBegin", "(IIZ)V", (void*)nProgramFragmentBegin }, -{"nProgramFragmentBindTexture", "(III)V", (void*)nProgramFragmentBindTexture }, -{"nProgramFragmentBindSampler", "(III)V", (void*)nProgramFragmentBindSampler }, -{"nProgramFragmentSetSlot", "(IZII)V", (void*)nProgramFragmentSetSlot }, -{"nProgramFragmentSetShader", "(Ljava/lang/String;)V", (void*)nProgramFragmentSetShader }, -{"nProgramFragmentCreate", "()I", (void*)nProgramFragmentCreate }, +{"nProgramFragmentCreate", "([I)I", (void*)nProgramFragmentCreate }, {"nProgramFragmentCreate2", "(Ljava/lang/String;[I)I", (void*)nProgramFragmentCreate2 }, {"nProgramRasterCreate", "(IIZZZ)I", (void*)nProgramRasterCreate }, |