java - 是否可以从您的 C++ 和 Java 代码调用 OpenGL ES?

标签 java android c++ opengl-es

我有一个应用程序将利用 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/

相关文章:

c++ - C/C++ (Linux) 中的信号量访问模式

java - REST API 查询返回 404?

java - Spring 批处理中的多个读取器/处理器/写入器

android - Flutter 如何检测是否安装了 VSCode?

Android ListView 文本颜色

java - 如何将 Java 程序的入口点更改为 C 签名?

java - 理解java swing的困难

java - 如何向socket客户端发送消息

java - AsyncTask 中的 Toast

c++ - 在赋值中使用 block() 收缩具有 Eigen 的矩阵