【发布时间】:2014-12-07 16:27:31
【问题描述】:
一段时间以来,我一直在使用 SDL 编写我的 3D 引擎,并且最近一直在实现一个编辑器,该编辑器可以针对我正在构建的引擎类型导出优化的格式。现在编辑器相当简单,对象可以四处移动,它们的纹理和模型可以改变。截至目前,我正在使用 SDL 和 OpenGL 来渲染所有内容,但我想将 Qt 用于编辑器的 GUI 部分,这样它在每个平台上看起来都是原生的。到目前为止,它运行良好,我在 SDL 应用程序中运行 QApplication,所以它基本上只打开 2 个窗口,一个使用 SDL 和 OpenGL,另一个使用 Qt。做了一些研究,我发现您可以手动更新 QApplication,这完全消除了任何线程问题,并且一切正常。以防万一你很难想象这一点,这里有一张图片:
我的目标是将这些窗口合并为一个,因为在较小的屏幕(如我的笔记本电脑)上,很难跟踪我最终拥有的所有不同窗口。我知道有一种方法可以使用 OpenGL 渲染到 Qt,但这可以与 SDL 集成吗?如果启用了编辑器,我是否需要放弃使用 SDL 窗口并使用 QT 窗口?澄清一下,当引擎不处于编辑器模式时,它不会使用 Qt,而只会使用 SDL,所以最好我不需要这样做。
【问题讨论】:
-
'我在 SDL 应用程序中运行 QApplication',您的意思是在单个可执行文件上同时启动 SDL 和 Qt,还是在 SDL 窗口中加载 Qt opengl 上下文?不管怎样,这很有趣,介意分享运行 Qt 和 SDL 的任何资源吗?
-
@Alex720 他们都在同一个可执行文件中运行,基本上它是:Init SDL,Init QT,而(运行)updateQT updateEngine renderSDL。我想知道如何将 SDL 上下文嵌入到 Qt 窗口中
-
@BlueSpud - 由于您使用的是 Qt 窗口,因此不妨按照 datenwolf 的建议将 SDL 作为依赖项删除,SDL 在 Qt 中已有的东西,您将删除冗余。此外,此视频可能会帮助您使用 Qt 嵌入第三方 opengl 渲染:youtube.com/watch?v=GYa5DLV6ADQ