【发布时间】:2011-07-31 10:46:33
【问题描述】:
我编写了一个使用 Cairo 在屏幕上绘制东西的应用程序(准确地说是在 Gtk::DrawingArea 上)。它需要经常重绘所有内容。事实证明,尽管绘制的图形非常简单,但 X 服务器在重绘时会占用大量 CPU,并且应用程序运行速度非常慢。有什么办法可以加快这个速度吗?或者也许我不应该使用 DrawingArea 和其他一些小部件?
我绘制的是一组矩形,用户可以通过用鼠标拖动它们来移动它们。整个绘图是使用 on_expose_event 完成的,但是随着鼠标指针的移动(按下按钮),我调用 queue_draw() 来刷新绘图。
【问题讨论】:
-
描述你在画什么以及你是如何画的可能会带来更多的insites。
-
请添加一些数字。只是在暴露事件中的一个小计数器来测量帧速率。也许我们正在谈论许多刷新而不是缓慢的绘图。高分辨率激光鼠标可以产生很多鼠标运动事件。