{{include unfinished_page}} ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[12章 ビットブロックマネージャ]] ,{BSIZE:0|RIGHT}[[14章 フォントパック]] → この章では、グラフパックの構成や使用方法、各ファンクションなどについて説明します。 !!13.1 グラフパックとは  グラフパックは、MSXViewの環境を維持しながらウィンドウに対して、高速に描画するためのルーチン群です。グラフパックを使えば、ペン、タイルのパターンや色などを自由に設定し、線や箱などの図形をクリッピングして描画することができます。  MSXViewでは、文字以外の画面表示はすべてグラフパックを使用します(文字の表示はフォントパックを使う)。描画することができるのは、ウィンドウ環境の描画エリア(ズームされた領域)だけです。したがって、グラフパックを使うときは、ディスプレイマネージャで描画環境を設定して下さい。描画環境の設定については、ディスプレイマネージャの章を参照して下さい。 !!13.2 グラフパックの使い方  グラフパックを使って描画するときは、次のような手順になります。 +描画に使うペンの属性を設定して、.createpen()でペンを作成し、ペンハンドルを割り付けます。ただし、すでに存在するペン(システム標準ペンSYSPENなど)を使うときは必要ありません。 +描画するウィンドウを.chwin()、.pushwin()などでカレントウィンドウにします。 +表示を行うエリアを.zoom()で、ズームします。 +.chpen()、.pushpen()などで、使用するペンをカレントペンにします。 +グラフパックの描画ファンクションを使って、実際に描画します。 +.endzoom()で、描画状態を終了します。 +必要に応じて、.poppen()などで、カレントペンを元に戻します。 +必要に応じて、.popwin()などで、カレントウィンドウを元に戻します。 !!13.3 描画の構成と機能 !13.3.1 ペン  描画環境(線の種類、ペンの大きさ、ペンの居ろ、塗りつぶしの色、バックの色)はPENと呼びます。通常は、このPENで描画されます。 !13.3.2 データ構造 *座標データ *領域データ *カラーデータ *RGBカラーデータ *タイルパターンデータ *ペン typedef struct _grafpen { TINY line[4]; TINY xbot; TINY ybot; TINY xs; TINY ys; TINY pat[8]; TILE pen; TILE fill; TILE back; } PEN; !!13.4 ファンクション一覧  グラフパックには、以下のファンクションがあります。 '''表3.8 グラフパックのファンクション一覧''' ,{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} ,4,_setpalette(),パレットの設定,440 ,5,_getpalette(),パレットの獲得,440 ,166,_initgraf(),グラフパックの初期化,425 ,167,_setpen(),ペンの設定,425 ,168,_direct(),描画エリアの設定,425 ,169,_testpos(),図形の重なりをテストするモードの開始,426 ,170,_testarea(),エリアの重なりをテストするモードの開始,426 ,171,_endtest(),テストモードの終了,427 ,172,_setrub(),ラバーバンドモードの開始・終了,427 ,173,_getrub(),ラバーバンドカラーの獲得,427 ,174,_movepen(),ペンの移動,428 ,175,_pset(),点の描画,428 ,176,_line(),線の描画,428 ,177,_frame(),四角形の描画,429 ,178,_box(),中を塗りつぶした四角形の描画,429 ,179,_round(),角の丸い四角形の描画,429 ,180,_fillround(),中を塗りつぶした角の丸い四角形の描画,430 ,181,_oval(),円の描画,430 ,182,_filloval(),中を塗りつぶした円の描画,430 ,183,_arc(),円弧の描画,431 ,184,_pai(),扇型の描画,431 ,185,_fillpai(),中を塗りつぶした扇形の描画,432 ,186,_dicon(),アイコンの描画,432 ,187,_colicon(),指定色によるアイコンの描画,433 ,188,_index(),上部のみ角の丸い四角形の描画,433 ,189,_polygon(),多角形の描画,433 ,190,_fillpolygon(),中を塗りつぶした多角形の描画,434 ,191,_scroll(),エリア内のスクロール,435 ,192,_copy(),エリアのコピー,435 ,193,_move(),エリアの移動,436 ,194,_framearea(),エリアにしたがった四角形の描画,436 ,195,_erasearea(),カレントペンによるエリアの塗りつぶし,437 ,196,_erase(),指定色でのエリアの塗りつぶし,437 ,197,_curtain(),エリアの塗りつぶし(OR),437 ,198,_changecolor(),エリア内の指定色の変更,438 ,199,_reverse(),エリアの塗りつぶし(XOR),438 ,200,_roundarea(),エリアにしたがった角の丸い四角形の描画,439 ,201,_pixel(),カラーコードの獲得,439 ,202,_readbit(),エリア内のカラーコードの読み出し,439 ,203,_writebit(),エリアへのカラーコードの書き込み,440 ,297,_moveframe(),エリアの移動,436 !!13.5 ファンクションの説明  以下では、グラフパックの各ファンクションについて説明します。 !13.5.1 表記法  ファンクションの説明では、次のように表記します。 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[12章 ビットブロックマネージャ]] ,{BSIZE:0|RIGHT}[[14章 フォントパック]] →