Remove useless slot from ProgramVertex.  Optimize GL state setup.
diff --git a/rsProgramFragment.h b/rsProgramFragment.h
index 896d8dd..57fb6a5 100644
--- a/rsProgramFragment.h
+++ b/rsProgramFragment.h
@@ -23,19 +23,19 @@
 namespace android {
 namespace renderscript {
 
+class ProgramFragmentState;
 
 class ProgramFragment : public Program
 {
 public:
     const static uint32_t MAX_TEXTURE = 2;
-    const static uint32_t MAX_CONSTANTS = 2;
 
 
 
     ProgramFragment(Element *in, Element *out);
     virtual ~ProgramFragment();
 
-    virtual void setupGL();
+    virtual void setupGL(ProgramFragmentState *);
 
 
 
@@ -53,7 +53,7 @@
     // Texture lookups go though a sampler which in effect converts normalized
     // coordinates into type specific.  Multiple samples may also be taken
     // and filtered.
-    // 
+    //
     // Constants are strictly accessed by programetic loads.
     ObjectBaseRef<Allocation> mTextures[MAX_TEXTURE];
     ObjectBaseRef<Sampler> mSamplers[MAX_TEXTURE];
@@ -61,21 +61,12 @@
     uint32_t mTextureDimensions[MAX_TEXTURE];
 
 
-    ObjectBaseRef<Allocation> mConstants[MAX_CONSTANTS];
-    ObjectBaseRef<Type> mConstantTypes[MAX_CONSTANTS];
-
-
     // Hacks to create a program for now
     RsTexEnvMode mEnvModes[MAX_TEXTURE];
     uint32_t mTextureEnableMask;
-
-
-
-
-
 };
 
-class ProgramFragmentState 
+class ProgramFragmentState
 {
 public:
     ProgramFragmentState();
@@ -87,6 +78,8 @@
     ObjectBaseRef<Type> mTextureTypes[ProgramFragment::MAX_TEXTURE];
     ObjectBaseRef<ProgramFragment> mDefault;
     Vector<ProgramFragment *> mPrograms;
+
+    ObjectBaseRef<ProgramFragment> mLast;
 };