Android OpenGL menggunakan Java dan C++

Bisakah Anda memadukan panggilan Java dan OpenGL asli. Misalnya pengaturan terjadi di onSurfaceCreated, tetapi panggilan onDraw ke kode asli (atau bahkan keduanya)? Saya mengalami kesulitan dalam membuat kode asli untuk dirender, tetapi tidak tahu apakah ini bisa menjadi masalah atau apakah saya memberikan pengecualian c++, tetapi pengecualian tersebut tidak muncul...

    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);
}

person Patrick Kafka    schedule 11.02.2010    source sumber


Jawaban (1)


Jawaban cepatnya adalah ya, berhasil.

person Patrick Kafka    schedule 05.03.2010