【发布时间】:2021-09-25 22:42:16
【问题描述】:
我正在使用cairo 和pygobject 来绘制Gtk.DrawingArea。
绘图很昂贵,所以我首先绘制到cairo.ImageSurface,然后将其用作绘图事件回调中的绘图源。仅在需要时更新绘图。
现在假设我要将图像向左移动,即复制到自身但已翻译,在右侧添加新内容。
123456789->456789NEW
我认为不可能直接这样做。
我想出的一种解决方法是拥有两个ImageSurface,并在每个滚动副本中从一个滚动复制到另一个并切换位置。
类似:
cr = cairo.Context(buffer_aux)
cr.set_source(buffer)
cr.translate(dx, dy)
cr.paint()
cr.flush()
buffer, buffer_aux = buffer_aux, buffer
如果我错过了什么,那是正确的方法吗?
【问题讨论】: