diff --git a/rsProgramVertex.cpp b/rsProgramVertex.cpp
index 1776b02..482739c 100644
--- a/rsProgramVertex.cpp
+++ b/rsProgramVertex.cpp
@@ -117,18 +117,24 @@
     mShader.append("varying vec4 varColor;\n");
     mShader.append("varying vec4 varTex0;\n");
 
-    mShader.append("void main() {\n");
-    mShader.append("  gl_Position = uni_MVP * attrib_Position;\n");
-    mShader.append("  varColor = attrib_Color;\n");
-    if (mTextureMatrixEnable) {
-        mShader.append("  varTex0 = uni_TexMatrix * attrib_T0;\n");
+    if (mUserShader.length() > 1) {
+        mShader.append(mUserShader);
     } else {
-        mShader.append("  varTex0 = attrib_T0;\n");
+        mShader.append("void main() {\n");
+        mShader.append("  gl_Position = uni_MVP * attrib_Position;\n");
+        mShader.append("  gl_PointSize = attrib_PointSize.x;\n");
+
+        mShader.append("  varColor = attrib_Color;\n");
+        if (mTextureMatrixEnable) {
+            mShader.append("  varTex0 = uni_TexMatrix * attrib_T0;\n");
+        } else {
+            mShader.append("  varTex0 = attrib_T0;\n");
+        }
+        //mShader.append("  pos.x = pos.x / 480.0;\n");
+        //mShader.append("  pos.y = pos.y / 800.0;\n");
+        //mShader.append("  gl_Position = pos;\n");
+        mShader.append("}\n");
     }
-    //mShader.append("  pos.x = pos.x / 480.0;\n");
-    //mShader.append("  pos.y = pos.y / 800.0;\n");
-    //mShader.append("  gl_Position = pos;\n");
-    mShader.append("}\n");
 }
 
 void ProgramVertex::setupGL2(const Context *rsc, ProgramVertexState *state, ShaderCache *sc)
@@ -211,7 +217,6 @@
     createShader();
 }
 
-
 ///////////////////////////////////////////////////////////////////////
 
 ProgramVertexState::ProgramVertexState()
@@ -294,6 +299,11 @@
     rsc->mStateVertex.mPV->setTextureMatrixEnable(enable);
 }
 
+void rsi_ProgramVertexSetShader(Context *rsc, const char *txt, uint32_t len)
+{
+    rsc->mStateVertex.mPV->setShader(txt, len);
+}
+
 void rsi_ProgramVertexAddLight(Context *rsc, RsLight light)
 {
     rsc->mStateVertex.mPV->addLight(static_cast<const Light *>(light));
