【问题标题】:Custom real-time drawing in Qt5 and Qt Quick 2Qt5 和 Qt Quick 2 中的自定义实时绘图
【发布时间】:2013-07-24 05:25:35
【问题描述】:

我一直在四处寻找,以了解如何在可能的情况下使用 OpenGL 上下文填充 QML 屏幕中的特定区域,并仅在该上下文中执行自定义 OpenGL。我看过很多演示,其中 QML 组件(如按钮等)位于屏幕范围的 OpenGL 上下文的顶部或下方(游戏通常需要),但我希望能够在其中放置几个​​不同的 OpenGL 上下文QML 并让 QML 文件定义它们的大小、位置等。

现在,由于 Qt 5 的底层都是 OpenGL,这让我想知道使用 Canvas 元素通过 javascript 进行自定义绘图是否会导致与自定义 OpenGL 相似的渲染性能?这将是一个有意义的替代方案,但我不清楚与自定义 OpenGL 绘图相比,javascript 绘图是如何通过运行时处理的。

【问题讨论】:

  • qt-project.org/doc/qt-5.1/qtquick/qml-qtquick2-canvas.html 我猜你读过关于 renderTarget 和 renderStrategy 的文章?
  • @FrankOsterfeld 我的理解是,它只指定了 Qt 将如何处理底层的绘图命令,但你可以在 Canvas 中使用的 API 不是 OpenGL,还是我错了?

标签: qt opengl qml qtquick2


【解决方案1】:

你想画什么? QQuickPaintedItem 可能是最简单的方法。当您使用QOpenGLFramebufferObject 作为目标时,painter 将使用 OpenGL 来绘制纹理。如果您所做的只是 2D,这可能比编写自己的 OpenGL 代码更容易。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多