原来MyOS的图形驱动只支持32位色,使得MyOS无法在Qemu下运行。因为Qemu最大只支持24位色。在前几天做完VM86之后,终于可以在内核中设置显示模式了,所以就在启动时,先尝试用32位色,不行就改用24位色,最后用16位色。终于在Qemu下启动了,然后修改了图形驱动,使得不论在32位、24位还是16位时都可以正确的显示图形。
在这里要先谈谈MyOS的图形库,MyOS的图形库内部采用32位色,支持窗口透明,alpha特效,然后在输出到显存时再根据显示模式转换成需要的格式。
MyOS的图形库绝大部分都是完全可移植的,只需要在底层提供一个输出函数即可。在MyOS中就是根据当前的显示模式作一些变换后写显存即可。如果需要,完全可以把该函数替换成一个网络接口,通过TCP/IP输出图形数据,这样就可以用来实现类似Windows远程桌面那样的效果。