在全屏运行allegro程序后出现屏幕分辨率问题

时间:2012-07-13 09:10:15

标签: c++ allegro

我的allegro程序在全屏模式下运行良好,但在退出程序后,我的桌面屏幕分辨率搞砸了。我的印象是运行allegro_exit();将屏幕分辨率恢复到原来的状态。

我只是想知道是否有其他人有这样的问题以及他们采取了哪些措施来解决它。

我在Linux Mint 13上运行它

1 个答案:

答案 0 :(得分:1)

首先,希望你至少运行Allegro 4.4。但即便如此,我强烈建议切换到5.0系列。版本4基本上已经过了寿命终止,随着操作系统的变化,它变得不太可能可靠地工作。

也就是说,您可以尝试显式调用set_gfx_mode(GFX_TEXT, 0, 0, 0, 0)以尝试干净地退出整个屏幕。

此外,如果您将相同的模式设置为桌面,则会遇到最少的问题。 e.g:

int w, h;
get_desktop_resolution(&w, &h);
set_color_depth(desktop_color_depth());
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, w, h, 0, 0);

也许GFX_XWINDOWS_FULLSCREEN会更好。或者也许GFX_XDGA2以root权限运行。如果一切都失败了,你可能会陷入使用窗口模式。