1980 年代の Apple II BASIC では、"HGR" を使用して画面に移動し、"HCOLOR" で色を設定し、"HPLOT" で点をプロットしていました。また、スクリーン バイト データを操作することもでき、プログラム制御をイベント ハンドラに渡す必要はありません。この途方もなく初歩的な機能は、今日、すべての言語とすべてのライブラリに欠けているようです。
そこで、 X Window APIを使用して C でこれを行うための小さなライブラリを作成しました。ウィンドウのビットマップを変更し、変更したものを表示できます。これは簡単なことではありませんでした。二度とやりたくありません。
私は現在いくつかの目的で Perl を使用していますが、Perl 用のツールが必要です。新しいスレッドを生成せずに戻るサブルーチンを呼び出すことができ、ウィンドウを出力し、ウィンドウにグラフィカルなものを追加できます。プログラムが気に入ったときにイベントをクエリします。これは 1980 年代の BASIC の機能なので、難しくはないはずです。しかし、私が見たツールではそれができませんでした:
- GD: 私が見る限り、これはグラフィック ウィンドウではなく、グラフィック ファイルを作成します。別のプログラムにパイプする必要があるようです。
- Gtk2: イベントをキャッチするために別のスレッドを分岐する必要があります。そうしないと、ウィンドウが表示されません。私は何もフォークしたくありません。後でキューに積み上げられたものを見るように特に頼まない限り、ほとんどのイベントは気にしません。
- Qt : ここでは、制御をイベント ハンドラーに渡すことも期待されます。受け渡しなし、表示なし。C++ バージョンでは、ハンドオフなしで Qt を表示および描画することができました。
- PerlTk: 再び愚かなハンドオフで。
- OpenGL: ここでは、キープレスなどの X ウィンドウ イベントをキャッチする方法がわかりません。
実行中のアプリケーションから XWindow を起動する方法を知っている人はいますか? GUI アプリケーション プロセスをフォークせずに、点や線などの基本的なものをウィンドウに描画でき、自分のスケジュールでウィンドウのイベントを照会できる場所を知っていますか? Perl 用の X Window API を簡単に調べてみましたが、これは C と同じくらい恐ろしいものであり、C コードと Perl とのインターフェースも恐ろしいものです。必要なら、やります。しかし、そうではないかもしれません。Perl 用の HGR は既にありますか?
私が何を意味するのか疑問に思っている場合は、イベント ループ グラフィカル ライブラリがありません。このリンクされた論文を参照してください。これは残念ながら C 用です。このようなことは、プログラミングの入門クラス以外の科学的なものに非常に役立ちます。