如何在装配体的图形模式下为我的精灵实现"双缓冲区"?



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

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

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

使用线性 frambuffer 的视频模式的另一种方法是在视频 ram 中使用缓冲区,并在等待垂直消隐间隔的情况下将分散的开始地址调整到缓冲区。这可以通过使用VESA VBE Bios来完成。有关 VBE 功能的更多详细信息可以在 vesa.org(需要注册/登录)的公共和免费文档"vbe3.pdf"中找到。

最新更新