在 JOGL 中跨多个 QWidget 共享 VBO

Posted

技术标签:

【中文标题】在 JOGL 中跨多个 QWidget 共享 VBO【英文标题】:Sharing a VBO across multiple QWidgets in JOGL 【发布时间】:2011-04-28 02:35:05 【问题描述】:

我正在尝试共享创建具有相同 GL3 上下文的四个 QGLWidget,以便我可以在它们之间共享一个 VBO。我只用一个小部件做这件事已经有一段时间了,但它没有与其他小部件共享。 QGLWidget 有一个 sharewith 参数,据我了解,它会自动共享它们之间的上下文,但我不确定它与 JOGL 的兼容性如何。

我也对实际创建上下文的时间感到困惑。在某些示例中,它表示要在initializeGL 中创建上下文。我不确定这是否意味着我必须先更新第一个小部件,然后才能创建辅助小部件(将sharewith 参数传递给具有当前上下文的第一个创建的小部件)。

谁能给我一个简单的例子来实现这个功能?我只需要创建四个上下文共享的 GLWidget,它们都运行 GL3 配置文件。

【问题讨论】:

【参考方案1】:

虽然我没有使用 JOGL,但我正在做类似的事情 here 和 here。基本思想是您创建一个隐藏的 QGLWidget,使其成为最新并编译所有着色器,然后将其作为 shareWidget 传递给您的子视口。每当您想上传几何图形时 将隐藏的 QGLWidget 设为当前并执行 glBufferData 调用 - 数据可用于其他视口上下文。

【讨论】:

以上是关于在 JOGL 中跨多个 QWidget 共享 VBO的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中跨多个源文件共享变量?

我可以在 React 中跨多个树共享一个组件实例吗?

在vertx中跨顶点共享单例客户端的正确方法

如果一个启动另一个,您如何在 VB.Net 中跨项目进行调试?

如何在 ASP.NET 中跨多个 Web 应用程序维护相同的会话 ID

在 Vuejs 中跨不同组件共享数据