
これほど特殊なウインドウは存在しないだろう。なにしろX680x0上でしか存在意義がないというか、X680x0だからこそ必要なものだからだ。つまるところこれは何かというと、その名の通りグラフィックを表示するためのウインドウである。といってもグラフィックウインドウ単体では何も出来ず、ただ単にウインドウの枠が表示されるだけだ。真価を発揮するのは、このウインドウを利用するアプリケーション――具体的にはキャンバスやCGビジョンを動かしたときにある。
その前にX680x0の画面周りを説明しておこう。X680x0はテキスト画面とグラフィック画面を持っていて、それらを重ね合わせて表示することが可能だ。両方ともビットマップ形式なので、テキストといいつつも画像も表示できる。テキスト画面は1024x1024で16色、グラフィック画面は細かくいうと長いのだが、SX-WINDOWに供されるのは1024x1024で16色か、512x512で65536色である。そのうちモニタに表示されるのは最大768x512(ハードを叩けばもう少しいく)の領域だ。スクロールできたりするので、あくまでも同時にという制限であり、デスクトップの大きさからいうと1024x1024である。そしてSX-WINDOWはテキスト画面を利用しており、グレースケール4色、赤黄青緑のカラー4色、合計8色で構成される。
話を元に戻すとキャンバスは画像ビュアー、CGビジョンは動画ビュアーである。しかし、画像を扱うソフトウェアにとってSX-WINDOWの合計8色の色数はどうやっても少なすぎる。そこでグラフィック画面の出番なのだが、テキスト画面と同じ大きさの1024x1024では16色しか使用できない。やはり65536色を利用したいのだが、その場合のグラフィック画面の大きさはテキスト画面の4分の1しかない。無理してやったとしても512x512以上の範囲にウインドウが散らばってしまうと大変困ったことになってしまう。ということはつまり、散らばらなければ困らないともいえる。グラフィックウインドウの最大の大きさは512x512である。もうお分かりだろう。
グラフィックウインドウは65536色表示可能な領域を管理提供しているのである。キャンバスやCGビジョンを起動すると、グラフィックウインドウの子ウインドウという形でウインドウを開く。SX-WINDOWで階層ウインドウがサポートされたのはこれのためといっても過言ではない。グラフィックウインドウの最大の大きさはグラフィック画面の大きさと同じ512x512である。当然子ウインドウは親ウインドウからはみ出しては表示されないので、それ以上の範囲にウインドウが置かれても全く問題はないというからくりである。なかなかうまい解決方法ではないだろうか。
りゅう/rryu@t3.rim.or.jp