Begin adding mesh
diff --git a/libs/rs/RenderScript.h b/libs/rs/RenderScript.h
index 734fba7..5f551df 100644
--- a/libs/rs/RenderScript.h
+++ b/libs/rs/RenderScript.h
@@ -173,6 +173,14 @@
     RS_TEX_ENV_MODE_DECAL
 };
 
+enum RsPrimitive {
+    RS_PRIMITIVE_POINT,
+    RS_PRIMITIVE_LINE,
+    RS_PRIMITIVE_LINE_STRIP,
+    RS_PRIMITIVE_TRIANGLE,
+    RS_PRIMITIVE_TRIANGLE_STRIP,
+    RS_PRIMITIVE_TRIANGLE_FAN
+};
 
 
 #include "rsgApiFuncDecl.h"
diff --git a/libs/rs/java/Film/res/raw/filmstrip.c b/libs/rs/java/Film/res/raw/filmstrip.c
index a3b3d90..1687a31 100644
--- a/libs/rs/java/Film/res/raw/filmstrip.c
+++ b/libs/rs/java/Film/res/raw/filmstrip.c
@@ -31,6 +31,10 @@
     int trans;  // float
     int rot;   // float
     int x;
+    float focusPos;  // float
+    int focusID;
+    int lastFocusID;
+    int imgCount;
 
     float_2 = intToFloat(2);
     float_1 = intToFloat(1);
@@ -58,15 +62,17 @@
 
     //int imgId = 0;
 
-/*
-    contextBindProgramFragmentStore(env->fsImages);
-    contextBindProgramFragment(env->fpImages);
+    contextBindProgramFragmentStore(NAMED_PFImages);
+    contextBindProgramFragment(NAMED_PFSImages);
+
+    //focusPos = loadF(1, 2);
+    //focusID = 0;
+    //lastFocusID = loadI32(2, 0);
+    //imgCount = 13;
+
+    /*
     disable(GL_LIGHTING);
 
-    float focusPos = loadEnvF(1, 2);
-    int focusID = 0;
-    int lastFocusID = loadEnvI32(2, 0);
-    int imgCount = 13;
 
     if (trans > (-.3)) {
         focusID = -1.0 - focusPos;
diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h
index d98bfd9..f555090 100644
--- a/libs/rs/rsContext.h
+++ b/libs/rs/rsContext.h
@@ -21,6 +21,7 @@
 #include "rsMatrix.h"
 #include "rsAllocation.h"
 #include "rsTriangleMesh.h"
+#include "rsMesh.h"
 #include "rsDevice.h"
 #include "rsScriptC.h"
 #include "rsAllocation.h"
diff --git a/libs/rs/rsMesh.cpp b/libs/rs/rsMesh.cpp
new file mode 100644
index 0000000..6eb95fc
--- /dev/null
+++ b/libs/rs/rsMesh.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "rsContext.h"
+
+using namespace android;
+using namespace android::renderscript;
+
+#include <GLES/gl.h>
+#include <GLES/glext.h>
+
+Mesh::Mesh()
+{
+    mSources = NULL;
+    mPrimitives = NULL;
+    mPrimitiveCount = 0;
+}
+
+Mesh::~Mesh()
+{
+}
+
+
+
+MeshContext::MeshContext()
+{
+}
+
+MeshContext::~MeshContext()
+{
+}
+
diff --git a/libs/rs/rsMesh.h b/libs/rs/rsMesh.h
new file mode 100644
index 0000000..c6d3bc9
--- /dev/null
+++ b/libs/rs/rsMesh.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_RS_MESH_H
+#define ANDROID_RS_MESH_H
+
+
+#include "RenderScript.h"
+
+// ---------------------------------------------------------------------------
+namespace android {
+namespace renderscript {
+
+
+// An element is a group of Components that occupies one cell in a structure.
+class Mesh : public ObjectBase
+{
+public:
+    Mesh();
+    ~Mesh();
+
+    struct VertexSource_t
+    {
+        const Element * mVertexElement;
+        void * mVertexData;
+        size_t mVertexDataSize;
+
+        size_t mOffsetCoord;
+        size_t mOffsetTex;
+        size_t mOffsetNorm;
+    
+        size_t mSizeCoord;
+        size_t mSizeTex;
+        size_t mSizeNorm;
+
+        uint32_t mBufferObject;
+    };
+
+    struct Primitive_t
+    {
+        RsPrimitive mType;
+        const Element * mIndexElement;
+        void * mVertexData;
+        size_t mIndexDataSize;
+
+        uint32_t mBufferObject;
+    };
+
+    VertexSource_t * mSources;
+    Primitive_t * mPrimitives;
+    uint32_t mPrimitiveCount;
+
+    void analyzeElement();
+protected:
+};
+
+class MeshContext
+{
+public:
+    MeshContext();
+    ~MeshContext();
+
+};
+
+
+}
+}
+#endif //ANDROID_RS_TRIANGLE_MESH_H
+
+