如何实现双缓冲区'对于我在组装中的图形模式的精灵?

时间:2014-12-01 02:19:57

标签: assembly masm32 double-buffering

我已经在谷歌搜索了几个小时如何防止闪烁,同时不断绘制,删除和重绘我将用于游戏的精灵。我看到的许多网站告诉我使用双缓冲区,甚至没有告诉我如何使用。 -_-有人可以教我如何在masm32程序集中实现双缓冲区吗?非常感谢您的回答!

编辑: 顺便说一下,我使用int 10h,ah = 13h

1 个答案:

答案 0 :(得分:0)

要使用Bios功能,我们需要16位实模式或V86模式。但不是32位保护模式。 为了使用缓冲,我们可以将输出绘制到ram中的缓冲区中,如果我们完成它,我们可以等待阴极射线的垂直消隐间隔,然后我们可以将缓冲区复制到屏幕上。

使用线性frambuffer的视频模式的另一种方法是在视频RAM中使用缓冲区,并在等待垂直消隐间隔的同时调整缓冲区的显示起始地址。这可以使用VESA VBE Bios完成。关于VBE功能的更多细节可以在vesa.org的公共和免费文档“vbe3.pdf”中找到(需要注册/登录)。