我有一个应用程序将利用 NDK 来满足高图形要求和我用 C++ 编写的地形生成库。我的问题是我是否已经使用 SDK 制作了 GUI 并在 java 中进行了随机 opengl 调用,例如 GLES20.glEnable(GL_CULL_FACE);
然后继续调用 glEnable(GL_DEPTH_TEST);
在 C++ 中通过 JNI 会有任何已知的错误/构建问题吗?如果有人想知道我为什么问这个和/或认为这是一个愚蠢的问题,那是因为在桌面 OpenGL 中有一个现有的 OpenGL context
(尽管 GLFW 处理了大部分)。我担心 OpenGL ES 是否也有一个现有的 context
。 如果是这样,从 Java 和 C++ 调用 OpenGL ES 是否会写入先前声明的context
?
最佳答案
在 OpenGL 中,您总是在处理上下文,是的。对你来说关键的部分是
- 您的 OpenGL 上下文何时以及如何绑定(bind)到 Java 部分?
- 调用 native 代码时 OpenGL 上下文是否保持最新。
实际上,所有对 OpenGL 的 Java 调用都以任何方式进入 native 代码。因此,如果您使用 NDK 编写部分程序并以与直接调用 OpenGL 相同的方式调用这些部分,则 OpenGL 上下文将是最新的并且可用。
关于java - 是否可以从您的 C++ 和 Java 代码调用 OpenGL ES?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515259/