Create holder inner class for pushing context state.
Fix bug with rsForEach corrupting parent context state.
Remove workaround from rsBalls.
Change-Id: I43a948536e70d44645d1c2ef7b97e1c5906f6943
diff --git a/rsScriptC.cpp b/rsScriptC.cpp
index 072cc16..ec7780e 100644
--- a/rsScriptC.cpp
+++ b/rsScriptC.cpp
@@ -104,16 +104,16 @@
void ScriptC::setupGLState(Context *rsc) {
if (mEnviroment.mFragmentStore.get()) {
- rsc->setFragmentStore(mEnviroment.mFragmentStore.get());
+ rsc->setProgramStore(mEnviroment.mFragmentStore.get());
}
if (mEnviroment.mFragment.get()) {
- rsc->setFragment(mEnviroment.mFragment.get());
+ rsc->setProgramFragment(mEnviroment.mFragment.get());
}
if (mEnviroment.mVertex.get()) {
- rsc->setVertex(mEnviroment.mVertex.get());
+ rsc->setProgramVertex(mEnviroment.mVertex.get());
}
if (mEnviroment.mRaster.get()) {
- rsc->setRaster(mEnviroment.mRaster.get());
+ rsc->setProgramRaster(mEnviroment.mRaster.get());
}
}
@@ -232,6 +232,7 @@
const RsScriptCall *sc) {
MTLaunchStruct mtls;
memset(&mtls, 0, sizeof(mtls));
+ Context::PushState ps(rsc);
if (ain) {
mtls.dimX = ain->getType()->getDimX();