Pregunta

Se puede mezclar Java y OpenGL llamadas nativas. Por ejemplo con la configuración suceda en el onSurfaceCreated, pero tener la llamada onDraw en código nativo (o incluso ambos)? Estoy teniendo problemas para conseguir el código nativo para hacer, pero no puedo decir si esto podría ser un problema o si estoy lanzar excepciones C ++, pero no lo hacen burbujear ...

    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);
}
¿Fue útil?

Solución

respuesta rápida es sí, funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top