QGLWidget在QT中如何工作?

发布于 2024-11-18 20:33:18 字数 161 浏览 5 评论 0原文

令人惊讶的是,我将 QWidget 切换为 QGLWidget,现在我的 QPainter::drawImage 调用速度快了 5 倍。除了小部件类型之外,我没有更改其他任何内容。这如何使 QPainter 调用执行得更好?我很高兴它有效,但我只是不明白它是如何工作的。有什么想法吗?

谢谢。

Amazingly, i switched a QWidget to be a QGLWidget and now my QPainter::drawImage calls are 5x faster. I changed nothing else, except the widget type. How does that make QPainter calls perform better? I'm glad it works, but i just do not understand how. Any ideas?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

二智少女猫性小仙女 2024-11-25 20:33:18

QGLWidget 使用您系统上可用的 OpenGL 实现,它可能是硬件加速的。这取决于您的系统。 Qt 小部件可以使用不同的 QPaintEngine 进行渲染。
您甚至可以通过尝试使用参数 -graphicssystem 运行应用程序来尝试更改整个图形系统以使用 OpenGL。目前在 Qt for Linux Embedded 中无法完成此操作。例如,您可以尝试运行animatedtiles 示例的差异。
请注意,这并不一定意味着性能会比光栅画家更好。这取决于系统的OpenGL实现,如果只是软件,性能可能会更差。

The QGLWidget uses the OpenGL implementation you have available on your system, which may be hardware accelerated. It depends on your system. Qt widgets can be rendered using different QPaintEngine's.
You can even try to change the entire graphics system to use OpenGL by trying to run an application with the parameter -graphicssystem. This cannot be done currently in Qt for Linux Embedded. You can try the difference running the animatedtiles example for instance.
Note that this doesn't necessarily mean performance will be better than with the raster painter. It depends on the OpenGL implementation of the system, if it is only software, performance may be even worst.

谈情不如逗狗 2024-11-25 20:33:18

它使用 OpenGL 来渲染其内容。

It uses OpenGL for rendering its content.

过度放纵 2024-11-25 20:33:18

如果它使用 OpenGL,它可能也使用硬件加速

If it's using OpenGL, it's probably also using hardware acceleration

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文