Android OpenGL باستخدام كل من Java و C ++
-
19-09-2019 - |
سؤال
يمكنك مزج جافا ومكالمات OpenGL الأصلية. على سبيل المثال، تحدث الإعداد في Onsurfacecreateded، ولكن وجود مكالمة 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);
}
المحلول
الإجابة السريعة هي نعم، إنها تعمل.
لا تنتمي إلى StackOverflow