我正在教我的儿子编程“正确/艰难”,所以我们从C开始,就像真正的男人一样:)
将文本打印到控制台很有趣,但我仍然记得将我的旧i386切换到320x200x256模式并绘制几个彩色矩形的兴奋......当天就像调用int 10h
一样简单然后你只需将字节写入[A000:0000]
以在屏幕上绘制像素。
然而,对于现代Linux,这种对硬件的低级访问似乎更复杂(出于显而易见的原因)。我简要地查看了mmap
- /dev/fd0
所描述的here - 结果是我的Ubuntu 13.04上没有/dev/fb0
设备。我还查看了使用svgalib
- 但是,他们的示例代码在我的显示器上没有显示任何内容。
所以问题是:在现代Linux中是否有简单的方法可以直接访问视频内存,而不需要太多的系统配置和样板代码?它不一定是全屏访问 - 只要通过将数据直接写入内存就可以打开一个X窗口并绘制像素就可以了。
答案 0 :(得分:12)
不要直接访问屏幕内存(这比人们可以相信的更多陷阱),你应该考虑使用Simple DirectMedia Layer作为你的图形(以及更多!)并让操作系统处理它来绘制它屏幕。