2010-02-11 2 views
1

Java 및 원시 OpenGL 호출을 혼합 할 수 있습니까? 예를 들어 설정이 onSurfaceCreated에서 발생하지만 onDraw 호출을 네이티브 코드 (또는 둘 다)로 갖는 경우? 나는 문제가 렌더링하는 네이티브 코드를 얻는 데,하지만 난 C++ 예외를 던지는거야 경우이 문제가 될 수 있는지 알 수 없거나, 그러나 ... 최대Java와 C++를 모두 사용하는 Android OpenGL

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

이점은 무엇입니까? – CommonMan

답변

3

빠른 대답을 거품을하지 않습니다 예, 작동합니다.