title: Point is not showing in opengles 2.0
body: <p>I am trying to learn OpenGLES 2.0 in android in depth. I am trying to draw a Simple Point at the center of screen but somehow , the point is not showing .</p>
  
  <pre><code>    public class MyRenderer implements GLSurfaceView.Renderer {
      Context context;
  
      private int mProgram;
  
      private final float[] mViewMatrix=new float[16];
      private float[] mProjectionMatrix=new float[16];
      private final float[] mPointModelMatrix=new float[16];
  
      private final float[] mMVPMatrix=new float[16];
  
      private final float[] mPointPosInModelSpace = new float[] {0.0f, 0.0f, 0.0f, 1.0f};
      private final float[] mPointPosInWorldSpace =   new float[4];
      private final float[] mPointPosInEyeSpace   =   new float[4];
  
      private int pointMVPMatrixHandle;
      private int pointPositionHandle;
  
  public MyRenderer(Context context){
      this.context=context;
  }
  
  
  public void onDrawFrame(GL10 arg0) {
      // TODO Auto-generated method stub
  
      GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
  
      Matrix.setIdentityM(mPointModelMatrix, 0);
  
  
      Matrix.translateM(mPointModelMatrix, 0, 0.0f, 0.0f, -3.0f);
  
      Matrix.multiplyMV(mPointPosInWorldSpace, 0, mPointModelMatrix, 0, mPointPosInModelSpace, 0);
      Matrix.multiplyMV(mPointPosInEyeSpace, 0, mViewMatrix, 0, mPointPosInWorldSpace, 0);
  
      GLES20.glUseProgram(mProgram);
  
      drawPoint();        
  }
  
  
  private void drawPoint(){
  
      pointMVPMatrixHandle=GLES20.glGetUniformLocation(mProgram, "u_MVPMatrix");
      pointPositionHandle=GLES20.glGetAttribLocation(mProgram, "a_position");
  
      GLES20.glVertexAttrib3f(pointPositionHandle, mPointPosInEyeSpace[0], mPointPosInEyeSpace[1], mPointPosInEyeSpace[2]);
      GLES20.glDisableVertexAttribArray(pointPositionHandle);
  
      Matrix.multiplyMM(mMVPMatrix, 0, mViewMatrix, 0, mPointModelMatrix, 0);
      Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0);
      GLES20.glUniformMatrix4fv(pointMVPMatrixHandle, 1, false, mMVPMatrix, 0);
  
      // Draw the point.
      GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 1);
  
  
  }
  
  public void onSurfaceChanged(GL10 gl, int width, int height) {
      // TODO Auto-generated method stub
  GLES20.glViewport(0, 0, width, height); 
  
  final   float ratio=(float)width/height;
      Log.d("Ratio is", " "+ratio);
      Log.d("Width is"," "+width+"  and "+height);
  final   float left  =   -ratio;
  final   float right =   ratio;
  final   float bottom=   -1.0f;
  final   float top   =   1.0f;
  final   float near  =   1.0f;
  final   float far   =   10.0f;
  
  
  Matrix.frustumM(mProjectionMatrix, 0, left, right, bottom, top, near, far);
  }
  
  public void onSurfaceCreated(GL10 gl, EGLConfig config) {
      // TODO Auto-generated method stub
      GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  
      GLES20.glEnable(GLES20.GL_CULL_FACE);
      GLES20.glEnable(GLES20.GL_DEPTH_TEST);
  
      float eyeX=0.0f;
      float eyeY=0.0f;
      float eyeZ=-0.5f;
  
      float centerX=0.0f;
      float centerY=0.0f;
      float centerZ=-5.0f;
  
      float upX=0.0f;
      float upY=1.0f;
      float upZ=0.0f;
  
      Matrix.setLookAtM(mViewMatrix, 0, eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
  
      final String vertexShader=this.getVertexShader();
      final String fragmentShader=this.getFragmentShader();
  
      final int vertexShaderHandle=ShaderHelper.compileShader(GLES20.GL_VERTEX_SHADER, vertexShader);
      final int fragmentShaderHandle=ShaderHelper.compileShader(GLES20.GL_FRAGMENT_SHADER, fragmentShader);
  
  
      mProgram=ShaderHelper.createAndLinkProgram(vertexShaderHandle, fragmentShaderHandle, new String[]{"a_position"});       
  }
  
  private String getVertexShader(){
      final String vertexShader="uniform mat4 u_MVPMatrix;      \n"       
                + "attribute vec4 a_Position;     \n"     
                + "void main()                    \n"
                + "{                              \n"
                + "   gl_Position = u_MVPMatrix   \n"
                + "               * a_Position;   \n"
                + "   gl_PointSize = 10.0;         \n"
                + "}                              \n";
  
      return vertexShader;
  
  }
  
  private String getFragmentShader(){
      final String fragmentShader="precision mediump float;       \n"                           
                + "void main()                    \n"
                + "{                              \n"
                + "   gl_FragColor = vec4(1.0,    \n" 
                + "   1.0, 1.0, 1.0);             \n"
                + "}                              \n";
      return fragmentShader;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>I am pretty much sure that I am pointing the both eye and point in negative Z direction(further from viewer) . The point should show up as in vertex Shader, point size is 10.0 but somehow, no luck.</p>
  
  <p>Note: ShaderHelper is a class with static method compileShader and createAndLinkProgram where code for compiling shaders, checking for errors are written. (No Errors in Program)</p>