MGL Version 2 は、Handheld PC などリソースの少ないマシンで グラフィック対応のアプリケーション動かすためのグラフィックライブラリ および、ウインドウマネージャです。
BSD ライセンス (に近いライセンス)で、ソースを公開しています。
詳しくは、"MGL2 とは何か"のページを参照してください。 mgl2-alpha-020.tar.gz
fontkit-1.1-nobdf.tar.gz ( MGL 形式のフォントが含まれています)
fontkit-1.1-src.tar.gz ( MGL形式のフォントの オリジナル (BDF))NetBSD/hpcmips の current では、backlight on/off、contrast/brightness 調整 virtual console 切替え、resume での画面崩れ対策 および wscons=YES 時の キーが取得できない問題の対処が入ったので 、 ほぼ満足できる機能レベルになっているんじゃないかと思います。
1.5 の環境では、backlight on/off、contrast/brightness 調整 はできません。current でも contrast/brightness 調整の機能自体は開発中。 ( MGL は API だけサポート)
初代モバイルギアで動く UNIX(
PocketBSD
,
PocketLinux
) と
Window CE マシンのアーキティクチャ上で動く UNIX (
NetBSD/hpcmips
)
さらに NetBSD/mac68k,
Linux/7k(Psion5 上の Linux)
や
Linux-VR(Windows CE 機上の Linux)
をターゲットにして開発中です。
メインターゲットは上記のものですが、同一アプリケーションを
X11 で動かしたり、PC UNIX のコンソール上でも動かすことができます。
cvs -d :pserver:anoncvs@jp.netbsd.org:/cvs/jproot login CVS passwrod: anoncvs cvs -d :pserver:anoncvs@jp.netbsd.org:/cvs/jproot co othersrc/mgl/mgl2
mgl2 非対応だが、MGL の API で Windows のアプリが作れる! MGL 対応のアプリが増えると嬉しい。
mgl2 に対応した perl モジュール。サンプルが豊富。
mgl2 に付属の demo が完全移植できている!
すくなくとも浮動小数点がないマシンではruby の方が早いみたい。 オリジナルは、mgl1 にしか対応されていないが将来有望かも。
MGL2 化非公式パッチ ruby-mgl2.pat.gz
mgl2 に対応した java モジュール。
awt がなくても、グラフィックが使える!
squeak を mgl2 に移植してみました。 いろいろ不具合ありますが、デモぐらいはできそう。 ( しばらく mgl2 のソースに 最新版を添付します。)
------- alpha-020 --------------------------------------- o md_vga.h NetBSD/i386 対応 -- いちおう動くとこまで来たので、config.mk-netbsd-i386-vga{+x} を追加 o md_vga.h NetBSD-1.5/i386 対策 ( 動くかもしれない が未確認 ) -- ioctl を使わずに、VGA のモード設定ができるようにした。 -- wsmouse のコードを md_hpcmips.h からとってきた。 o vt.c 初期化でメモリを壊していることが判明。 o mgterm.c 変数が2重に定義されていたので修正。 o lib/emcons.c emcons_refresh() で、core-dump する バグの修正。 ( r_minx よりも r_maxx が大きくなるケースがあって、メモリが壊れる) o nine/Makefile mgterm/Makefile 以下の問題がみつかったので修正。 nine/Makefile: GP_DYNAMIC=y でないとき make install でエラーになる。 mgterm/Makefile: elf 環境でないとき SYM_PREFIX が二重定義になる。 o config.mk-freebsd-vga/config.mk-freebsd-vga+x FreeBSD-4.0 Console で動作を一応確認。(X と mouse は未確認) o mgterm/mdate.c FreeBSD-4.x 対応 (スワップ表示 の部分を usr.bin/top/machine.c から 取って来て追加 ) o mcalc 計算する部分を 手直ししてみた。... でも電卓風というレベルは脱却していない。 あとオプション追加。-m で独立したアプリとして起動。(X 版テスト用) o mgterm -f オプションで複数のフォントを指定した場合、 F8 で フォントサイズを動的に切替えられるようにした。 -f オプションのフォーマット font_size1,font_size2, ... ,font_sizeN (スペースをいれないこと) font_size は、8,10,12,16,24 または、16x11 など 例: -f 8,10,16x11,24 最初に表示されるのは、10x8 のフォント F8 で次のフォントに切替え。 o mgterm/vt.c カーソルの形状をカスタマイズできるようにした。 設定名(環境変数など) CURSOR_SHAPE に BLOCK,UL,RECT のいずれかを指定可能。 BLOCK は従来カーソル。 UL は、アンダーライン。 RECT は中抜き四角。
019 から 020-pre4 までの 変更概要 KEYMAP 対応 --- 各OS のキー定義を読み込み MGL 内部で、RAW モードから キーコードに変換する。 バックライト/ブライトネス/コンソール切替え も MGL で対応。( OS がサポートしている場合有効 ) mgl_getenv 新設 -- 今まで getenv していた設定を 設定ファイルで指定できる ようになった。 mgterm --- 色を設定できるようになった。 /dev/pts 対応 (一応) cygwin 対応 FreeBSD の VGA console 対応 (md_vga.h) nine --- マウス/スタイラスからのキー入力エンジン を ソースtree に追加。 mglcalibrate の linux-VR 対応。
------- alpha-019 --------------------------------------- o マウス入力の見直し。 いままで 移動は、ボタンを押したときしか取得できなかった が、mgl_set_keymode(MGL_SK_EXMOUSE_EVENT) を指定することで、ボタンを離したときも取得できるようにした。 o sqMgl.c 添付 (contrib/squeak/) まだまだ Mgl とバージョンを合わさないとまずそう ------- 018p10 o emcons.c の見直し o raw keybarod の定義の見直し -- squeakMgl.pat で機能の確認。 ------- 018p9 o MODIFER 付き キー入力サポート開始 -- MGL_SK_TRANSLATED_WITH_MODIFIER を MGL_SK_EXTRANSLATED に変更 (長いので) -- これを使うには、keymap の設定が必要 (MGLAPI.doc , memo/keymap.txt を参照。) o 環境変数 MAXCOLOR を MGL_MAXCOLOR に変更。 ------- 018p8 o mil PNG 対応 (Yukihiko Sano) o RAW モード -- bugfix -- memo/raw_keyboad.doc 追加 o 64bit OS 対応 -- malloc の宣言のために stdlib.h を include o iconedit 改良 (さとさと さん) -- read_screen_xpm など o hpcmips R530 系 suspend 対策 -- 時間が飛んだら redraw ( の つもり) (emcons.c) ------- 018p7 o Ctrl+@ が入力できないバグの修正 o RAW モードサポート (まだフレームワークレベル ) mgl_set_keymode(mode) mode: MGL_SK_TRANSLATED MGL_SK_RAW MGL_SK_TRANSLATED_WITH_MODIFIER (X 版のみ) demos/rawdemo RAWモード テスト用 o linux-vr TouchPanel サポート --- 中西さん 完全ではなく、とても遅いそうです。求むチューニング。 o フォントキットのツールを 同梱 mgl_fontinfo フォントパターンの表示/変更をサポート bdftomgl bdf および fontx2 フォーマットから mgl フォントを生成可 あまりしっかり作れていないのですが、結構便利に使えます。 ------- 018p6 o share_fb acceleration 8bpp/16bpp サポートのためのフレームワークと 8bpp/16bpp 用ドローエンジン (未完成: 不動品 dec192c.c dec3kc.c)) o mgterm アンダーラインサポート (mgterm.cap も更新) o instcap.sh 追加 -- mgterm の エントリ追加のためのシェルスクリプト。 o mgterm/vt.c memcpy -> memmove に変更。(mgl_memmove にも一応対応) o ドローエンジン バグ fix (16color , 192color) --- やないさん o (hpcmips) hpcfbio.h 対応 --- やないさん 最新カーネル, pbsdboot.exe の組み合わせ でない場合は、md_hpcmips.h の USE_CMAP8 を undef してください。 ( config にしません。) o PocketLinux(mobilegear) 対応 --- 神木さん o cons , X11 の 両方をサポートした svr を作れるようになった --- 神木さん o share_fb acceleration 体感 倍ぐらいの性能向上。 ドローエンジンの関係で、2bpp/4bpp のみサポート可能。 ------- 018p5 o 高速化その2 -- get/put_pixstream の高速化 アンローリングを中心に軽め(font にはあまり効きません) o emx11 の使い勝手を向上 -- GENERIC_16COLOR のサポート -- ランタイムで MAX_COLOR を変更できるように。 例: setenv MAX_COLOR 16 o md_linuxfb.h same_format acceleration -- 実画面の update で memcpy を使えるような高速化の実装 (神木さん) o バグ修正 -- dec192.c で mgl_memset 使ってしまったのの修正 -- mglbench バグ修正 (ほんとは clip のバグだが未修正) o mglbench -- 表示方法の変更 (単位を フレーム/秒に 1フレーム=480x240) -- refresh() を入れた。 ------- 018p4 o 高速化その1 -- ferom.c の最適化 -- mgl_memset2 , mgl_memxor, mgl_memxor2 の追加 -- mgl_memset, mgl_memmove の追加 (オプション) C レベルで、アーキティクチャ向けコードを入れられるようにした。 OPTIMIZE_FOR=OPTTYPE_MIPS 等 ( Build.doc を参照 ) ------- 18p3 o psion5 の port をマージ (神木さん) -- タッチパネルサポート linux-ce と共有できるかどうかは不明 (?) #define MGL_MOUSE_PSION5 が必要 -- dec16.c のバグ修正 o ドローエンジン dec4rn.c 追加 (やないさん) -- 2pp reverse order / normal color (MAC 2bpp / hpcmips 2bpp NATIVE) -- fb 共有化の準備 ------- 18p2 o hpcmips MC-R500 8bpp カラーサポート 完全サポートは無理ですが 018p1 よりはまともになりました。 o mkdep.sh 修正 lib の suffix サポート o mgl2_ 関数群 サポート(for OOP) ------- 018p1 o make 環境の見直し と 018 で入ったバグの修正 top ディレクトリから make できるように。 mkdep.sh の追加。(gcc -M の機能を利用するので、CC が指定できます クロス対策 ) 確認環境は、NetBSD/hpcmips FreeBSD-2.2.7/3.3 vine-1.1 o NetBSD/hpcmips R500 偽物カラー対応 -- 6色x3レベル + 4グレースケールしか使わないので かなり厳しい けれど色は出る! o emcons.c -- memcpy での refresh のサポート(チューニングのための フレームワークのみ) -- SHOW_MOUSE の変数化 ------- alpha-018 まで o libmgl.a を生成するのをやめた。 - hpcmips など遅いマシン対応のため。 o FreeBSD 3.x に対応(のつもり) conf/iself.sh を実行して 1 でないなら報告お願いします。 対応は、とりあえず FreeBSD.mk のみ。 o 640x200 サポート (のつもり) - mglsvr -s cga - mgterm -o cga (テスト用) - ミニアプリ mdate,mcalc,msame,iconedit,mini_mil o dso 版 ミニアプリ での マウスサポートのバグ修正 - フォーカスされたりはずされたときに vkattach/vkdetach するように。 o Linux fb サポート (神木さん) - md_linuxfb.h , fb8.h その他 fb が 使えるカーネル(2.2 以上)が必須。 o WhatisMGL.doc のアップデート - これからときどき更新するようにします。