I would like to call a GLES20
method when an item from the options menu is selected.
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.clear:
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
break;
// ...
}
}
This does not work since I am in the main
thread and not in GLThread
. It says:
call to OpenGL ES API with no current context (logged once per thread)
But what do I have to do to get things working?
I found the answer on my own:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.clear:
// GLSurfaceView.queueEvent
surface.queueEvent(new Runnable() {
@Override
public void run() {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
});
break;
// ...
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With