java - Android 上的 OpenGL : Any conflicts when calling OpenGL functions in both Java and C++?

标签 java c++ android opengl-es native

在我的应用程序中,我使用了在 Java 中调用 OpenGL 函数的第 3 方自定义 View ,并且还在我的 native C++ 代码中调用了 OpenGL 函数。

这应该是个问题吗?

是否存在同时调用它们的风险?

跨 java/c++ 的 OpenGL 调用的线程顺序是什么?

最佳答案

这应该不是问题,只要您知道自己在做什么。 Android 中的 OpenGL Java 绑定(bind)基本上只是调用相同的 c++ 函数。这些调用中没有更多逻辑。因此,您基本上可以将这些调用视为直接的 C++ 代码。

如果您只有一个上下文,您更有可能遇到的问题是 OpenGL 不是线程安全的。因此,如果两个线程试图在同一上下文中调用 gl 方法(这通常在单个应用程序中就是这种情况),这将导致问题。您可以通过调用 eglMakeCurrent 来避免这些问题,使您的当前线程成为当前的 OpenGL 线程。然后您可以照常进行 gl 调用。

关于java - Android 上的 OpenGL : Any conflicts when calling OpenGL functions in both Java and C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216854/

相关文章:

android - 使用 SimpleCursorTreeAdapter 的 ExpandableListView

java - “instanceof”不一致

c# - c++和c#之间通过管道进行通信

c++ - 使用 {0}、{0、} 进行数组初始化?

C++ 想从基类调用派生函数

android - 如何在多个 Activity 中使用服务?

android - 如何在 SQLite 中将毫秒转换为日期

java - 将新/自定义属性添加到 AEM 6.2 中的工作流收件箱

java - 为什么添加一个空的 for 循环可以修复此代码?

一些 GD 库调用的 Java 等价物