|
|
|
|
|
|
|
|
|
script は言語指定コードを含まない文字コードのデフォルトの文字セットとして使用される。
描画環境の文字セットに関しては、本システムコールの他に、文字(列)描画によっても、自動的に変更される可能性がある。
|
|
|
|
len には言語指定コードも含まれ、言語指定コード2バイトを1文字とみなす。
文字列幅とは、指定した文字列を描画した場合の全ての文字枠を囲む最小の長方形の幅であり、設定されている水平文字間隔を含んだ値となる。
str で指定した文字列が len で指定した値より短い場合は、そこまでの文字列幅が戻される。
pos は文字列中の各文字の描画位置の水平座標値を格納するための、len の大きさを持つ W 配列へのポインタである。先頭文字に対応する座標値は、 現在設定されている文字描画位置の水平座標値となる。pos=NULL の場合は、各文字の描画位置は格納されない。
文字列中に言語指定コードが含まれる場合、言語指定コードに対応した pos[N] にはその時点での文字描画位置が設定される。言語指定コードによる文字描画位置の更新は行われず、pos[N]、pos[N+1] の値は等しくなる。
縦書きの場合は、この関数は単に文字幅を戻すことになり、pos にはすべて同一の値が設定されることになる。
この関数により文字描画位置、言語指定は変化しない。
|
len には言語指定コードも含まれ、言語指定コード2バイトを1文字とみなす。
文字列高さとは、指定した文字列を描画した場合の全ての文字枠を囲む最小の長方形の高さであり、設定されている垂直文字間隔を含んだ値となる。
str で指定した文字列が len で指定した値より短い場合は、そこまでの文字列高さが戻される。
pos は文字列中の各文字の描画位置の垂直座標値を格納するための、len の大きさを持つ W 配列へのポインタである。先頭文字に対応する座標値は、 現在設定されている文字描画位置の垂直座標値となる。pos=NULL の場合は、各文字の描画位置は格納されない。
文字列中に言語指定コードが含まれる場合、言語指定コードに対応した pos[N] にはその時点での文字描画位置が設定される。言語指定コードによる文字描画位置の更新は行われず、pos[N]、pos[N+1] の値は等しくなる。
横書きの場合は、この関数は単に文字高さを戻すことになり、pos にはすべて同一の値が設定されることになる。
この関数により文字描画位置、言語指定は変化しない。
|
len には言語指定コードも含まれ、言語指定コード2バイトを1文字とみなす。
*dr が NULL でない場合、対象描画環境の相対座標系で表現される、文字列描画領域が設定される。
文字描画領域とは、指定した文字列を描画した場合の全ての文字枠、文字枠を超えたカーニング、斜体描画を含む最小の矩形であり、設定されている文字間隔を含んだ値となる。
str で指定した文字列が len で指定した値より短い場合は、そこまでの文字列幅が戻される。
str で指定した文字列中に言語指定コードがあった場合、フォントを切り替えも考慮した描画領域情報の取得が可能である。
alen が NULL でない場合、処理した要素(文字)数(TCの個数)が設定される。通常はlenと同じ値が設定されるが、実際の文字列要素がlenよりも少なかった場合や、言語指定コードの途中でlenの要素数に達した場合、正常に処理できた部分の要素数が設定される。 alen が len を超える値になることはない。(不完全な言語指定コード列があっても、エラーにはしない。)
chp は文字列中の各文字の描画位置を格納するための、len の要素数を持つ PNT 配列へのポインタである。chp=NULL の場合は、各文字の描画位置は格納されない。言語指定コードに対応したPNT配列の要素に関しては,その時点での文字描画位置が設定される。
cr は文字列中の各文字の描画領域を格納するための、len の要素数を持つ RECT 配列へのポインタである。cr=NULL の場合は、各文字の描画領域は格納されない。言語指定コードに対応したRECTに関しては,その時点での文字描画位置を(Px,Py)として、{Px,Py,Px,Py}が設定される。(RECT としては空ということになる。)
この関数により描画環境の文字描画位置、文字セット(SCRIPT)は変化しない。関数値として、エラーコードまたは、描画終了時点でのSCRIPTを戻す。ただし、SCRIPTに変化がない場合には0を戻す。
|
|
|
言語切り替えが発生した場合、切り替わった言語指定に対応したSCRIPTを戻す。
str で指定した文字列が len で指定した値より短い場合は、そこまでの文字列が描画される。
|
言語切り替えが発生した場合、切り替わった言語指定に対応したSCRIPTを戻す。
str で指定した文字列が len で指定した値より短い場合は、そこまでの文字列が描画される。
|
文字描画位置が文字イメージ矩形のどの位置に対応するかは、通常の文字描画 と同様に文字描画方向に依存する。
描画すべき文字イメージは以下に示すビットマップデータとして取り扱われ る。この文字イメージは isize で示される大きさを持ち、asize で示される 大きさに拡大/縮小が行なわれて描画される。
planes 1 rowbytes ((isize.h +15) ÷ 16)×2 (偶数) bounds (0, 0, isize.h, isize.v) baseaddr img
ベース位置に関しては、描画時点でのフォント情報の文字高さとベース位置の比率をもとに、asize.v から決定される。
Base = asize.v * FNTINFO.base / FNTINFO.height