我想做Java应用程序。使用 CEF3 库。CEF 是在任何应用程序中嵌入 Google Chrome 浏览器的库。而 LWJGL 用于用 Java 编写 GL 代码。但在使用 CEF 之前,基本问题是如何混合 C++ 和 Java。
Java main 将 C++ 部分调用为 DLL
C++ 部分创建窗口并设置 GL 上下文
在消息循环中,C++ 再次回调 Java 部分以在 Java 中进行一些 GL 工作。
以下测试代码失败并显示消息:
本机方法中的致命错误:线程 [main,5,main]:没有当前上下文或调用了当前上下文中不可用的函数。JVM 将中止执行。
在 org.lwjgl.opengl.GL11.glColor3f(Native Method)
在 Main.run(Main.java:18)
在 Main.cppmain(Native Method)
在 Main.main(Main.java:10)
可能是因为 Java 部分不知道 C++ 部分创建的 GL 上下文。我的问题是如何设置 GL 上下文以便 C++ 和 Java 都可以调用 GL 函数?
主.java
import org.lwjgl.opengl.GL11;
public class Main implements Runnable {
{
System.loadLibrary("cppgl");
}
public static void main(String[] args) {
Main me = new Main();
me.cppmain(me);
}
private native void cppmain(Runnable callback);
@Override
public void run() {
// callback from cpp
GL11.glColor3f(1.0f, 0.0f, 1.0f);
}
}
杨__羊羊
相关分类