Uso de OpenGL desde el hilo principal de Android
Me gustaría llamar a un método GLES20
cuando se selecciona un elemento del menú de opciones.
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.clear: GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); break; // ... } }
Esto no funciona ya que estoy en el hilo main
y no en GLThread
. Dice:
- Cómo crear la pantalla de carga en libgdx?
- Manera recomendada de cargar (no interactivo) animaciones (hechas usando Maya) en OpenGL ES en iOS y Android
- EglCreateWindowSurface falla con java.lang.IllegalArgumentException
- Cómo cargar y mostrar el archivo .obj en Android con OpenGL-ES 2
- ¿Cómo acceder a OpenGL ES 2 a través de C ++ / NDK si EGL_NATIVE_RENDERABLE no es compatible?
Llamada a OpenGL ES API sin contexto actual (registrada una vez por hilo)
Pero, ¿qué debo hacer para que las cosas funcionen?
- Resultados inesperados implementando desenfoque de movimiento simple en Libgdx
- Uso de OpenGL para reemplazar Canvas - Android
- Android Canvas o Open GL ES para el juego 2d?
- Buscando un método multiplataforma para gráficos básicos 2D / 3D para iOS y Android
- Cómo colocar un objeto delante de la cámara siempre
- AndEngine: colisión de dos sprites
- ¿Es mejor usar GL_FIXED o GL_FLOAT en Android
- La mejor manera de hacer el bucle del juego para Android usando OpengGLSurface
Encontré la respuesta por mi cuenta:
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; // ... } }
- Desarrollo de Android: ¿Cómo puedo hacer un texto de edición sencilla por lo que es sólo un cuadrado blanco?
- JQuery Data Time selector que funciona bien en iOS / Android