XSolarisOvlCopyPaintType ルーチンは、ソース矩形内の指定された矩形のペイント型情報を使用して、宛先矩形内の指定された矩形の塗りつぶし操作を制御します。ソース矩形と宛先矩形には、任意のタイプのドロアブルを指定できます。ソース矩形が透明オーバーレイの場合は、そのピクセルのペイント型属性がコピーソースとして使用され、カラー情報は無視されます。ソース矩形が他のタイプのドロアブルであれば、ルーチン内で指定されたビットプレーンはペイント型データであるかのように処理され、コピーに使用されます。この場合、ビットプレーンはビットセットを 1 つだけ持たなければなりません。
構文と引数を次に示します。
void XSolarisOvlCopyPaintType(Display *display, Drawable src, Drawable dst, GC gc, int src_x, int src_y, unsigned int width, unsigned int height, int dest_x, int dest_y, unsigned long action, unsigned long plane)
display |
X サーバーへの接続を指定する。 |
src |
ペイント型属性に関する情報を取り出すソースのドロアブル (Drawable) を指定する。 |
dst |
宛先のドロアブルを指定する。 |
gc |
GCを指定する。 |
src_x, src_y |
ソース矩形の左上隅の xy 座標をソースドロアブルの原点に対する相対座標で指定する。 |
width, height |
ソースおよび宛先の矩形の幅と高さを指定する。 |
dest_x, dest_y |
宛先矩形の左上隅の xy 座標を宛先ドロアブルの原点に対する相対座標で指定する。 |
action |
コピーするペイント型データを指定する。指定できる値は、XSolarisOvlCopyOpaque、XSolarisOvlCopyTransparent、または XSolarisOvlCopyAll のいずれか。 |
plane |
ソースが透明オーバーレイでないときにペイント型情報として使用する src ドロアブルのビットプレーンを指定する。 |
src と dst は同じスクリーンを持たなければなりません。そうしないと、BadMatch エラーが発生します。
表 6-4に、src と dst の組み合わせとその動作を示します。表の左側は src の組み合わせ、表の上側は dst の組み合わせを表します。A1〜A4 の各動作については、表に続いて説明します。
表 6-4 XSolarisOvlCopyPaintType のソース/宛先の組み合わせと動作
ソース/宛先 |
オーバーレイ |
ドロアブル |
---|---|---|
オーバーレイ |
A1 |
A2 |
ドロアブル |
A3 |
A4 |
A1 - ソースオーバーレイの不透明ピクセルに対応する宛先ピクセルは、GC の塗りつぶし属性で指定された不透明カラーで描画されます。ソースオーバーレイの透明ピクセルに対応する宛先ピクセルは、透明なペイントで描画されます。
A2 - ソースオーバーレイの不透明ピクセルに対応する宛先ピクセルは、GC の塗りつぶし属性に従って描画されます。ソースオーバーレイの透明ピクセルに対応する宛先ピクセルは、GC の同じ塗りつぶし属性に従って描画されますが、前景と背景のピクセルが交換されます。
A3 - 宛先オーバーレイのピクセルは、ソースドロアブルの plane のビット値に応じて (上記の A1 と同様に) 不透明ペイントまたは透明ペイントで描画されます。ソースの 1 というビット値は不透明ピクセルとして取り扱われ、0 というビット値は透明ピクセルとして取り扱われます。
A4 - 宛先ドロアブルのピクセルは、ソースドロアブルの plane のビット値に応じて (上記の A2 と同様に) 描画されます。ソースのビットプレーンの 1 というビット値は不透明ピクセルとして取り扱われ、0 というビット値は透明ピクセルとして取り扱われます。
action 引数は、不透明ペイント (XSolarisOvlCopyOpaque) 、透明ペイント (XSolarisOvlCopyTransparent) 、それら両方 (XSolarisOvlCopyAll) のいずれをコピー対象とするかを指定します。これによって、クライアントは不透明ペイントまたは透明ペイントを累積することができます。
ソース矩形の一部が、隠されたりソースドロアブルの境界外部にある場合、サーバーは XCopyArea と同じセマンティクスを使用して Expose イベントを生成します。
このルーチンで使用される GC 構成要素は、function、plane-mask、fill-style、subwindow-mode、graphics-exposures、clip-x-origin、clip-y-origin、clip-mask です。また、GC モードに依存する構成要素として、foreground、background、tile、stipple、tile-stipple-x-origin、tile-stipple-y-origin が使用される場合もあります。
このルーチンで発生する可能性のあるエラーは、BadDrawable、BadGC、BadMatch、BadValue です。