亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以使用 LWJGL 將 C++ OpenGL 代碼與 Java 混合?

是否可以使用 LWJGL 將 C++ OpenGL 代碼與 Java 混合?

滄海一幻覺 2022-03-10 10:51:19
我想做Java應用程序。使用 CEF3 庫。CEF 是在任何應用程序中嵌入 Google Chrome 瀏覽器的庫。而 LWJGL 用于用 Java 編寫 GL 代碼。但在使用 CEF 之前,基本問題是如何混合 C++ 和 Java。Java main 將 C++ 部分調用為 DLLC++ 部分創建窗口并設置 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 函數?主.javaimport 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);    }}
查看完整描述

1 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

在從 java 進行任何渲染之前,您應該在開始時調用一次。


    // This line is critical for LWJGL's interoperation with GLFW's

    // OpenGL context, or any context that is managed externally.

    // LWJGL detects the context that is current in the current thread,

    // creates the GLCapabilities instance and makes the OpenGL

    // bindings available for use.

    GL.createCapabilities();


查看完整回答
反對 回復 2022-03-10
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號