.NET OnPaint 垂直同步

4

我正在尝试使用winforms和gdi+实现一些动画效果,但在控件内移动精灵时会出现很多撕裂。

在托管的.net中,有没有一种方法可以让重写的Control.OnPaint方法等待显示器的垂直回扫?

1个回答

1

你已经在使用双缓冲了吗?如果没有,我会怀疑这会消除撕裂,并且比尝试等待垂直回扫更简单。


1
双缓冲并不能防止撕裂。请参见en.wikipedia.org/wiki/Page_tearing。在Windows应用程序中,等待垂直同步是我所知道的唯一解决方案。不幸的是,我发现实现这一点的唯一方法涉及Direct3D。仅为一个函数下载超过500MB的SDK似乎有些愚蠢。 - Andrew Bainbridge
这也是我目前所发现的。我猜GDI并不是为动画设计的。 - David Suarez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接