SwapChain
为了避免动作时出现闪烁,最好把一帧的动作绘制到屏幕外的纹理去。我们叫它后台缓存(back buffer)。
当进程正在把一帧的动作把一次全部的场景画到后台缓存时,它呈现在屏幕上的是已经完成的一帧。
通过这种方法,观察者看不到帧绘制的过程——观察者只能看到之前已经绘制完毕的帧。
理想状况下,在屏幕上呈现一帧是在垂直消隐的间隔之间。为此,在硬件上准备了两个纹理缓存,一个叫前置缓存(front buffer),另一个叫后置缓存(back buffer)。
前置缓存执行当前将被显示在显示器上的图形数据,与此同时,下一帧正在后置缓存中绘制。
在前置缓存都被画完后,两个缓存的关系翻转,前置缓存变成后置缓存,后置缓存变成前置缓存。
这个交换的过程称为呈现(presenting)。
呈现是高效运行的,只需要前置缓存和后置缓存的指针来回交换即可。