XCopyArea(3X11)

名前
XCopyArea, 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
    高さと幅を指定する。 これはコピー元とコピー先両方の長方形の大きさである。

説明
関数 は、指定したコピー元の長方形をコピー先の長方形にコピーする。 2つのドロウアブルは同じルートウィンドウと深さを持っていなければならな い。そうでない場合には、エラー となる。

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

この関数は以下の GC コンポーネントを使用する: function, plane-mask, subwindow-mode, graphics-exposures, clip-x-origin, clip-y-origin, clip-mask。

はエラー を起こすことがある。

関数 は、指定したコピー元の長方形領域の1つのビットプレーンを用いて、指定し たコピー先の長方形領域を書き換える。 コピー元の領域は、指定した GC に結びつけられている。 2つのドロウアブルのルートウィンドウは同じでなければならないが、深さが 同じである必要はない。 2つのドロウアブルのルートウィンドウが異なる場合は、エラー となる。 plane ビットのうち1つだけを1に設定していない場合や、plane の値が %2 sup n% 以上の場合(n はコピー元の深さ)には、エラー となる。

実際には、 はコピー先領域と同じ深さで、コピー元領域で指定したサイズのピックスマッ プを作る。 そして、GC内の前景色/背景色のピクセル(コピー元のビットプレーンで1の部分 は前景色、0の部分は背景色)を用いて、 プロトコルリクエストと同等のリクエストが実行される。ウィンドウの露出に ついては全く同じである。 これは、指定したコピー元領域のビットプレーンを fille-style が のスティプルを使って、コピー先の長方形領域を塗りつぶしたと考えることも できる。

この関数は以下の GC コンポーネントを使用する: function, plane-mask, foreground, background, subwindow-mode, graphics-exposures, clip-x-origin, clip-y-origin, clip-mask。

はエラー を起こすことがある。

返り値

引き数 Drawable の値が、定義されている Window や Pixmap を指していない。

引き数 GContext の値が、定義されている GContext を指していない。

のウィンドウを Drawable として使用した。

引き数や引き数の組の型や範囲は正しい、そのリクエストが要求する
    他の条件を満たしていなかった。

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

関連項目
XClearArea(3X11)
Xlib - C Language X Interface