阅读http://blogs.msdn.com/b/directx/archive/2009/09/29/comparing-direct2d-and-gdi.aspx:Direct2D是否使用回缓冲区?
演示模型
当被 第一设计的Windows,没有足够的内存 ,让每一个窗口是存储在自己的位图 。因此,GDI总是逻辑上直接将 呈现到屏幕上,并应用各种剪辑 区域以确保它不会在其窗口之外进行渲染。在 合同中,Direct2D遵循 的模型,其中应用程序呈现为 后台缓冲区,结果为 当 应用程序完成绘图时,以原子方式“翻转”。这个 允许Direct2D处理动画 更流畅地GDI 可以。
作者说,Direct2D使用后缓冲区,通过“翻转”他意味着交换链我猜。我创建了一个简单的演示,在鼠标点击的随机位置绘制一个矩形。但以前的矩形不会被清除,因此它似乎直接绘制到屏幕上,并且不使用任何后台缓冲区。
如果我点击两次,则会出现两个矩形。如果使用back-buffer,那不应该是我想的情况。 – Alice
你为什么这么想? – Blindy
我猜如果使用back-buffer,每当我调用BeginDraw时它都会被交换。所以,如果我使用两个BeginDraw调用绘制两个矩形,那么一个矩形转到缓冲区1,另一个矩形转到缓冲区2.然后,我们应该只看到一个矩形。 – Alice