この章の目次にもどる
前頁:2.2 基本概念にもどる
次頁:2.4 図形描画関数にすすむ

2.3 基本関数

ディスプレイプリミティブの関数はすべて W 型の関数値をとり、何らかのエ ラーがあった場合は、「負」のエラーコードが戻る。正常終了時には、「0」ま たは「正」の値が戻る。

ディスプレイプリミティブの関数から戻されるエラーコードは以下のもの である。

EG_ADR ((-64) << 16)
パラメータで指定したアドレスが不正である。
EG_PAR ((-65) << 16)
パラメータが不正、または範囲外である。
EG_NOSPT ((-66) << 16)
現在のインプリメントではサポートしていない、もしくは予約されているパラメータ値である。
EG_NOSPC ((-67) << 16)
システムのメモリが不足、または制限を越えた。
EG_GID ((-68) << 16)
指定した描画環境IDが不正(存在しない)。
EG_LOCK ((-69) << 16)
画環境はロックされている。
EG_LIMIT ((-70) << 16)
システムの制限を越えた
EG_NOEXS ((-71) << 16)
指定したデバイスは存在しない。(登録されていない。)
EG_DEV ((-72) << 16)
指定したデバイスのタイプが不正である。
EG_ERDEV ((-73) << 16)
デバイスでエラーが発生した。
EG_FORM ((-80) << 16)
ビットマップの形式が異なる。
EG_ENV ((-81) << 16)
カラーマップが存在しない。

なお、以下のエラーコードは、各関数毎の説明では特に記述していないが各種の 描画関数で発生する可能性がある。

EG_NOSPT
インプリメント上サポートされていない場合、もしくは予約されている パラメータ値が指定された場合。
基本関数としては、描画環境の生成/削除、描画環境の各データのアクセス、お よび座標変換を行なう関数群が用意されている。 各種の関数内での「相対」←→「絶対」座標変換でオーバーフローが発生した 場合、即ち、-32768 〜 32767 の範囲を越えた場合の描画は保証されないため注 意が必要である。 また、以下に示すように描画すべき図形の一部が -32768 〜 32767 の座標系をはみ出した場合も描画は保証されない。

2.3.1 描画環境の生成/削除

gini_dsp
Initialize Display Primitive
gini_dsp
【形式】
ERR gini_dsp (W mode)
【解説】
ディスプレイプリミティブの初期化処理を行う。
通常、アプリケーションは使用しない。
アプリケーションがこの関数を呼び出したときの動作は保証しない。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_NOSP:
システムのメモリが不足した。
gfin_dsp
Finish Display Primitive
gfin_dsp
【形式】
ERR gfin_dsp ( )
【解説】
ディスプレイプリミティブの終了処理を行う。
通常、アプリケーションは使用しない。
アプリケーションがこの関数を呼び出したときの動作は保証しない。
【リターン値】
=0 : 正常終了
<0 : エラー (発生しない)
【エラーコード】
発生しない。
gcls_env
Delete Drawing Environment
gcls_env
【形式】
ERR gcls_env ( GID gid )
【解説】
gid で指定した描画環境を削除する。
描画環境を生成したプロセスのみがその描画環境を削除可能であり、 そうでない場合には EG_GID のエラーとなる。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID:
指定した描画環境IDが不正(存在しない)。
gopn_dev
Open Devide Drawing Environment
gopn_dev
【形式】
GID gopn_dev ( TC *dev, B *par )
【解説】

dev で指定したデバイスに対する「デバイス描画環境」を新規に生成し、その 描画環境IDを関数値として戻す。 固有ビットマップを持たないデバイスの 場合は、EG_DEVのエラーとなる。

生成された描画環境の各データは、以下のように初期化される。

    対象デバイス        : dev
    対象ビットマップ    : dev の固有ビットマップ
    マスクピクセル値    : 白(0)
    フレーム長方形      : ビットマップの bounds 長方形
    表示長方形          : ビットマップの bounds 長方形
    前置長方形リスト    : 未定義
    クリッピング領域    : 未定義
    線マスクパターン    : 実線
    文字カラー          : 前景:黒(0x10000000)、背景:白(0x10FFFFFF)
    文字描画方向        : TORIGHT (0)
    文字描画位置        : (0,0)
    文字間隔            : すべて0
    文字フォント        : システムフォント
    文字セット          : システムフォントの文字セット
    色変換用カラー情報  : 未定義
【リターン値】
≧0 : 正常終了(関数値は描画環境ID)
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(dev)のメモリのアクセスは許されていない。
EG_DEV
指定したデバイスのタイプが不正である。
EG_LIMIT
システムの制限を越えた。(オープン可能な描画環境の最大数を越えた)
EG_NOEXS
指定されたデバイス(dev)は登録されていない。
EG_NOSPC
システムのメモリが不足した。
gopn_mem
Open Memory Drawing Environment
gopn_mem
【形式】
GID gopn_mem ( TC *dev, BMP *bmap, B *par )
【解説】

dev で指定したデバイスに対する「メモリ描画環境」を新規に生成し、その描 画環境IDを関数値として戻す。描画用のビットマップは bmap で指定したも のが使用される。指定したデバイスがカラーマップを持つ場合は、カラーマッ プを共有することになる。

bmap の内容は、描画環境生成後にディスプレイプリミティブにより直接ア クセスされるため、変更してはいけない。

bmap で指定したビットマップのプレーン数とピクセルビット数が、dev で指 定したデバイスで定義されるものと一致していない場合は、 EG_DEV のエラー となる。

dev = NULL の場合は、「汎用メモリ描画環境」の生成となる。 B *par == NULL の場合、 カラー情報を持たない汎用メモリ描画環境を生成す る。
B *par != NULL の場合、 CSPEC *par とみなされ、カラー情報付きの汎用メ モリ描画環境を生成する。
CSPEC.colmap にカラーマップへのアドレスを設定することにより、 カラーマ ップ方式の汎用メモリ描画環境の生成も可能である。

生成された描画環境の対象デバイス、ビットマップ、カラー情報は生成する描 画環境の種類に応じてパラメータとして指定されたものになり、他の各データ はデバイス描画環境の生成時と同様に初期化される。

【リターン値】
≧ 0 : 正常終了(関数値は描画環境ID)
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(dev)のメモリのアクセスは許されていない。
EG_DEV
指定したデバイスのタイプが不正である。
EG_LIMIT
システムの制限を越えた。(オープン可能な描画環境の最大数を越えた)
EG_NOEXS
指定されたデバイス(dev)は登録されていない。
EG_NOSPC
システムのメモリが不足した。
EG_PAR
パラメータが不正、または範囲外である。bmap の内容が不正、par の内容が不正(カラー情報付き汎用メモリ描画環境の場合)
gnew_env
Open New Drawing Environment
gnew_env
【形式】
GID gnew_env ( GID gid )
【解説】
gid で指定した描画環境と全く同じ内容を持つ描画環境を新たに生成(複製)し、 その描画環境IDを関数値として戻す。 デバイス情報、カラー情報、カラーマップ、ビットマップ(BMP.baseaddr のデ ータ領域)は生成元と共有される。
【リターン値】
≧ 0 : 正常終了(関数値は描画環境ID)
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_LIMIT
システムの制限を越えた。(オープン可能な描画環境の最大数を越えた)
EG_NOSPC
システムのメモリが不足した。
gini_env
Initialize Drawing Environment
gini_env
【形式】
ERR gini_env ( GID gid )
【解説】
gid で指定した描画環境の各データを再初期化し、 gopn_dev() または gopn_mem() を行なった直後の状態と同じ状態にする。ただし、 ビットマップ 上に描画されているデータは変更されない。
【リターン値】
= 0 (E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID : 指定した描画環境IDが不正(存在しない)。
gget_spc
Get Device Specification
gget_spc
【形式】
ERR gget_spc ( TC *dev, DEVSPEC *buf )
【解説】
dev で指定したデバイスの情報(仕様)を取り出し、buf で指定した領域に格納 する。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(dev, spec)のメモリのアクセスは許されていない。
EG_NOEXS
指定されたデバイス(dev)は登録されていない。
gget_dev
Get Device Name
gget_dev
【形式】
ERR gget_dev ( W gid, TC dev[11] )
【解説】
gid で指定した描画環境の対象デバイス名を dev に指定した領域に格納する。 対象デバイスが存在しない場合(汎用メモリ描画環境)は空文字列が格納され る。
【リターン値】
≧ 0 : 正常終了
0=デバイス描画環境
1=メモリ描画環境
2=汎用メモリ描画環境
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(dev)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gget_dsp
Get Device Specification
gget_dsp
【形式】
ERR gget_dsp ( W gid, DEVSPEC *buf )
【解説】
gid で指定した描画環境の対象デバイス情報を buf に指定した領域に格納す る。対象デバイスが存在しない場合(汎用メモリ描画環境)は EG_DEV となる。
【リターン値】
≧0 : 正常終了(関数値は0=デバイス描画環境/1=メモリ描画環境)
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(buf)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gget_csp
Get Color Specification
gget_csp
【形式】
ERR gget_csp ( W gid, CSPEC *buf )
【解説】
gid で指定した描画環境のカラー情報を buf に指定した領域に格納する。た だし、colmap はカラーマップ方式であっても格納されず常に NULL が設定さ れる。カラーマップは別に gget_col() で取り出す必要がある。カラー情報が 存在しない場合は EG_DEV となる。
【リターン値】
≧ 0 : 正常終了(関数値は0=デバイス描画環境/1=メモリ描画環境/2=汎用メモリ描画環境)
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(buf)のメモリのアクセスは許されていない。
EG_DEV
デバイスはカラー情報を持っていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gset_bcs
Set Bitmap Convert Color Specification
gset_bcs
【形式】
ERR gset_bcs ( GID gid, CSPEC *cspec )
【解説】

gid で指定した描画環境に対して、色変換用のCSPECを設定する。 CSPEC がカラーマップ形式の場合、CSPEC.colmap にもエントリ数分の カラーマップが設定されていなければならない。

cspec = NULL とした場合、変換用CSPECを未定義にすることを意味する。 色変換用カラー情報は、カラー情報を持たない描画環境には設定できない。

【リターン値】
0 : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(cspec)のメモリのアクセスは許されていない。
EG_ENV
デバイスはカラー情報を持っていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gget_bcs
Get Bitmap Convert Color Specification
gget_bcs
【形式】
ERR gget_bcs ( GID gid, CSPEC *cspec )
【解説】
gid で指定した描画環境に対して、色変換用のCSPECを取り出す。
CSPEC.colmap = NULL でない場合、カラーマップが取り出される可能性があるため、 カラーマップを取り出すのに十分な領域が確保されていなければならない。
CSPEC.colmap = NULL の場合、描画環境に設定されている色変換用カラー情報が カラーマップ形式であっても、カラーマップは取り出されない。
【リターン値】
0 : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(cspec)のメモリのアクセスは許されていない。
EG_ENV
デバイスはカラー情報を持っていない。または色変換用カラー情報は未定義である。
EG_GID
指定した描画環境IDが不正(存在しない)。

2.3.2 カラーマップの操作

gset_col
Set Color Map Entries
gset_col
【形式】
W gset_col ( GID gid, UW p, COLOR *cv, UW cnt )
【解説】

gid で指定した描画環境のカラーマップの p で指定したエントリから連続し た cnt 個のエントリを cv で指定した値に設定し、 実際に設定したエントリ の数を関数値として戻す。 cv は、COLOR の cnt 個の COLOR 配列へのポイン タである。

カラーマップを持たないか、設定可能でないカラーマップを持つ描画環境の場合は EG_ENV のエラーとなる。

【リターン値】
≧0 : 正常終了(関数値は実際に設定したエントリの数(0〜))
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(cv)のメモリのアクセスは許されていない。
EG_ENV
カラーマップが存在しない。(カラーマップは存在しない)
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(p は範囲外)
gget_col
Get Color Map Entries
gget_col
【形式】
W gget_col ( GID gid, UW p, COLOR OUT *cv, UW cnt )
【解説】
gid で指定した描画環境の対象デバイスのカラーマップの p で指定したエン トリから連続した cnt 個のエントリに対応する COLORVAL 値を cv で指定し た領域に取り出し、 実際に取り出したエントリの数を関数値として戻す。 cv は cnt 個の COLOR 配列へのポインタであり、その配列は予め確保しておく必 要がある。

カラーマップ形式でないカラー情報を持つ描画環境の場合、 pをピクセル値とみなし、ピクセル値に対応する絶対RGBカラーを cv で指定した cnt 個の領域に取り出すことができる。

カラー情報を持たない描画環境の場合は EG_ENV のエラーとなる。

【リターン値】
≧ 0 : 正常終了(関数値は実際に取り出したエントリの数(0〜))
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(cv)のメモリのアクセスは許されていない。
EG_ENV
カラーマップが存在しない。(カラーマップは存在しない)
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(p は範囲外)
gcnv_col
Convert Color to Pixel Value
gcnv_col
【形式】
W gcnv_col ( GID gid, COLOR cv, PIXVAL OUT *pixv )
【解説】

gid で指定した描画環境で cv で指定した絶対カラーにもっとも近いカラーの ピクセル値を取り出し、pixv で指定した領域に格納する。cv の上位4ビット の値は無視され、下位 28 ビットがRGB絶対カラー指定値と見なされる。

カラー情報を持たない描画環境の場合は EG_ENV のエラーとなる。

関数値として、カラーの近似度の目安を示す 0 〜 100 の範囲の値を戻す。0 の場合は完全に一致したカラーであり、100 は補色となる。この値はあくま で目安であり、厳密な意味はもたない。

【リターン値】
≧ 0 : 正常終了(関数値はカラーの近似度(0 〜100))
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(pixv) のメモリのアクセスは許されていない。
EG_ENV
カラー情報が存在しない。
EG_GID
指定した描画環境IDが不正(存在しない)。

2.3.3 描画環境レコードのアクセス

gset_msk
Set Mask Pixel Value
gset_msk
【形式】
ERR gset_msk ( GID gid, PIXVAL pixv )
【解説】
gid で指定した描画環境の「マスクピクセル値」を pixv で指定した値に変 更する。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_NOSPT
現在のインプリメントではサポートしていない、 もしくは予約されているパラメータ値である。
gget_msk
Get Mask Pixel Value
gget_msk
【形式】
ERR gget_msk ( GID gid, PIXVAL OUT *pixv )
【解説】
gid で指定した描画環境の「マスクピクセル値」を取り出し、pixv で指定 した領域に格納する。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_NOSPT
現在のインプリメントではサポートしていない、 もしくは予約されているパラメータ値である。
gget_clp
Get Clipping Region
gget_clp
【形式】
ERR gget_clp ( GID gid, GRGN *clip, W csize, W *a_size )
【解説】

gid で指定した描画環境の「クリッピング領域」を csize バイトの clip の 領域に設定する。

a_size が NULL でない場合、「クリッピング領域」 を設定するために必要な メモリサイズが設定される。

「クリッピング領域」に必要なメモリサイズを獲得するためには、clip = NULL, csize = 0 でこの関数を呼び出せばよい。

clip が NULL または「クリッピング領域」を設定するために必要なサイズよ りも少ない場合、clip の領域にはなにも設定されない。

関数値として、実際に設定したクリッピング領域のサイズを戻す。0の場合、 なにも設定されなかったことを示す。a_size = 0, 関数値 = 0 の場合、 クリ ッピング領域が未定義であることを示す。

【リターン値】
≧0 : 正常終了(関数値は実際に設定されたクリッピング領域データサイズ)
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(clip,a_size)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gset_clp
Set Clipping Region
gset_clp
【形式】
ERR gset_clp ( GID gid, GRGN *clip )
【解説】

gid で指定した描画環境の「クリッピング領域」を clip で指定した任意領域 に変更する。

clip は任意領域へのポインタであり、NULL の場合は、「クリッピング領域」 を未定義(なし)にする。任意領域の内容はコピーされてディスプレイプリミティブ 内で使用される。

【リターン値】
= 0 (E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(clip) のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_NOSPC
システムのメモリが不足した。
EG_PAR
パラメータが不正、または範囲外である。(clp の内容が不正)
gget_fra
Get Frame Rectangle
gget_fra
【形式】
ERR gget_fra ( GID gid, RECT *rp )
【解説】
gid で指定した描画環境の現在の「フレーム長方形」を rp で指定した領域に 取り出す。rp は長方形領域へのポインタであり、 その領域はあらかじめ確保 しておく必要がある。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gset_fra
Set Frame Rectangle
gset_fra
【形式】
ERR gset_fra ( GID gid, RECT r )
【解説】
gid で指定した描画環境の「フレーム長方形」を r で指定した長方形に変更 する。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。
gget_vis
Get Visible Rectangle
gget_vis
【形式】
ERR gget_vis ( GID gid, RECT *rp )
【解説】
gid で指定した描画環境の現在の「表示長方形」を rp で指定した領域に取り 出す。rpは長方形領域へのポインタであり、その領域はあらかじめ確保してお く必要がある。
【リターン値】
= 0 (E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gset_vis
Set Visible Rectangle
gset_vis
【形式】
ERR gset_vis ( GID gid, RECT r )
【解説】
gid で指定した描画環境の「表示長方形」を r で指定した長方形に変更する。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。
gget_for
Get Foreground Rectangle List
gget_for
【形式】
ERR gget_for ( GID gid, RLIST *rlp )
【解説】
gid で指定した描画環境の現在の「前置長方形リスト」を rlp で指定した領 域に取り出す。rlp は前置長方形リストへのポインタであり、リストの各要素 の r_next は正しく設定されているものとする。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gset_for
Set Foreground Rectangle List
gset_for
【形式】
ERR gset_for ( GID gid, RLIST *rlp )
【解説】
gid で指定した描画環境の「前置長方形リスト」を rlp で指定した長方形リ ストに変更する。rlp が NULL の場合、「前置長方形リスト」を空(未定義) にする。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。
gsiz_pat
Get Pattern Image Size
gsiz_pat
【形式】
ERR gsiz_pat ( GID gid, UW kind, UW hsize, UW vsize, W *size )
【解説】

gid で指定した描画環境上での描画で使用する内部パターンイメージを格納す るために必要なメモリ領域全体のバイトサイズを取り出し、size で指定した 領域に格納する。

kind は使用するパターンのタイプであり、内部パターンであってはいけない。 hsize, vsize は、使用するパターンの横サイズ、縦サイズのピクセル数の指 定である。

このサイズは、その描画環境用に生成される同一のパターンタイプ、同一のパ ターンのサイズを持つ全ての内部パターンイメージに対して同一の値である。 即ち、得られたサイズ×N のメモリ領域内にN個の任意のパターンを生成で きることが保証される。

【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_NOSPT
現在のインプリメントではサポートしていない、 もしくは予約されているパラメータ値である。
EG_PAR
パラメータが不正、 または範囲外である。(hsize,vsizeが大きすぎる)
gcre_pat
Create Pattern Image
gcre_pat
【形式】
ERR gcre_pat ( GID gid, PAT *def, UB *loc, UB **pat, W *size、W cvt )
【解説】

gid で指定した描画環境上で描画するための内部パターンイメージを生成する。 def は生成する描画パターンの定義データへのポインタであり、パターンタイ プは内部パターンであってはいけない。

loc は、生成した内部パターンイメージを格納する領域へのポインタであり、 少なくとも gsiz_pat() で得られた大きさがなくてはいけない。

loc = NULL の場合、パターンイメージ用の領域(ローカルメモリ)が get_mbk() により自動的に確保される。 自動的に確保されたローカルメモリは rel_mbk() によって解放できる。

*pat には、生成された内部パターンイメージへのポインタが戻され、そのバ イト数が *size に戻される。得られたポインタを PAT 構造体の ipat.ptr に 設定することにより、パターンとして使用できることになる。 loc != NULL の場合には、*pat には loc の値が設定されることになる。

cvt には G_CVFORM および G_CVCOLOR の指定が可能で、この指定は変換前の パターンがMPATである場合のみ意味を持つ。色変換用のCSPECが描画環境に 設定されていない場合には G_CVCOLOR 指定は無視される。MPATのビットマップの 有効ピクセルビット数が色変換用 CSPECの色指定と矛盾する (カラーマップのエントリ数が足りないなど)場合、EG_ENVを戻す。

生成したパターンは、同一ビットマップ形式を持つ他の描画環境に対しても使 用することが可能であるが、描画環境のCSPECが異なる場合、 描画色に関しては保証されない。

【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(size) のメモリのアクセスは許されていない。
EG_FORM
パターンで指定されたビットマップ形式が描画環境のビットマップ形式と異なる。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_NOSPC
システムのメモリが不足した。
EG_NOSPT
現在のインプリメントではサポートしていない、 もしくは予約されているパラメータ値である。
EG_PAR
パラメータが不正、または範囲外である。(def の内容が不正)
gset_lmk
Set Line Mask
gset_lmk
【形式】
ERR gset_lmk ( GID gid, UW nbytes, UB *mask )
【解説】

gid で指定した描画環境の「線マスクパターン」を mask で指定した内容に設 定する。

nbytes はマスクパターンのバイト数を示す1〜8の値であり、 パターンの周 期を意味する。mask は nbytesで指定したバイト数のバイト配列へのポインタ である。

【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(mask) のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(nbytes<1,>8)
gget_lmk
Get Line Mask
gget_lmk
【形式】
W gget_lmk ( GID gid, UB *mask )
【解説】
gid で指定した描画環境の「線マスクパターン」を取り出し、mask で指定し た領域に格納し、 関数値としてパターンのバイト数(1〜8)を戻す。mask は 8バイトの領域が確保されている必要がある。
【リターン値】
≧ 0 : 正常終了(関数値は線マスクパターンバイト数(1〜8))
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(mask) のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gget_bmp
Get Bitmap
gget_bmp
【形式】
ERR gget_bmp ( GID gid, BMP *bmap )
【解説】
gid で指定した描画環境の「対象ビットマップ」を bmap で指定した領域に取 り出す。 bmap はビットマップ領域へのポインタであり、その領域は予め確保 しておく必要がある。
【リターン値】
=0(E_OK) : 正常終了 <0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gget_bnd
Get Bitmap Bounds
gget_bnd
【形式】
ERR gget_bnd ( GID gid, RECT *rp )
【解説】
gid で指定した描画環境の対象ビットマップの境界長方形(bounds)を rp で指 定した領域に取り出す。 rp は長方形領域へのポインタであり、その領域は予 め確保しておく必要がある。
【リターン値】
=0(E_OK) : 正常終了
<0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(rp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
gmov_bnd
Move Bitmap Bounds
gmov_bnd
【形式】
ERR gmov_bnd ( GID gid, W dh, W dv )
【解説】

gid で指定した描画環境のビットマップの境界長方形(bounds)を (dh, dv) だ け並行移動する。dh は水平方向の移動量、dv は垂直方向の移動量を示す。

なお、クリッピング領域、文字描画位置等の相対座標は変更されない。

ビットマップ境界の移動
図 34 : ビットマップ境界の移動
【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(座標値がオーバーフローした)
gmov_cor
Move Coordination
gmov_cor
【形式】
ERR gmov_cor ( GID gid, W dh, W dv )
【解説】
gid で指定した描画環境の座標系全体を(dh, dv)だけ並行移動する。即ち、ビ ットマップ境界(bounds)、フレーム長方形、表示長方形、文字描画位置の全て を(dh, dv)だけ平行移動する。dh は水平方向の移動量、dv は垂直方向の移動 量を示す。
座標系の移動
図 35 : 座標系の移動
【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(座標値がオーバーフローした)

2.3.4 座標変換

gcnv_abs
Convert to Absolute Coordination
gcnv_abs
【形式】
ERR gcnv_abs ( GID gid, PNT *pp )
【解説】
gid で指定した描画環境の相対座標で示された点 pp の座標値を、絶対座標に 変換する。結果は pp に直接戻される。
【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(pp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(座標値がオーバーフローした)
gcnv_rel
Convert to Relative Coordination
gcnv_rel
【形式】
ERR gcnv_rel ( GID gid, PNT *pp )
【解説】
gid で指定した描画環境の絶対座標で示された点 pp の座標値を、相対座標に 変換する。結果は pp に直接戻される。
【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_ADR
指定されたアドレス(pp)のメモリのアクセスは許されていない。
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_PAR
パラメータが不正、または範囲外である。(座標値がオーバーフローした)
gloc_env
Lock Drawing Environment
gloc_env
【形式】
ERR gloc_env ( GID gid W lock )
【解説】

gid で指定した「デバイス描画環境」と、同一のデバイスに対する他の「デバ イス描画環境」からの書込みアクセスをロック(lock≠ 0 の時)、またはロック 解除(lock = 0の時)する。

デバイスがロック対象外のデバイスの場合、またはメモリ描画環境の場合は、 ロックは適用されず無視される。

ロックされた描画環境での描画(書込み)を行なった場合は、ロックが解除され るまで待たされる。待たされている描画が複数存在した場合、解除後の描画順 序は待たされた順番となる。待つことによりデッドロックとなるような場合は、 待たずに EG_LOCK のエラーが各種の描画関数で戻されることになる。ただし、 このデッドロックの検出はインプリメントに依存する。

【リターン値】
= 0(E_OK) : 正常終了
< 0 : エラー (関数値はエラーコード)
【エラーコード】
EG_GID
指定した描画環境IDが不正(存在しない)。
EG_LOCK
既にロックされている、またはロックが多すぎる。
EG_PAR
パラメータが不正、または範囲外である。(ロックしたプロセス でない)

この章の目次にもどる
前頁:2.2 基本概念にもどる
次頁:2.4 図形描画関数にすすむ