2010-02-11 4 views
1

Pouvez-vous mélanger Java et les appels OpenGL natifs. Par exemple avoir la configuration se produire dans le onSurfaceCreated, mais avoir l'appel onDraw en code natif (ou même les deux)? Je vais avoir du mal à obtenir du code natif pour rendre, mais ne peut pas dire si cela pourrait être un problème ou si je jette les exceptions de c, mais ils ne répondent pas à bouillonner ...Android OpenGL utilisant à la fois Java et C++

private static native void drawFromJni(); 

public void onDrawFrame(GL10 gl) { 
    try{ 
     drawFromJni(); 
     //gl.glDrawArrays... also 
    } 
    catch (Exception ex){ 
     ex.printStackTrace(); 
     Log.e("sv", ex.getMessage()); 
    } 
} 

public void onSurfaceChanged(GL10 gl, int width, int height) { 

    gl.glViewport(0, 0, width, height); 

    float ratio = (float) width/height; 
    gl.glMatrixMode(GL10.GL_PROJECTION); 
    gl.glLoadIdentity(); 
    gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); 
} 

public void onSurfaceCreated(GL10 gl, EGLConfig config) { 
    gl.glDisable(GL10.GL_DITHER); 
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST); 
    gl.glClearColor(0,0,0,0); 
    gl.glEnable(GL10.GL_CULL_FACE); 
    gl.glShadeModel(GL10.GL_SMOOTH); 
    gl.glEnable(GL10.GL_DEPTH_TEST); 
} 
+0

quel est l'avantage? – CommonMan

Répondre

3

rapide c'est oui, ça marche.

Questions connexes