title: Strange issue with glReadPixels
body: <p>I´m having this strange issue when using a GL10-object outside of the overridden Renderer functions.</p>
  
  <p>For example, for the purpose of picking a geometry via color codes I tried to read out the color buffer via glReadPixels.</p>
  
  <pre><code>@Override
  public void onDrawFrame(GL10 gl) {
  
  ...
  
      ByteBuffer pixel = ByteBuffer.allocateDirect(4);
      pixel.order(ByteOrder.nativeOrder());
      gl.glReadPixels(0, 0, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixel);
  
      while (pixel.hasRemaining()){
      Log.v(TAG,""+(int)(pixel.get() &amp; 0xFF));
      }
  
  }
  </code></pre>
  
  <p>This works and gives me the color values in range 0..255 for the pixel in the bottom left corner.
  Now when I take my GL10-object and make it available to the whole class as a field, it doesn´t seem to work anymore:</p>
  
  <pre><code>@Override
  public void update(Observable observable, Object data) {
  Log.v(TAG, "update Observer glsurfaceviewrenderer");
  if (data instanceof MotionEvent){
      MotionEvent event = (MotionEvent) data;
  
      ByteBuffer pixel = ByteBuffer.allocateDirect(4);
      pixel.order(ByteOrder.nativeOrder());
      gl.glReadPixels(0, 0, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixel);
  
  
      while (pixel.hasRemaining()){
      Log.v(TAG,""+(int)(pixel.get() &amp; 0xFF));
  
      }
  
  }
  }
  </code></pre>
  
  <p>This doesn´t work, all colors have value 0. Only difference is, I used the gl-object via a field and not via a function-argument. I checked the memory pointer to the gl-object by printing it to Log and both have the same address.</p>
  
  <p>I´m really stumped right now...anybody having an idea?</p>