【发布时间】:2016-04-22 23:50:07
【问题描述】:
最近开始用NASM和C语言开发操作系统,已经做了boot loader、kernel、filesystem等。目前我直接用VGA文本模式写地址0x000B8000。所以,我决定切换到视频模式而不是文本模式。我选择了最大显示分辨率320x200,但后来我意识到存在三个问题。首先,只有 256 种不同的颜色。其次,分辨率太小。第三,写地址0x000A0000太慢了。我尝试做一些动画,但它非常滞后,有时会在下一帧之前等待超过一秒。
我在互联网上搜索了一些关于如何切换到更高分辨率的解释,例如1920x1080,以及如何使用256*256*256 颜色而不是仅仅 256。我发现的所有内容都表明很难使用更高分辨率因为你必须为所有不同类型的显卡开发驱动程序,而有些显卡没有文档,所以我们必须使用逆向工程。
我真的很想在我的操作系统中引入高分辨率图形。真的很难还是有什么简单的方法?关于如何解决这个问题的任何建议?
【问题讨论】:
-
如果您已经在编写代码以在糟糕的 VGA 320x200 屏幕上显示快速动画时遇到问题,那么最好先尝试改进它,然后再使用每像素位数 3 倍的屏幕(甚至可能4 倍)和 30 (!) 倍以上的像素。