¿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.

¿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?

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.

  • Ejecutar Android OpenGL en el fondo como recurso de renderizado para la aplicación?
  • Tomando una captura de pantalla de Android OpenGL
  • (OpenGL ES) Los objetos alejados del centro de la vista se estiran
  • Cambio de OpenGL ES 1.0 a 2.0
  • Dispositivos Android GL_MAX_TEXTURE_SIZE limitación, tamaño de textura seguro
  • Error 1 libavcodec.so Formato de archivo no reconocido Android GL Live Wallpaper
  • Llamar a Google Play Services GoogleApiClient.connect () de Activity onStart () provoca un bloqueo intermitente de OpenGL (errores de NvRmChannelSubmit, etc.)
  • SurfaceTexture.OnFrameAvailableListener deja de ser llamado
  • Falta de controladores OpenGL en el emulador de Android
  • ¿Cómo puedo crear una nueva NativeWindow en Android NDK?
  • Problema dibujo de una esfera en OPENGL ES
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.