Solaris X Window System 開発ガイド

ソースエリアペイント型を使って描画する

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

コピーするペイント型データを指定する。指定できる値は、XSolarisOvlCopyOpaqueXSolarisOvlCopyTransparent、または XSolarisOvlCopyAll のいずれか。

plane

ソースが透明オーバーレイでないときにペイント型情報として使用する src ドロアブルのビットプレーンを指定する。

srcdst は同じスクリーンを持たなければなりません。そうしないと、BadMatch エラーが発生します。

表 6–4に、srcdst の組み合わせとその動作を示します。表の左側は src の組み合わせ、表の上側は dst の組み合わせを表します。A1〜A4 の各動作については、表に続いて説明します。

表 6–4 XSolarisOvlCopyPaintType のソース/宛先の組み合わせと動作

ソース/宛先 

オーバーレイ 

ドロアブル 

オーバーレイ 

A1 

A2 

ドロアブル 

A3 

A4 

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 が使用される場合もあります。

このルーチンで発生する可能性のあるエラーは、 BadDrawableBadGCBadMatchBadValue です。