gpt4 book ai didi

c++ - 使用 Cairo 绘图时有什么方法可以加快/减少 CPU 使用率?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:14 25 4
gpt4 key购买 nike

我写了一个应用程序,它使用 Cairo 在屏幕上绘制东西(准确地说是在 Gtk::DrawingArea 上)。它需要经常重绘一切。事实证明,尽管绘制的图形非常简单,但 X 服务器在重绘时会占用大量 CPU,并且应用程序运行速度非常慢。有什么办法可以加快速度吗?或者也许我不应该使用 DrawingArea 和其他一些小部件?

我画的是一组矩形,用户可以通过鼠标拖动来移动它们。整个绘图是使用 on_expose_event 完成的,但是随着鼠标指针四处移动(按下按钮),我调用 queue_draw() 来刷新绘图。

最佳答案

只需检查几件事:

你的画是在 expose 事件中完成的吗?

将您的图像绘制到 Cairo Surface,然后在 expose 事件中简单地从该表面复制到小部件的表面。

您是否只剪裁和绘制必要的区域?

expose 事件为您提供需要重绘区域的 X、Y、宽度、高度。在 cairo 中,使用这些尺寸在表面上创建一个矩形并调用 clip,这样您就不会浪费时间重新绘制不需要的东西。

关于c++ - 使用 Cairo 绘图时有什么方法可以加快/减少 CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6888965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com