1

私は今アレグロライブラリを使用することを学んでおり、set_gfx_mode関数を使用GFX_AUTODETECT_FULLSCREENするときに最初の引数に使用すると、コンパイルされたアプリケーションを実行するとウィンドウが全画面表示になりますが、実行の最初の1秒後にすべての色が変わります。他のグラフィックモードを使用すると、これは発生しませんが、2つの別々のマシンでは、フルスクリーンモードに変更した直後に色が変わります。他の誰かがこれが以前に起こったことを見たことがありますか?この問題についての議論はまったく見つかりません。

Visual Studio2010用にコンパイル済みのallegro4.4.2ライブラリを使用しており、Windows7を実行しています。

4

1 に答える 1

2

Allegro 4は古く、最新のオペレーティングシステムではサポートされなくなったAPIを使用しています。フルスクリーンモードは、特に8ビットグラフィックスではバグが多くなります。信頼性の高いフルスクリーンを取得する最良の方法は、ユーザーの現在のデスクトップ設定を尊重することです。

int w, h;
get_desktop_resolution(&w, &h);

set_color_depth(desktop_color_depth());
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, w, h, 0, 0);

次に、アプリケーションは図面を中央揃え/拡大縮小する必要があります。それほど難しいことではありません。ネイティブゲームの幅/高さである中間バッファにすべてを描画してから、適切な画面サイズにストレッチブリットします。

とはいえ、Allegro 5は、iOSやAndroidを含む今日のハードウェアとオペレーティングシステムで動作するように設計されているため、実際に学習する必要があります。

于 2012-09-18T23:07:05.517 に答える