在 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的主要内容,如果未能解决你的问题,请参考以下文章
如果一个启动另一个,您如何在 VB.Net 中跨项目进行调试?