Estoy intentando reemplazar el sistema de renderizado basado en Canvas que ya tengo con la superficie opengl-es más rápida, sin embargo, parece que no puedo obtener un renderizador OpenGL para conformarme en tal forma en que actúa como campo 2d, en lugar de una vista en perspectiva.Uso de OpenGL para reemplazar Canvas - Android
Mi código actual para el procesador se ve de la siguiente manera:
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);
gl.glShadeModel(GL10.GL_FLAT);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
gl.glEnable(GL10.GL_TEXTURE_2D);
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
gl.glShadeModel(GL10.GL_FLAT);
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glDisable(GL10.GL_DITHER);
gl.glDisable(GL10.GL_LIGHTING);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
}
¿Cómo voy a configurar el procesador de modo que la transformación traducir coincidiría con los píxeles en la pantalla? (así que traducir 5 a la derecha lo movería 5 píxeles)
¿Por qué no utilizar simplemente pasar una instancia GL al constructor Canvas? http://developer.android.com/reference/android/graphics/Canvas.html –
¿Eso retendría los beneficios de velocidad de OpenGL sobre el lienzo básico en el dibujo de Bitmaps? – GuyNoir
No use Canvas para ello. No funciona aunque esté documentado. Además, según las conversaciones en IRC, el desarrollador de Canvas ya lo ha eliminado de la API para futuras versiones. – Moncader