トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

11章 ディスプレイマネージャ

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

 この章では、ディスプレイマネージャの構成や各ファンクションについて説明します。

 11.1 ディスプレイマネージャとは

 MSXViewでの画面表示はすべて、VDP(V9958)のビットマップグラフィックスモードを使用したオーバーラップウィンドウ(互いに重なりあうことのできるウィンドウ)環境で行われます。ディスプレイマネージャは、このオーバーラップウィンドウ環境を統一的に管理する重要なマネージャで、VDPの4種類すべてのビットマップグラフィックスモードを使用することができます。
 MSXViewでは、ウィンドウ環境を維持するために、画面への表示は必ずディスプレイマネージャをとおして行います。一般的なオーバーラップウィンドウ環境(例えば、MacOSやMS-Windowsなど)では、他のウィンドウによって隠されたウィンドウを表に出すためには、アプリケーションがウィンドウを再描画しなければなりません。しかし、MSXViewのウィンドウ環境では、ウィンドウの重なりにより失われる部分は、ディスプレイマネージャが自動的に退避・回復するので、アプリケーション側で、再描画する必要はありません。ただし、重ねられるウィンドウの総面積は、裏VRAM1画面分までに制限されます。このウィンドウを、「FLOATウィンドウ」と呼びます。
 FLOATウィンドウは、画面上に開ける面積に限りがあるため、MSXViewには、「FIXウィンドウ」というオーバーラップができないウィンドウもあります。各アプリケーションの描画領域、作業領域など大きな面積を使用する部分をウィンドウ管理するには、FIXウィンドウが便利です。FIXウィンドウは重なりあうことができませんが、FIXウィンドウとFLOATウィンドウとが重なりあうことはできます。

 11.2 ディスプレイマネージャの使い方

 画面に何かを描くときは、以下の手順で処理を進めます。

  1. 描画するウィンドウをカレントウィンドウにする。
  2. 描画するエリアをズームする。
  3. グラフパック、フォントパックなどを使用して描画する。
  4. エンドズームして、描画環境を回復する。
  5. ウィンドウ環境を元に戻す。

 画面に何か図形を描くときは、ウィンドウ上の描画領域をズームし、グラフパック、フォントパックを使って書き込んで行きます。ズーム中は描画領域内では、カーソルは自動的に消えます。書き込みが終了したら、必ずエンドズームして、描画環境を元に戻して下さい。
 ウィンドウ間を図形が横切るような特別の場合(ウィンドウの移動など)は、ダイレクトにルートボードに書き込むこともできますが、ラバーバンド(11.3.1「ルートボード」参照)を使うなどして、画面を壊さないように注意して下さい。

 11.3 ディスプレイマネージャの構成

 ディスプレイマネージャは、以下のような概念で画面を管理します。

11.3.1 ルートボード

 ルートボードとは、ウィンドウが配置される画面そのもので、画面と同じサイズの特殊なウィンドウです。画面上で動くことのない情報などを表示します。ウィンドウを移動するときは、_setrub()を使って、ルートボード上にラバーバンドで枠を表示することができます。ルートボードは色とタイルパターンを持つことができます。MSXViewでは、ルートボードも1つのウィンドウとして扱うようになっており、ウィンドウハンドル1が割り当てられています。

11.3.2 ウィンドウ

画像ファイルが存在しません。
図3.2 各ウィンドウの形状

11.3.3 ズームの概念

11.3.4 ディスプレイマネージャで使用するデータ構造

11.3.5 ペンハンドルとフォントハンドル

11.3.6 デフォルトとカレント

 11.4 ファンクション一覧

表3.6 ディスプレイマネージャのファンクション一覧

 11.5 ファンクションの説明

11.5.1 表記法