Add named objects and implement support for ProgramFragmentStore and ProgramFragment to be used by name in scripts.
diff --git a/rsScriptC.cpp b/rsScriptC.cpp
index 49d7872..ae58e5f 100644
--- a/rsScriptC.cpp
+++ b/rsScriptC.cpp
@@ -390,6 +390,14 @@
 bool ScriptC::run(Context *rsc, uint32_t launchID)
 {
     Env e = {rsc, this};
+
+    if (mEnviroment.mFragmentStore.get()) {
+        rsc->setFragmentStore(mEnviroment.mFragmentStore.get());
+    }
+    if (mEnviroment.mFragment.get()) {
+        rsc->setFragment(mEnviroment.mFragment.get());
+    }
+
     return mProgram.mScript(&e, &scriptCPtrTable, launchID) != 0;
 }
 
@@ -425,7 +433,7 @@
 
 }
 
-void ScriptCState::runCompiler()
+void ScriptCState::runCompiler(Context *rsc)
 {
     mAccScript = accCreateScript();
 
@@ -442,16 +450,6 @@
         ACCchar * str[pragmaMax];
         accGetPragmas(mAccScript, &pragmaCount, pragmaMax, &str[0]);
 
-        // Start with defaults
-        mEnviroment.mStateVertex = 
-            Script::Enviroment_t::VTX_ORTHO_WINDOW;
-        mEnviroment.mStateRaster = 
-            Script::Enviroment_t::RASTER_FLAT;
-        mEnviroment.mStateFragment = 
-            Script::Enviroment_t::FRAGMENT_COLOR;
-        mEnviroment.mStateFragmentStore = 
-            Script::Enviroment_t::FRAGMENT_STORE_ALWAYS_REPLACE;
-
         for (int ct=0; ct < pragmaCount; ct+=2) {
             LOGE("pragma %i %s %s", ct, str[ct], str[ct+1]);
 
@@ -462,96 +460,34 @@
 
 
             if (!strcmp(str[ct], "stateVertex")) {
-                if (!strcmp(str[ct+1], "orthoWindow")) {
-                    mEnviroment.mStateVertex = 
-                        Script::Enviroment_t::VTX_ORTHO_WINDOW;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "orthoNormalized")) {
-                    mEnviroment.mStateVertex = 
-                        Script::Enviroment_t::VTX_ORTHO_NORMALIZED;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "projection")) {
-                    mEnviroment.mStateVertex = 
-                        Script::Enviroment_t::VTX_PROJECTION;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "parent")) {
-                    mEnviroment.mStateVertex = 
-                        Script::Enviroment_t::VTX_PARENT;
-                    continue;
-                }
                 LOGE("Unreconized value %s passed to stateVertex", str[ct+1]);
             }
 
             if (!strcmp(str[ct], "stateRaster")) {
-                if (!strcmp(str[ct+1], "flat")) {
-                    mEnviroment.mStateRaster = 
-                        Script::Enviroment_t::RASTER_FLAT;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "smooth")) {
-                    mEnviroment.mStateRaster = 
-                        Script::Enviroment_t::RASTER_SMOOTH;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "parent")) {
-                    mEnviroment.mStateRaster = 
-                        Script::Enviroment_t::RASTER_PARENT;
-                    continue;
-                }
                 LOGE("Unreconized value %s passed to stateRaster", str[ct+1]);
             }
 
             if (!strcmp(str[ct], "stateFragment")) {
-                if (!strcmp(str[ct+1], "color")) {
-                    mEnviroment.mStateFragment = 
-                        Script::Enviroment_t::FRAGMENT_COLOR;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "texReplace")) {
-                    mEnviroment.mStateFragment = 
-                        Script::Enviroment_t::FRAGMENT_TEX_REPLACE;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "texModulate")) {
-                    mEnviroment.mStateFragment = 
-                        Script::Enviroment_t::FRAGMENT_TEX_MODULATE;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "parent")) {
-                    mEnviroment.mStateFragment = 
-                        Script::Enviroment_t::FRAGMENT_PARENT;
+                ProgramFragment * pf = 
+                    (ProgramFragment *)rsc->lookupName(str[ct+1]);
+                if (pf != NULL) {
+                    mEnviroment.mFragment.set(pf);
                     continue;
                 }
                 LOGE("Unreconized value %s passed to stateFragment", str[ct+1]);
             }
 
             if (!strcmp(str[ct], "stateFragmentStore")) {
-                if (!strcmp(str[ct+1], "alwaysReplace")) {
-                    mEnviroment.mStateFragmentStore = 
-                        Script::Enviroment_t::FRAGMENT_STORE_ALWAYS_REPLACE;
+                ProgramFragmentStore * pfs = 
+                    (ProgramFragmentStore *)rsc->lookupName(str[ct+1]);
+                if (pfs != NULL) {
+                    mEnviroment.mFragmentStore.set(pfs);
                     continue;
                 }
-                if (!strcmp(str[ct+1], "alwaysBlend")) {
-                    mEnviroment.mStateFragmentStore = 
-                        Script::Enviroment_t::FRAGMENT_STORE_ALWAYS_BLEND;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "depthLessReplace")) {
-                    mEnviroment.mStateFragmentStore = 
-                        Script::Enviroment_t::FRAGMENT_STORE_DEPTH_LESS_REPLACE;
-                    continue;
-                }
-                if (!strcmp(str[ct+1], "depthLessBlend")) {
-                    mEnviroment.mStateFragmentStore = 
-                        Script::Enviroment_t::FRAGMENT_STORE_DEPTH_LESS_BLEND;
-                    continue;
-                }
+
                 if (!strcmp(str[ct+1], "parent")) {
-                    mEnviroment.mStateFragmentStore = 
-                        Script::Enviroment_t::FRAGMENT_STORE_PARENT;
+                    //mEnviroment.mStateFragmentStore = 
+                        //Script::Enviroment_t::FRAGMENT_STORE_PARENT;
                     continue;
                 }
                 LOGE("Unreconized value %s passed to stateFragmentStore", str[ct+1]);
@@ -632,7 +568,7 @@
 {
     ScriptCState *ss = &rsc->mScriptC;
 
-    ss->runCompiler();
+    ss->runCompiler(rsc);
 
     ScriptC *s = new ScriptC();
     s->incRef();