opengl es api sans contexte actuel

J'ai regardé à travers les solutions et n'ai pas vraiment trouvé. J'obtiens cette erreur car il semble que l'exécution se passe en dehors de la gl fil. Cependant, je ne suis pas sûr de la façon de résoudre ce problème. Le code est comme suit:

public shape()
{
    super();        



    vertexShader = Shader.loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode); //<============
    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); 

}

et de l'appel rendu est

    Square square = new Square(5, 5);

public void onDrawFrame(GL10 unused) 
{

    unused.glLoadIdentity();
    unused.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    square.Draw();
}

Carré s'étend à partir de la forme

OriginalL'auteur Serguei Fedorov | 2012-07-02