我的 allegro 程序在全屏模式下运行良好,但在我退出程序后,我的桌面屏幕分辨率变得一团糟。我的印象是运行 allegro_exit(); 会将屏幕分辨率恢复到原来的样子。
我只是想知道是否有其他人遇到过这样的问题以及他们做了什么来解决它。
我在 Linux Mint 13 上运行它
首先,希望您至少在运行 Allegro 4.4。但即便如此,我还是强烈建议切换到 5.0 系列。第 4 版基本上已经过时,随着操作系统的变化,它变得不太可能可靠地工作。
也就是说,您可以尝试显式调用set_gfx_mode(GFX_TEXT, 0, 0, 0, 0)
以尝试干净地退出全屏。
此外,如果您设置与桌面相同的模式,您将遇到的问题最少。例如:
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权限运行。如果这一切都失败了,您可能会卡在使用窗口模式。