{{include unfinished_page}} ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[10章 MSXView標準データ]] ,{BSIZE:0|RIGHT}[[12章 ビットブロックマネージャ]] →  この章では、ディスプレイマネージャの構成や各ファンクションについて説明します。 !!11.1 ディスプレイマネージャとは  MSXViewでの画面表示はすべて、VDP(V9958)のビットマップグラフィックスモードを使用したオーバーラップウィンドウ(互いに重なりあうことのできるウィンドウ)環境で行われます。ディスプレイマネージャは、このオーバーラップウィンドウ環境を統一的に管理する重要なマネージャで、VDPの4種類すべてのビットマップグラフィックスモードを使用することができます。  MSXViewでは、ウィンドウ環境を維持するために、画面への表示は必ずディスプレイマネージャをとおして行います。一般的なオーバーラップウィンドウ環境(例えば、MacOSやMS-Windowsなど)では、他のウィンドウによって隠されたウィンドウを表に出すためには、アプリケーションがウィンドウを再描画しなければなりません。しかし、MSXViewのウィンドウ環境では、ウィンドウの重なりにより失われる部分は、ディスプレイマネージャが自動的に退避・回復するので、アプリケーション側で、再描画する必要はありません。ただし、重ねられるウィンドウの総面積は、裏VRAM1画面分までに制限されます。このウィンドウを、「FLOATウィンドウ」と呼びます。  FLOATウィンドウは、画面上に開ける面積に限りがあるため、MSXViewには、「FIXウィンドウ」というオーバーラップができないウィンドウもあります。各アプリケーションの描画領域、作業領域など大きな面積を使用する部分をウィンドウ管理するには、FIXウィンドウが便利です。FIXウィンドウは重なりあうことができませんが、FIXウィンドウとFLOATウィンドウとが重なりあうことはできます。 !!11.2 ディスプレイマネージャの使い方  画面に何かを描くときは、以下の手順で処理を進めます。 +描画するウィンドウをカレントウィンドウにする。 +描画するエリアをズームする。 +グラフパック、フォントパックなどを使用して描画する。 +エンドズームして、描画環境を回復する。 +ウィンドウ環境を元に戻す。  画面に何か図形を描くときは、ウィンドウ上の描画領域をズームし、グラフパック、フォントパックを使って書き込んで行きます。ズーム中は描画領域内では、カーソルは自動的に消えます。書き込みが終了したら、必ずエンドズームして、描画環境を元に戻して下さい。  ウィンドウ間を図形が横切るような特別の場合(ウィンドウの移動など)は、ダイレクトにルートボードに書き込むこともできますが、ラバーバンド(11.3.1「ルートボード」参照)を使うなどして、画面を壊さないように注意して下さい。 !!11.3 ディスプレイマネージャの構成  ディスプレイマネージャは、以下のような概念で画面を管理します。 !11.3.1 ルートボード  ルートボードとは、ウィンドウが配置される画面そのもので、画面と同じサイズの特殊なウィンドウです。画面上で動くことのない情報などを表示します。ウィンドウを移動するときは、_setrub()を使って、ルートボード上にラバーバンドで枠を表示することができます。ルートボードは色とタイルパターンを持つことができます。MSXViewでは、ルートボードも1つのウィンドウとして扱うようになっており、ウィンドウハンドル1が割り当てられています。 !11.3.2 ウィンドウ  ウィンドウには「FIXウィンドウ」と「FLOATウィンドウ」の2種類があります。「FIXウィンドウ」には、「FLOATウィンドウ」にはない制限があります。 '''FIXウィンドウ'''  FIXウィンドウとは、退避画面エリアを持たないウィンドウのことです。このウィンドウには、画面を保存する領域がないので、クローズしたときは画面の情報が消えてしまいます。FIXウィンドウどうしを重ねることはできませんが、画面上で重ならない限り、画面一杯まで開くことができます。 '''FLOATウィンドウ'''  FLOATウィンドウと違い、制限はありません。自由に重ねあうことができ、移動させることもできます。ただし、開けるFLOATウィンドウの面積は、合計で画面1枚分までです。 '''表3.4 FLOATウィンドウの種類''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:1 0},{BSIZE:1 0} ,名前,形 ,{c},{BSIZE:0},{BSIZE:0} ,TWIN,何もなし(特別な用途のための透明なウィンドウ) ,CWIN,枠なし ,FWIN,枠つき ,RWIN,角の丸い枠つき ,IWIN,インデックス(上端の角が丸い枠)つき ,SWIN,影付き(右下に影がつく) ,BWIN,二重枠つき {{svg 図3.2.svg}} '''図3.2 各ウィンドウの形状'''  通常の描画領域にはFWINを、ポップアップメニューなど注目させたい部分には、SWINまたはBWINを使うのが一般的です。  それぞれのウィンドウがどのように定義されているかは、9.3.1「ウィンドウスタイルの定数」を参照して下さい。 !11.3.3 ズームの概念 !11.3.4 ディスプレイマネージャで使用するデータ構造 '''表3.5 statusの内容''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:1 0},{BSIZE:1 0} ,ビット,意味 ,{c},{BSIZE:0},{BSIZE:0} ,7,FIX ,6,Closed ,5,Clear ,4,reserved ,3,Window style ,2,Window style ,1,Window style ,0,Window style !11.3.5 ペンハンドルとフォントハンドル !11.3.6 デフォルトとカレント !!11.4 ファンクション一覧  ディスプレイマネージャには、以下のファンクションがあります。 '''表3.6 ディスプレイマネージャのファンクション一覧''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:1 0},{BSIZE:1 0},{BSIZE:1 0},{BSIZE:1 0} ,機能番号,名前,意味,ページ ,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0} ,2,_screen(),スクリーンモードの設定,406 ,47,_initpenhd(),ペンハンドルの初期化,399 ,48,_createpen(),ペンの作成,400 ,49,_deletepen(),ペンの削除,401 ,50,_chpen(),カレントペンの変更,402 ,51,_currentpen(),カレントペンの獲得,402 ,52,_pushpen(),保存をともなうカレントペンの変更,403 ,53,_poppen(),カレントペンの復帰,403 ,54,_penadrs(),ペン情報の獲得,404 ,55,_renewpen(),ペンの更新,405 ,56,_getdefpen(),デフォルトペンの獲得,406 !!11.5 ファンクションの説明 !11.5.1 表記法 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[10章 MSXView標準データ]] ,{BSIZE:0|RIGHT}[[12章 ビットブロックマネージャ]] →