MSX Datapack wiki化計画

3章 MSXViewの構成と機能

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 MSXViewは次に示すようなマネージャ群により構成されています。

  • ディスプレイマネージャ
  • ビットブロックマネージャ
  • グラフパック
  • フォントパック
  • テキストマネージャ
  • リソースマネージャ
  • イベントマネージャ
  • コントロールマネージャ
  • メニューマネージャ
  • ダイアログマネージャ
  • プリントマネージャ

この章では、これらのマネージャについて説明します。

 3.1 ディスプレイマネージャ

 ディスプレイマネージャは、画面表示を管理するマネージャです。MSXViewでは、オーバーラップウィンドウ(相互に重なることのできるウィンドウ)環境を利用することができますが、ディスプレイマネージャは、このウィンドウなどを管理します。MSXViewでは、画面に対する描画は、ディスプレイマネージャの管理下で行わなければなりません。
 一般的に、オーバーラップウィンドウ環境では、他のウィンドウによって隠された別のウィンドウを表に出すためには、アプリケーションがウィンドウを再描画しなければなりません。しかし、MSXViewでは、ウィンドウの重なりにより失われる部分は、ディスプレイマネージャによって自動的に退避されるので、再描画などを行う必要はありません。ただし、重ねられるウィンドウの面積に制限があります。
 通常の描画領域にはFWINを、ポップアップメニューなど注目させたい部分にはSWIN、BWINを使うことを推奨します。また、通常のウィンドウは、その総面積に限りがあるため、FIXウィンドウという移動やオーバーラップができないウィンドウを使用することができます。各アプリケーションの描画領域、作業領域など大きな面積を使用する部分をウィンドウで管理するには、FIXウィンドウが便利です。FIXウィンドウ同士を重ねあうことはできませんが、FIXウィンドウと通常のウィンドウ(FLOATウィンドウと呼ぶ)を相互に重ね合うことはできます。

 3.2 ビットブロックマネージャ

 ビットブロックマネージャは、ウィンドウ処理を高速化するために、画面上の矩形領域を効率的に裏VRAMに格納するためのマネージャです。オーバーラップウィンドウの再描画処理をアプリケーションが行わなくても良いのは、ビットブロックマネージャが、隠される部分を自動的に裏画面に退避するからです。ビットブロックマネージャでは、矩形領域を横に1ラインずつスライスし、上から順に格納しています。
 通常、ビットブロックマネージャは、ウィンドウ管理の内部処理ルーチンとしてディスプレイマネージャからりようされていますが、画像を扱うアプリケーションなどで直接利用することもできます。

 3.3 グラフパック

 グラフパックは、グラフィックスの汎用ルーチン群です。描画環境を設定し、点、直線、四角形、円、楕円、扇型、多角形などを高速に描画します。このときに、ペン先や塗りつぶしタイルの指定、クリッピング領域なども指定できます。
 グラフパックを使用するには、描画環境(MSXViewではペンと呼ぶ)を設定しなければなりません。
 システムでは、SYSPENと呼ばれる標準的な描画環境を用意しているので、通常の描画にはこのSYSPENを使います。しかし、太いペン先や特殊な塗りつぶしタイルなどの特殊な描画環境を使うときは、アプリケーションでペンを作成し、それを使用します。SYSPENを勝手に更新すると、以降のアプリケーションおよびシステムサービスの実行に大きな影響を及ぼしてしまいます。
 MSXViewでは、同時に複数のペンを作成しておくことができます。使用中のペンをカレントペンと呼び、他のペンを使用するときには、カレントペンを切り換えます。
 グラフパックの使用する座標系は、すべてウィンドウの原点(ウィンドウの左上の点)からの相対座標です。したがって、ウィンドウをどの位置に出しても、内部の描画処理については、気にする必要はありません。
 また、グラフパックでは、グラフィックアプリケーションのために、ある点が直線や円の上に存在するかどうかを調べるための機能があります。この機能により、描いた図形をつかむ処理などが簡単に記述できます。

 3.4 フォントパック

 3.5 テキストマネージャ

 3.6 リソースマネージャ

 3.7 イベントマネージャ

 3.8 コントロールマネージャ

 3.9 メニューマネージャ

 3.10 ダイアログマネージャ

 3.11 プリントマネージャ

 MSXViewでは、サポートしているプリンタごとに、プリンタドライバという特殊なオーバーレイモジュールが用意されています。これにより、すべてのプリンタを「MSXView仮想プリンタ」として統一的に扱うことができ、プリンタの種類ごとに別々のプログラムを開発していた従来の方法に比べて、大変簡単に各種のプリンタをサポートすることができます。
 基本的には、VRAMにイメージ情報を展開し、これをプリンタドライバに渡して、実際に印字を行うという手順になります。

 3.12 その他のマネージャ

 MSXViewには、以上で簡単に説明したマネージャの他にも、以下のようなマネージャがあります。

  • システムマネージャ
  • キーマップマネージャ
  • サウンドマネージャ
  • メモリマネージャ
  • プリントマネージャ