SDL_SetVideoMode Desired vs. Obtained

时间:2011-11-28 06:42:22

标签: c sdl

我正在使用SDL编写用于图形的程序。我的程序已针对以每像素32位模式写入视频进行了优化。我只是沿着每条扫描线写下蓝色,绿色,红色,跳过,蓝色,绿色,红色,跳过,蓝色,绿色,红色,跳过(跳过32 bpp格式的额外字节)。这有可能失败吗? SDL能否否认我32 bpp并给我别的东西?不同颜色的字节偏移量会以不同的顺序结束并搞砸我的程序吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,SDL_SetVideoMode可确保您获得所需的像素深度。即使像素深度不可用,它也会虚拟地模拟它(它们称之为“阴影表面”)。当然,可以使用SDL_ANYFORMAT标志禁用此功能。

有关更多信息,请参阅以下wiki

http://sdl.beuc.net/sdl.wiki/SDL_SetVideoMode

我也怀疑如果深度被模拟可能会出现性能下降。不确定。

另外关于你的逻辑,我不确定你为什么要做这样的原生扫描线操作。如果您的应用程序确实需要这样的控制,那么您可能最好编写OpenGL或DirectX特定代码,并通过库调用将它们与SDL连接。您可以谷歌了解有关使用SDL连接OpenGL或DirectX的更多信息。