|
|

楼主 |
发表于 2005-6-24 13:41:12
|
显示全部楼层
Post by danath
如果使用vesafb, 那么应用程序不能在运行时切换显示模式, sdl初始化失败也很正常. 所以要么在启动时就设置好模式, 要么使用针对显示芯片的fb, 比如i810fb, radeonfb, sisfb, ... 或者新的vesafb-tng. 觉得fb的文档少了点, 很多时候靠自己根据google上的只言片语去揣摩, 结果至今也搞不定fb的硬件加速功能, 只能用可怜巴巴的软件渲染.
同感,同感,资料太少了,只好前两天在libsdl.org上下点源代码在看~~~《Linux程序设计权威指南》关于framebuffer编程也只有一小段,不过上面有个例子就是直接写屏显示图片的,介绍的实现方式跟这个页面http://www.opencjk.org/~yumj/project-unigrasp.html里的冬冬实现方式一样。
"使用vesafb,应用程序不能在运行时切换模式"----你的意思是如果我的程序需要用800x600,那么进入系统之前就应该设置为800x600???但是我上面那段小程序,开始只是初始化SDL,并没有改变模式啊,从执行的结果来看,也的确是到
if(-1==(SDL_Init(SDL_INIT_VIDEO)))
{
printf("Cannot initialize video\n");
exit(EXIT_FAILURE);
}
这里就停了。更奇怪的是前几天我编译得程序确实在运行时自动将640x480的分辨率改成了320x200,这应该算是把模式切换掉了啊~但是同一段代码,我没有做任何修改,今天上午编译运行的时候就显示不能初始化了~~~ |
|