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
、ルート権限で実行している可能性があります。それでもうまくいかない場合は、ウィンドウ モードを使用している可能性があります。