Android OpenGL ใช้ทั้ง Java และ C++

คุณสามารถผสมผสานการโทร Java และ OpenGL ดั้งเดิมได้หรือไม่ ตัวอย่างเช่นการตั้งค่าเกิดขึ้นใน onSurfaceCreated แต่มีการเรียก onDraw เป็นโค้ดเนทีฟ (หรือทั้งสองอย่าง) ฉันมีปัญหาในการเรนเดอร์โค้ดเนทิฟ แต่ไม่สามารถบอกได้ว่านี่อาจเป็นปัญหาหรือฉันกำลังโยนข้อยกเว้น 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);
}

person Patrick Kafka    schedule 11.02.2010    source แหล่งที่มา


คำตอบ (1)


คำตอบด่วนคือใช่ มันใช้งานได้

person Patrick Kafka    schedule 05.03.2010