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_origin, clip_y_origin;
XRectangle rectangles[];
int n;
int ordering;
XSetClipOrigin はエラー BadAlloc, BadGC を起こすことがある。
関数 XSetClipMask は、指定したGC のクリップマスクを指定したピックスマップにセットする。 クリップマスクに None がセットされている場合、ピクセルは常に描画される(クリップの頂点には無 関係である)。
XSetClipMask はエラー BadAlloc, BadGC, BadMatch, BadValue を起こすことがある。
関数 XSetClipRectangles は指定した GC のクリップマスクを指定した長方形のリストに変更し、クリッ プの原点をセットする。 出力はリスト中の長方形に含まれる部分にクリップされる。 クリップの原点はグラフィックスリクエストで指定される任意の描画対象ドロ ウアブルの原点に対する相対座標として解釈される。 長方形の座標はクリップの原点に対する相対座標として解釈される。 長方形は干渉してはならない。そうでなければ、グラフィックスリクエストの 結果は未定義である。 長方形のリストは空でも良いが、この場合は実際には出力が無効になる。 これは XCreateGC, XChangeGC, XSetClipMask のクリップマスクでは、 None を指定することと反対の意味である。
クライアントが分かっていれば、長方形の順序関係は引き数 ordering で指定す ることができる。 これにより、サーバによる操作が速くなることがある。 間違った順序を指定した場合、X サーバはエラー BadMatch を起こすこともあるが、サーバの実装としてエラーを起こすことが必要なわけ ではない。 エラーが起きなかった場合、グラフィックス操作の結果は未定義である。 Unsorted は長方形の順序が任意であることを示す。 YSorted は長方形の順序は、長方形の原点の Y 座標について昇順(同一Y座標も許す)で あることを示す。 YXSorted は YSorted の順序に加え、原点のY座標が同じ長方形は全て原点のX座標について昇順(同 一X座標も許す)に並ぶ制約を追加したものである。 YXBanded は YXSorted に次の制約を加えたものである。 その制約とは、全ての可能なYスキャンラインに対して、そのスキャンライン を含む長方形全ては同じY座標とY方向の大きさを持つことである。
XSetClipRectangles はエラー BadAlloc, BadGC, BadMatch, BadValue を起こすことがある。