XSetClipRectangles(3) GC 簡易関数

Other Alias

XSetClipOrigin, XSetClipMask

書式

XSetClipOrigin(display, gc, clip_x_origin, clip_y_origin)

      Display *display;

      GC gc;

      int clip_x_originclip_y_origin;

XSetClipMask(display, gc, pixmap)

      Display *display;

      GC gc;

      Pixmap pixmap;

XSetClipRectangles(display, gc, clip_x_origin, clip_y_origin, rectangles, n, ordering)

      Display *display;

      GC gc;

      int clip_x_originclip_y_origin;

      XRectangle rectangles[];

      int n;

      int ordering;

引き数

display
X サーバへの接続を指定。
clip_x_origin

clip_y_origin
クリップマスク原点の x, y 座標を指定。
gc
GC を指定。
n
長方形の数を指定。
ordering
長方形の順序の関係を指定。 Unsorted, YSorted, YXSorted, YXBanded. のいずれかを指定する。
pixmap
ピックスマップか None を指定する。
rectangles
クリップマスクを指定する長方形の配列を指定。

説明

関数 XSetClipOrigin は指定した GC にクリップの原点を指定する。 クリップマスクの原点はグラフィックスリクエストで指定された描画対象のド ロウアブルに対する相対座標として解釈される。

XSetClipOrigin はエラー BadAlloc, BadGC を起こすことがある。

関数 XSetClipMask は、指定したGC のクリップマスクを指定したピックスマップにセットする。 クリップマスクに None がセットされている場合、ピクセルは常に描画される(クリップの頂点には無 関係である)。

XSetClipMask はエラー BadAlloc, BadGC, BadMatch, BadValue を起こすことがある。

関数 XSetClipRectangles は指定した GC のクリップマスクを指定した長方形のリストに変更し、クリッ プの原点をセットする。 出力はリスト中の長方形に含まれる部分にクリップされる。 クリップの原点はグラフィックスリクエストで指定される任意の描画対象ドロ ウアブルの原点に対する相対座標として解釈される。 長方形の座標はクリップの原点に対する相対座標として解釈される。 長方形は干渉してはならない。そうでなければ、グラフィックスリクエストの 結果は未定義である。 長方形のリストは空でも良いが、この場合は実際には出力が無効になる。 これは XCreateGC, XChangeGC, XSetClipMask のクリップマスクでは、 None を指定することと反対の意味である。

クライアントが分かっていれば、長方形の順序関係は引き数 ordering で指定す ることができる。 これにより、サーバによる操作が速くなることがある。 間違った順序を指定した場合、X サーバはエラー BadMatch を起こすこともあるが、サーバの実装としてエラーを起こすことが必要なわけ ではない。 エラーが起きなかった場合、グラフィックス操作の結果は未定義である。 Unsorted は長方形の順序が任意であることを示す。 YSorted は長方形の順序は、長方形の原点の Y 座標について昇順(同一Y座標も許す)で あることを示す。 YXSortedYSorted の順序に加え、原点のY座標が同じ長方形は全て原点のX座標について昇順(同 一X座標も許す)に並ぶ制約を追加したものである。 YXBandedYXSorted に次の制約を加えたものである。 その制約とは、全ての可能なYスキャンラインに対して、そのスキャンライン を含む長方形全ては同じY座標とY方向の大きさを持つことである。

XSetClipRectangles はエラー BadAlloc, BadGC, BadMatch, BadValue を起こすことがある。

返り値

BadAlloc
要求されたリソースやサーバメモリの割り当てにサーバが失敗した。
BadGC
引き数 GContext の値が、定義されている GContext を指していない。
BadMatch
引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する 他の条件に適合できなかった。
BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。