¿Cuándo debo llamar a glEnableClientState () y glDisableClientState () en android
Acabo de llamar glEnableClientState()
una vez en el método onSurfaceCreated()
de la interfaz GLSurfaceView.Renderer
. P.ej:
public class GLRenderer implements GLSurfaceView.Renderer { @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); ... }
Después de eso no los invoco de nuevo. Nunca invoco el método glDisableClientState()
. Pero veo que muchos programadores llaman a ambos métodos a menudo envolviéndolos alrededor de todas las llamadas de dibujo.
- Android NDK - OpenGL ES 2.0 - vinculación de la biblioteca
- Android OpenGL ES Tamaño de la textura Potencia de 2
- Cómo detectar el clic en un objeto en OpenGL ES en la aplicación de Android?
- Lista de atributos en eglCreateContext
- Texto movible en Opengl Android
¿Hay algo malo en mi enfoque? ¿O es una buena práctica o tal vez más eficiente usar el enfoque de envolverlos alrededor de todas las llamadas de dibujo?
- ¿Puedo usar glu con Android NDK
- Cómo mover un cuadrado OpenGL con el dedo?
- Cómo aumentar el rendimiento del dibujo de mapa de bits en Android
- Mezcla de vistas de Android y GLSurfaceView
- Error de Android OpenGL (no utilizar OpenGL en mi aplicación)
- Android "cpu puede estar vinculado" error
- OpenGL ES 1.1: ¿Cómo cambiar el color de la textura sin perder luminancia?
- Por qué las funciones de OpenGL ES no se pueden llamar desde otro subproceso
No creo que haya nada malo con su enfoque, siempre que todas sus llamadas de sorteo requieren el mismo estado. Si estás dibujando algo sin normales / colores, no quieres tener habilitada la matriz normal / color, etc.
Si todos sus objetos están seguros de utilizar los mismos arreglos, entonces su método es probablemente el mejor, ya que puede eliminar las llamadas de opengl innecesarias. Desactivar todo después de cada objeto es potencialmente peor para el rendimiento, pero es más seguro en general que no deje accidentalmente algo habilitado que no desea.
- ¿Por qué tiene que reiniciarse Android Debug Bridge (adb) con frecuencia?
- ¿Cómo construir FFMPEG para toda la arquitectura del dispositivo android?