我有一个使用GLES进行渲染的安卓应用程序。目前使用Java进行渲染,渲染效果良好。由于Android Java应用程序内存的限制,我计划将本地渲染集成到我的Java渲染代码中。
为此,我遵循了基本的本地GLES教程。在集成后,Java渲染不可见,只能看到我在C++中渲染的内容。
代码的最简版本位于:https://github.com/khedd/JavaCppGLES,Java代码渲染三角形,C++代码渲染正方形。如果两者都被调用,则只有正方形被渲染。
我该如何解决这个问题?我应该把所有东西都移植到C++吗?
以上是内容要点。
MyGLRenderer(){
mTriangle = new Triangle();
mCppRenderer = new MyCppRenderer();
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glClearColor(1.0f, 0.0f, 1.0f, 1.0f);
//init java triangle
mTriangle.init();
//init c quad
mCppRenderer.init(); //comment this line to make java triangle appear
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
}
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
mTriangle.draw();
mCppRenderer.draw ();
}