2011-02-08 28 views
5

No puedo encontrar referencia a esto. Todos los documentos para desarrolladores de Android están enfocados en OpenGL ES 1.0. ¿Cómo puedo comenzar a usar OpenGL 2.0 en Android SDK usando API nivel 8? Si el nivel 8 no es compatible, ¿qué nivel necesito usar?¿Cómo usar OpenGL ES 2.0 en Android SDK (no NDK)?

¿Qué porcentaje de teléfonos Android que existen en el mercado actualmente son compatibles con OpenGL ES 2.0?

Respuesta

8

El problema es que necesita implementar tres métodos en el GLSurfaceView que toman en GL10 del sistema operativo.

public void onDrawFrame(GL10 gl) 
public void onSurfaceChanged(GL10 gl, int width, int height) 
public void onSurfaceCreated(GL10 gl, EGLConfig config) 

Parece que la solución es ignorar el GL10 en su totalidad en el Procesador y sólo tiene que utilizar todos los métodos estáticos de la clase GLES20.

public void onDrawFrame(GL10 glUnused) { 
     GLES20.glClearColor(0.0f, 0.0f, 1.0f, 1.0f); 
     GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT); 
     GLES20.glUseProgram(mProgram); 
     ... 
} 

Todos los miembros estáticos GLES20 se enumeran aquí: http://developer.android.com/reference/android/opengl/GLES20.html

mejor documentación sobre los que están en los documentos Khronos. http://www.khronos.org/opengles/sdk/docs/man/

3

Deberías echarle un vistazo a este video http://www.youtube.com/watch?v=7-62tRHLcHk. El chico revisa el soporte del dispositivo para diferentes versiones de OpenGL ES y le muestra cómo comenzar con OpenGL en el Android. También habla sobre la fragmentación de los dispositivos y cómo puedes apoyarlos. Básicamente, la mayoría de los dispositivos de "2ª generación" admiten 2.0 y se han enviado desde finales de 2009. Si va a orientar solo a 2.0 dispositivos, obviamente tendrá que verificar el sistema para asegurarse de que el dispositivo X tenga las especificaciones de hardware adecuadas.

Si desea ver cómo configurar un renderizador básico de OpenGL en el SDK, salte a las 21:00 en ese video.

+0

No hablar de penetración en el mercado de OpenGL 2, pero no pude ver nada relacionado con la forma de acceder OpenGL ES 2.0 en SDK (no NDK). – ace

Cuestiones relacionadas