Fixing uniform binding for fragment shader.
Updating the glsl fragment shader to color the lights.

Change-Id: I6f850d1aa22059a2974e379f652f7e99d6a799fb
diff --git a/libs/rs/rsProgramFragment.cpp b/libs/rs/rsProgramFragment.cpp
index a045043..ec9c569 100644
--- a/libs/rs/rsProgramFragment.cpp
+++ b/libs/rs/rsProgramFragment.cpp
@@ -71,7 +71,7 @@
         mConstantColorUniformIndex = mUniformCount;
         mUniformNames[mUniformCount++].setTo("uni_Color");
     //}
-    createShader();
+    init(rsc);
 }
 
 ProgramFragment::ProgramFragment(Context *rsc, const char * shaderText,
@@ -93,9 +93,9 @@
     mUniformNames[0].setTo("uni_Tex0");
     mUniformNames[1].setTo("uni_Tex1");
 
-    createShader();
-
     mTextureEnableMask = (1 << mTextureCount) -1;
+
+    init(rsc);
 }
 
 
@@ -134,6 +134,9 @@
         rsc->checkError("ProgramFragment::color setup");
     }
 
+    rsc->checkError("ProgramFragment::setupGL2 begin uniforms");
+    setupUserConstants(sc, true);
+
     for (uint32_t ct=0; ct < MAX_TEXTURE; ct++) {
         glActiveTexture(GL_TEXTURE0 + ct);
         if (!(mTextureEnableMask & (1 << ct)) || !mTextures[ct].get()) {
@@ -179,7 +182,7 @@
             sprintf(buf, "uniform sampler2D uni_Tex%i;\n", ct);
             mShader.append(buf);
         }
-
+        appendUserConstants();
         mShader.append(mUserShader);
     } else {
         uint32_t mask = mTextureEnableMask;
@@ -272,6 +275,13 @@
 
 void ProgramFragment::init(Context *rsc)
 {
+    if (mUserShader.size() > 0) {
+        for (uint32_t ct=0; ct < mConstantCount; ct++) {
+            initAddUserElement(mConstantTypes[ct]->getElement(), mUniformNames, &mUniformCount, "UNI_");
+        }
+    }
+
+    createShader();
 }
 
 void ProgramFragment::serialize(OStream *stream) const
@@ -304,7 +314,6 @@
     };
     ProgramFragment *pf = new ProgramFragment(rsc, tmp, 6);
     mDefault.set(pf);
-    pf->init(rsc);
 }
 
 void ProgramFragmentState::deinit(Context *rsc)