IBS_TRANS(3X) — NEWS-OS Programmer’s Manual
名称
ibs_trans、ibs_mirror − 2 値イメージの矩形転送、鏡像処理
形式
int ibs_trans(rop, sadr, siw, sx, sy, w, h, dadr, diw, dx, dy)
char ∗sadr, ∗dadr;
int ibs_mirror(rop, sadr, siw, sx, sy, w, h, dadr, diw, dx, dy)
char ∗sadr, ∗dadr;
解説
ibs_trans はラスタオペレーションを含む 2 値イメージの矩形転送を行います。 ソース領域に対して rop で指定されたラスタオペレーションを行って デスティネーション領域へ格納します。
ibs_mirror はラスタオペレーションを含む 2 値イメージの鏡像処理を行います。 ソース領域を鏡像反転した後、rop で指定されたラスタオペレーションを行って デスティネーション領域へ格納します。
sadr(先頭アドレス)、siw (イメージ幅)、sx、 sy、w(幅)、h(高さ) でソース領域を指定します。 dadr(先頭アドレス)、diw (イメージ幅)、 dx、dy でデスティネーション領域を指定します。
生成されるデスティネーション領域でのデータの縦横のサイズは ソース側のサイズで決まります。
siw、diw は 8 の倍数でなければなりません。 また、領域の右端がイメージ幅を越えてはいけません。
ソース領域とデスティネーション領域が重なっている場合の 結果は不定です。(パラメータエラーにはなりません。)
いくつかのラスタオペレーションでは、 ソースが演算に影響しないものがあります。 その場合でも各パラメータのチェックは行いますので、 不合理なソース領域を指定するとパラメタエラーになります。
ラスタオペレーションの種類は以下のとおりです。 (Src はソース、Dest はデスティネーションを意味します。)
ropの値演算
00
1Src & Dest
2Src & ~Dest
3Src
4~Src & Dest
5Dest
6Src ^ Dest
7Src | Dest
8~(Src | Dest)
9~(Src ^ Dest)
10~Dest
11Src | ~Dest
12~Src
13~Src | Dest
14~(Src & Dest)
151
エラー
パラメータエラーの場合 −1 を返します。それ以外の場合 0 を返します。
関連事項
NEWS-OSRelease 4.1C