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;
コピー元の長方形領域が他のウィンドウに隠されていて、その部分がバッキン グストアに保持されていない場合や、コピー元のドロウアブルの境界の外側の 部分が指定された場合には、領域間でのコピーは行われない。 その代わりに、その部分に対応するコピー先領域で、可視状態であったりバッ キングストアに保存されているもの全ては以下に示すようになる。 コピー先の領域が None でない背景色を持つウィンドウである場合、コピー先の対応する領域は背景色 で塗りつぶされる(プレーンマスクは全て1で、 GXcopy function が使われる)。 塗りつぶしや、コピー先領域がウィンドウかピックスマップであるかどうかに は関係なく、graphics-exposures が True の時には、対応するコピー先領域に対する GraphicsExpose イベントが生成される。 graphics-exposures は True であるが、 GraphicsExpose イベントが全く生成されない場合には、 NoExpose イベントが生成される。 新規作成した GC においては、graphics-exposures のデフォルトの値は True である点に注意せよ。
この関数は以下の GC コンポーネントを使用する。 function, plane-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 を起こすことがある。