去年の11月、フレームバッファに直接値を書き込んでプログラムからお絵描きがするような、手軽なプログラミングをやってみたい人向けに LCD 風ディスプレイシミュレータを書きました。
ある通常ファイルを /dev/fb0
のようなデバイスファイルに見立て、ファイルを開いてシークして値を書き込むことによって、疑似画面上にドットを打つことができます。
ダウンロード
Gist に Base64 エンコードした display.zip を置いておきました。Linux や Mac OS の場合は、base64
コマンドに -d
オプションをつけることによって、元のバイナリにデコードできます。Windows の場合は、Lhaplus などのアーカイバでバイナリに戻せます。
使い方
display.exe はコマンドラインからオプション付きで実行します。
display 横ドット数 縦ドット数 1ドットあたりの大きさ 中間ファイルパス
次のように実行します。
display 64 24 5 fb0.bin
上の例では、解像度 64×24 ドットのグラフィック LCD ディスプレイとしてシミュレートし、1ドットあたりの表示ピクセル数は5、ファイルに fb0.bin を用いて起動しています。
仕組み
プログラム側から、
- ファイルを開く
- ビット列を書き込む
- ファイルを閉じる
の一連の作業を行います。アニメーションさせる場合は、1 から 3 を sleep()
を入れて繰りかえします。
サンプルプログラム
次のサンプルでは、ファイル fb0.bin を中間ファイルとして display.exe から監視させています。
このサンプルを実行しながら display.exe で表示を行うと、次のような絵が表示されて、波がアニメーションします。