Other Alias
XCopyPlane書式
XCopyArea(display, src, dest, gc, src_x, src_y, width, height, dest_x, dest_y)Display *display;
Drawable src, dest;
GC gc;
int src_x, src_y;
unsigned int width, height;
int dest_x, dest_y;
XCopyPlane(display, src, dest, gc, src_x, src_y, width, height, dest_x, dest_y, plane)
Display *display;
Drawable src, dest;
GC gc;
int src_x, src_y;
unsigned int width, height;
int dest_x, dest_y;
unsigned long plane;
引き数
- dest_x
-
- dest_y
- コピー先の長方形の左上隅の x, y 座標を指定する。 この座標は、コピー先の長方形の原点に対する相対座標で指定する。
- display
- X サーバへの接続を指定する。
- gc
- GC を指定する。
- plane
- ビットプレーンを指定する。 ひとつのビットだけを1に設定しなければならない。
- src
-
- dest
- コピー元とコピー先の長方形を指定する。
- src_x
-
- src_y
- コピー元の長方形の左上隅の x, y 座標を指定する。 この座標は、コピー元の長方形の原点に対する相対座標で指定する。
- width
-
- height
- 高さと幅を指定する。 これはコピー元とコピー先両方の長方形の大きさである。
説明
関数 XCopyArea は、指定したコピー元の長方形をコピー先の長方形にコピーする。 2つのドロウアブルは同じルートウィンドウと深さを持っていなければならな い。そうでない場合には、エラー BadMatch となる。コピー元の長方形領域が他のウィンドウに隠されていて、その部分がバッキン グストアに保持されていない場合や、コピー元のドロウアブルの境界の外側の 部分が指定された場合には、領域間でのコピーは行われない。 その代わりに、その部分に対応するコピー先領域で、可視状態であったりバッ キングストアに保存されているもの全ては以下に示すようになる。 コピー先の領域が None でない背景色を持つウィンドウである場合、コピー先の対応する領域は背景色 で塗りつぶされる(プレーンマスクは全て1で、 GXcopy function が使われる)。 塗りつぶしや、コピー先領域がウィンドウかピックスマップであるかどうかに は関係なく、graphics-exposures が True の時には、対応するコピー先領域に対する GraphicsExpose イベントが生成される。 graphics-exposures は True であるが、 GraphicsExpose イベントが全く生成されない場合には、 NoExpose イベントが生成される。 新規作成した GC においては、graphics-exposures のデフォルトの値は True である点に注意すること。
この関数は以下の GC コンポーネントを使用する: function, plane-mask, subwindow-mode, graphics-exposures, clip-x-origin, clip-y-origin, clip-mask。
XCopyArea はエラー BadDrawable, BadGC, BadMatch を起こすことがある。
関数 XCopyPlane は、指定したコピー元の長方形領域の1つのビットプレーンを用いて、指定し たコピー先の長方形領域を書き換える。 コピー元の領域は、指定した GC に結びつけられている。 2つのドロウアブルのルートウィンドウは同じでなければならないが、深さが 同じである必要はない。 2つのドロウアブルのルートウィンドウが異なる場合は、エラー BadMatch となる。 plane ビットのうち1つだけを1に設定していない場合や、plane の値が %2 sup n% 以上の場合(n はコピー元の深さ)には、エラー BadValue となる。
実際には、 XCopyPlane はコピー先領域と同じ深さで、コピー元領域で指定したサイズのピックスマッ プを作る。 そして、GC内の前景色/背景色のピクセル(コピー元のビットプレーンで1の部分 は前景色、0の部分は背景色)を用いて、 CopyArea プロトコルリクエストと同等のリクエストが実行される。ウィンドウの露出に ついては全く同じである。 これは、指定したコピー元領域のビットプレーンを fille-style が FillOpaqueStippled のスティプルを使って、コピー先の長方形領域を塗りつぶしたと考えることも できる。
この関数は以下の GC コンポーネントを使用する: function, plane-mask, foreground, background, subwindow-mode, graphics-exposures, clip-x-origin, clip-y-origin, clip-mask。
XCopyPlane はエラー BadDrawable, BadGC, BadMatch, BadValue を起こすことがある。
返り値
- BadDrawable
- 引き数 Drawable の値が、定義されている Window や Pixmap を指していない。
- BadGC
- 引き数 GContext の値が、定義されている GContext を指していない。
- BadMatch
- InputOnly のウィンドウを Drawable として使用した。
- BadMatch
- 引き数や引き数の組の型や範囲は正しい、そのリクエストが要求する 他の条件を満たしていなかった。
- BadValue
- 指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。