现在的位置: 首页 > 综合 > 正文

关于DirectDraw的Flip

2013年10月11日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 评论关闭

今天在读《Windows游戏编程大师技巧2》第7章“页面切换”一节时被一段话搞晕了,

其中有一些可能让你难以理解的细节。首先,如果后备缓冲被切换到了主缓冲,后备缓冲会变成主缓冲吗?主缓冲又会不会变成后备缓冲呢?如果这样,需要不需要每隔一帧就在主表面进行绘制呢?这个问题看似来势汹汹,但实际上它并不会发生。事实上,指向VRAM的指针是由硬件切换的, DirectDraw和编程人员的观点来看,后备缓冲表面总是离屏的,而主表面总是可见的。所以你总是在后备缓冲中进行绘制,并且每帧与主表面作切换。


 
看完之后,不明白每次FLIP之后主surface指向的VRAM到底是变了还是没变?虽然99%的情况应该是前者,但这段说得不是太清楚,所以还是写了个程序验证了一下。

 结果不出所料,每次FLIP之后,主surface和后备surface

所指向的
VRAM发生了交换,但主surface这个结构体的其它结构并没有变换(因为FLIP要求主备两个surface在像素格式方面的属性要一致)。可能这就是原文要说明的意思吧。

顺便说说对这本书的评价,总体上来说还是不错的,但老外写文章多数比较随意,结构方面不是很严谨,加之附上一些个人感叹,给译者也带来不少麻烦。

遇到不明白的地方一是看原文,二是亲手实践,毕竟实践是检验真理的唯一标准。

 

抱歉!评论已关闭.