title: opengl es api with no current context
body: <p>I have looked through the solutions and haven't really found one. I am getting this error because it seems like the execution happens outside of the gl thread. However I am not sure how to fix this. The code is as follows:</p>
  
  <pre><code>public shape()
  {
      super();        
  
  
  
      vertexShader = Shader.loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode); //&lt;============
      fragmentShader = Shader.loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode);      
  
      ByteBuffer buffer = ByteBuffer.allocateDirect(getCoordinates().length * 4);
      buffer.order(ByteOrder.nativeOrder());
      vertexBuffer = buffer.asFloatBuffer();
  
      vertexBuffer.put(getCoordinates());
      vertexBuffer.position(0);
  
      ByteBuffer drawListBuffer = ByteBuffer.allocateDirect(getOrderOfDraw().length * 2);
  
      drawListBuffer.order(ByteOrder.nativeOrder());
  
      listBuffer = drawListBuffer.asShortBuffer();
      listBuffer.put(getOrderOfDraw());
  
      listBuffer.position(0);
  
  
       mProgram = GLES20.glCreateProgram();             // create empty OpenGL Program
       GLES20.glAttachShader(mProgram, vertexShader);   // add the vertex shader to program
       GLES20.glAttachShader(mProgram, fragmentShader); // add the fragment shader to program
       GLES20.glLinkProgram(mProgram); 
  
  }
  </code></pre>
  
  <p>and the calling renderer is</p>
  
  <pre><code>    Square square = new Square(5, 5);
  
  public void onDrawFrame(GL10 unused) 
  {
  
      unused.glLoadIdentity();
      unused.glClear(GLES20.GL_COLOR_BUFFER_BIT);
      square.Draw();
  }
  </code></pre>
  
  <p>Square extends from shape</p>