[PR] この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。
(ドキュメント読んだ概要をかいつまんだもの, まだAllegro5.0.7ビルドやコンパイルを試してないため、未検証の内容です!!) Allegro5.0.0RC〜5.0.7までの状況をおおまかにつかむためのもの。 現在Allegro5.0.0系は、安定版(バグ出し中心)。 Allegro 5.1系は開発版(仕様がめまぐるしく変わる)に分かれている。 この2つの系統はそれぞれソースレベルで互換性があるが、作成されたバイナリには互換性が無いとのこと。 5.0.0RC版から、多くとも 13箇所追加、 名称変更が3カ所程度ある?(5.1系重複含む)。 また、バージョン管理システムを SVG → GIT に変えたようです。
Allegro5.0.7ののライセンスファイルには、Allegroのライセンスとあわせて、Allgro4.9.8以降で導入されたbstrlib(BSD)と DejavuFontのライセンスが合わせて書かれている bstrlibはバッファオーバーフローを防ぐ仕組み。BetterStringLibraryと呼ばれる。 DejavuFont は CHKグリフ以外の全ての文字を網羅したフォントのこと。 MacOSX環境でallegro5をビルドするには Clang とCMake が必要。それには Xcodインストールする必要がある。 Clangは アップルが2000代中盤以降からgccを置き換える目的で採用したC言語系コンパイラでのフロントエンドで、Xcodeに付属するLLVMの一部 最終的に、GCCよりも性能の良いコンパイラを目指している。 Allegroのビルド時には、gccの代わりにClangを使用しているので、CMakeを利用する際にClangのファイルパスを指定する必要がある(GUI,CUIどちらでも)。The Better String Library
★al_init → al_init_各アドオン名_addon → al_install_各デバイス → create display の流れで初期化 al_clear_to_colorで画面内容消去、ビットマップになにか書いたり、回転移動させたり、画像をビットマップとしてロードした後は、 sl_flip_dipay関数を使用することで画面に表示する。 その繰り返しで画面が変化する。 ★フォントを利用するには、al_init_imageと al_init_ttfを事前に実行しておく必要があるとのこと。そのうえでフォントをロード。 ★ビットマップ描画 図形を描画するプリミティブ関連のAPIは大きく2分けて ローレベル( 長方形, 楕円、直線などの関数が用意されている )とハイレベルの( 引数にターゲットビットマップを指定して描画 )の2つに分類できる。 ローレベルのプリミティブAPIは、al_target_bitmapで指定したビットマップに対して描画が行われ、個別にどのビットマップに描画するかの指定しなくてもいい。 これらのことから、Allegroでは描画対象となるビットマップを切り替えながら、描画コマンドを使用する使い方をするようです。 ★半透明処理 乗算やハードライトなどを実現する半透明処理(blending)は al_set_target_bitmapと同様に sl_store_state と al_restore_state によって 半透明描画モード Allegroシステムの状態を保存しながら使用するのがよいとある。 ★オーディオ関連 オーディオ関連は、メモリに全部音楽データを展開するsample と 一部だけを読み込むstream の二種類の再生方法がある。 また、stream と sampe に対して、ゲインや周波数や深度パラメータを加工するmixer や 再生位置などを司るvoice の組み合わせをアタッチする仕組みは健在。 ただし、sampleは、mixer等と接続する場合に限り sample_instance としてアタッチする必要がある。 ★各OSネイティブのダイアログを出すことができる。 ★イベントドリブン方式 display, keyboard, mouse, joystick , timer などがある。これらは al_install_なになに 関数で初期化し、 al_register_event_srcで登録するらしい。 display イベントはウインドウがリサイズした時に発生する(これを有効にするには、ディスプレイかウインドウにリサイズフラグを与えておくらしい) al_wait_for_event または al_get_next_event を利用して取得する。 ★Python ラッパー ドキュメントによれば、allegro本体ビルド時に、Python対応のフラグを有効にしておいて、ソース内にある allegro.pyを呼び出すとできるらしい。 ただし、Allegroの全定数と関数を単純に書き出したものなので、すべてがそのまま動くわけではない。 引数を渡す場合にもまだ完全でない部分がある、と書かれている。Tsukubado