XCreateGC | GC 作成 |
---|---|
XCopyGC | GC をコピー |
XChangeGC | GC の値を変更 |
XGetGCValues | GC の値を取得 |
XFreeGC | GC を削除 |
XGContextFromGC | GC から GContext ID を取得 |
XFlushGC | GC をフラッシュ |
値の変更 | |
XSetState | 前景色、背景色、function、plane_mask を変更 |
XSetForeground | 前景色を変更 |
XSetBackground | 背景色を変更 |
XSetFunction | function を変更 |
XSetPlaneMask | plane_mask を変更 |
XSetLineAttributes | 線の属性を変更 |
XSetDashes | ダッシュ線をセット |
XSetFillStyle | fill_style をセット |
XSetFillRule | fill_rule をセット |
XQueryBestSize | 最適なサイズを取得 |
XQueryBestTile | 最適なタイルサイズを取得 |
XQueryBestStipple | 最適な Stipple サイズを取得 |
XSetTile | タイルをセット |
XSetStipple | Stipple をセット |
XSetTSOrigin | ts_{x,y}_origin をセット |
XSetFont | フォントをセット |
XSetClipOrigin | クリップ原点をセット |
XSetClipMask | クリップマスクをセット |
XSetClipRectangles | クリップの矩形をセット |
XSetArcMode | arc_mode をセット |
XSetSubwindowMode | subwindow_mode をセット |
XSetGraphicsExposures | graphics_exposures をセット |
Region | |
XCreateRegion | 空の Region を作成 |
XDestroyRegion | Region を破棄 |
XPolygonRegion | 多角形領域の Region を作成 |
XSetRegion | Region をクリップマスクとして GC にセット |
XOffsetRegion | Region の位置を相対移動 |
XShrinkRegion | Region の領域を拡張/縮小 |
XClipBox | Region を囲む最小の四角形を返す |
XIntersectRegion | 2つの Region の交差する領域を返す |
XUnionRegion | 2つの Region を結合する |
XUnionRectWithRegion | Region と矩形を結合する |
XXorRegion | 2つの Region を XOR した領域を返す |
XEmptyRegion | Region が空か |
XEqualRegion | 同じ Region か |
XPointInRegion | 点か Region の領域に含まれるか |
XRectInRegion | Region が矩形の範囲内にあるか |
GC XCreateGC(Display *display, Drawable d, unsigned long valuemask, XGCValues *values);
グラフィックスコンテキストを作成し、GC を返します。
GC は、指定されたドローアブルと同じルートと深さを持つ、任意の描画先ドローアブルで使用できます。
他のドローアブルと一緒に使用すると、BadMatch エラーが発生します。
GC は、指定されたドローアブルと同じルートと深さを持つ、任意の描画先ドローアブルで使用できます。
他のドローアブルと一緒に使用すると、BadMatch エラーが発生します。
XCopyGC(Display *display, GC src, GC dest, unsigned long valuemask);
GC をコピーする。
src と dest は同じルートと深さを持たなければなりません。そうしないと、BadMatch エラーが発生します。
valuemask は、XCreateGC と同様に、コピーする値のマスクを指定します。
src と dest は同じルートと深さを持たなければなりません。そうしないと、BadMatch エラーが発生します。
valuemask は、XCreateGC と同様に、コピーする値のマスクを指定します。
XChangeGC(Display *display, GC gc, unsigned long valuemask, XGCValues *values);
指定された GC の valuemask で指定されたコンポーネントを変更します。
clip_mask を変更すると、コンテキスト上の以前の XSetClipRectangles リクエストが上書きされます。
dash_offset または dashes を変更すると、コンテキスト上の以前の XSetDashes リクエストが上書きされます。
コンポーネントが検証および変更される順序は、サーバーによって異なります。
エラーが生成された場合、コンポーネントのサブセットが変更されている可能性があります。
clip_mask を変更すると、コンテキスト上の以前の XSetClipRectangles リクエストが上書きされます。
dash_offset または dashes を変更すると、コンテキスト上の以前の XSetDashes リクエストが上書きされます。
コンポーネントが検証および変更される順序は、サーバーによって異なります。
エラーが生成された場合、コンポーネントのサブセットが変更されている可能性があります。
Status XGetGCValues(Display *display, GC gc, unsigned long valuemask, XGCValues *values_return);
指定された GC の valuemask で指定されたコンポーネントを返します。
clip_mask と dashes (GCClipMask と GCDashList) は要求できないことに注意してください。
また、コンポーネントがクライアントによって明示的に設定されていない場合、GCFont、GCtile、GCStipple に対して、無効なリソース ID (3 つの最上位ビットのうち 1 つ以上が 1 に設定されたもの) が返されることにも注意してください。
clip_mask と dashes (GCClipMask と GCDashList) は要求できないことに注意してください。
また、コンポーネントがクライアントによって明示的に設定されていない場合、GCFont、GCtile、GCStipple に対して、無効なリソース ID (3 つの最上位ビットのうち 1 つ以上が 1 に設定されたもの) が返されることにも注意してください。
戻り値
成功時 0 以外。それ以外は 0
void XFlushGC(Display *display, GC gc);
GC の値の変更を強制的に送信する。
Xlib は通常、GC を使ったグラフィックス関数が実際に呼び出されるまで、GC の値の変更はサーバーへ送信されません。
これにより、値の変更を1つのリクエストでまとめて送ることが出来ます。
ただし、状況によっては、クライアントがサーバーへの送信を、明示的に強制する必要がある場合があります。
例としては、拡張インターフェイスがどの GC が使用されるかを知ることができないような方法で、プロトコル拡張が GC を間接的に使用する場合が考えられます。
Xlib は通常、GC を使ったグラフィックス関数が実際に呼び出されるまで、GC の値の変更はサーバーへ送信されません。
これにより、値の変更を1つのリクエストでまとめて送ることが出来ます。
ただし、状況によっては、クライアントがサーバーへの送信を、明示的に強制する必要がある場合があります。
例としては、拡張インターフェイスがどの GC が使用されるかを知ることができないような方法で、プロトコル拡張が GC を間接的に使用する場合が考えられます。
値の変更
XSetState(Display *display, GC gc, unsigned long foreground, unsigned long background, int function, unsigned long plane_mask);
前景色、背景色、function、plane_mask を変更
XSetLineAttributes(Display *display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style);
線の属性を変更
XSetDashes(Display *display, GC gc, int dash_offset, char dash_list[], int n);
指定された GC の破線スタイルの dash_offset とダッシュリスト属性を設定します。
指定されたダッシュリストには、少なくとも 1 つの要素がなければなりません。そうでない場合は、BadValue エラーが発生します。
dump_list の最初の要素と交互の要素 (2 番目、4 番目など) は偶数のダッシュであり、その他は奇数のダッシュです。
各要素はダッシュの長さをピクセル単位で指定します。すべての要素はゼロ以外でなければなりません。そうでない場合は、BadValue エラーが発生します。
奇数長のリストを指定することは、同じリストをそれ自体と連結して偶数長のリストを生成するように指定することと同じです。
dash_offset はパターンのフェーズを定義し、単一のグラフィックスリクエストでパターンが実際に開始されるべきダッシュリスト内のピクセル数を指定します。
ダッシュは結合スタイルと組み合わされたパス要素を通じて連続しますが、結合された線の各シーケンス間のダッシュオフセットにリセットされます。
ダッシュの測定単位は、通常の座標系と同じです。
理想的には、破線の長さは線の傾斜に沿って測定されますが、実装では水平線と垂直線についてのみこの理想に一致する必要があります。
理想的な意味論が成り立たないため、長さを線の長軸に沿って測定することが提案されます。
長軸は、x 軸から -45 〜 +45 度、または 135 〜 225 度の角度で描かれた線の x 軸として定義されます。他のすべての線では、主軸は y 軸です。
指定されたダッシュリストには、少なくとも 1 つの要素がなければなりません。そうでない場合は、BadValue エラーが発生します。
dump_list の最初の要素と交互の要素 (2 番目、4 番目など) は偶数のダッシュであり、その他は奇数のダッシュです。
各要素はダッシュの長さをピクセル単位で指定します。すべての要素はゼロ以外でなければなりません。そうでない場合は、BadValue エラーが発生します。
奇数長のリストを指定することは、同じリストをそれ自体と連結して偶数長のリストを生成するように指定することと同じです。
dash_offset はパターンのフェーズを定義し、単一のグラフィックスリクエストでパターンが実際に開始されるべきダッシュリスト内のピクセル数を指定します。
ダッシュは結合スタイルと組み合わされたパス要素を通じて連続しますが、結合された線の各シーケンス間のダッシュオフセットにリセットされます。
ダッシュの測定単位は、通常の座標系と同じです。
理想的には、破線の長さは線の傾斜に沿って測定されますが、実装では水平線と垂直線についてのみこの理想に一致する必要があります。
理想的な意味論が成り立たないため、長さを線の長軸に沿って測定することが提案されます。
長軸は、x 軸から -45 〜 +45 度、または 135 〜 225 度の角度で描かれた線の x 軸として定義されます。他のすべての線では、主軸は y 軸です。
Status XQueryBestSize(Display *display, int class, Drawable which_screen, unsigned int width, unsigned int height, unsigned int *width_return, unsigned int *height_return);
最適なサイズ、または指定されたサイズに最も近いサイズを返します。
class
CursorShape : which_screen で指定されたスクリーンに完全に表示できる最大サイズ。
TileShape : 最も速くタイリングできるサイズ。
StippleShape : 最も速く点描できるサイズ。
CursorShape : ドローアブルは目的のスクリーンを示します。
TileShape と StippleShape は、which_screen はスクリーンと、場合によってはウィンドウクラスと深さを示します。
InputOnly ウィンドウを TileShape または StippleShape のドローアブルとして使用することはできません。使用しないと、BadMatch エラーが発生します。
TileShape : 最も速くタイリングできるサイズ。
StippleShape : 最も速く点描できるサイズ。
CursorShape : ドローアブルは目的のスクリーンを示します。
TileShape と StippleShape は、which_screen はスクリーンと、場合によってはウィンドウクラスと深さを示します。
InputOnly ウィンドウを TileShape または StippleShape のドローアブルとして使用することはできません。使用しないと、BadMatch エラーが発生します。
Status XQueryBestTile(Display *display, Drawable which_screen, unsigned int width, unsigned int height, unsigned int *width_return, unsigned int *height_return);
最適なサイズまたは最も近いサイズ、つまり、which_screen で指定されたスクリーン上で最も速く並べることができるサイズを返します。
ドローアブルはスクリーンを示し、場合によってはウィンドウのクラスと深さを示します。
InputOnly ウィンドウがドローアブルとして使用されている場合、BadMatch エラーが発生します。
ドローアブルはスクリーンを示し、場合によってはウィンドウのクラスと深さを示します。
InputOnly ウィンドウがドローアブルとして使用されている場合、BadMatch エラーが発生します。
Status XQueryBestStipple(Display *display, Drawable which_screen, unsigned int width, unsigned int height, unsigned int *width_return, unsigned int *height_return);
最適な Stipple サイズを取得
XSetClipRectangles(Display *display, GC gc, int clip_x_origin, int clip_y_origin, XRectangle rectangles[], int n, int ordering);
指定された GC 内のクリップマスクを、指定された四角形のリストに変更し、クリップの原点を設定します。
出力は四角形内に収まるようにクリップされます。
クリップ原点は、グラフィックスリクエストで指定された描画先ドローアブルの原点を基準として解釈されます。
長方形の座標は、クリップの原点を基準として解釈されます。
四角形は交差しないようにする必要があります。交差する場合、グラフィックスの結果は未定義になります。
四角形のリストが空になる可能性があることに注意してください。これにより、出力が事実上無効になります。
これは、XCreateGC、XChangeGC、XSetClipMask でクリップマスクとして None を渡すことの逆です。
出力は四角形内に収まるようにクリップされます。
クリップ原点は、グラフィックスリクエストで指定された描画先ドローアブルの原点を基準として解釈されます。
長方形の座標は、クリップの原点を基準として解釈されます。
四角形は交差しないようにする必要があります。交差する場合、グラフィックスの結果は未定義になります。
四角形のリストが空になる可能性があることに注意してください。これにより、出力が事実上無効になります。
これは、XCreateGC、XChangeGC、XSetClipMask でクリップマスクとして None を渡すことの逆です。
ordering
四角形の順序関係。
これにより、サーバーの動作が高速化される可能性があります。
間違った順序が指定された場合、X サーバーは BadMatch エラーを生成する可能性がありますが、そうする必要はありません。エラーが生成されない場合、グラフィックスの結果は未定義です。
UnSorted : 四角形が任意の順序である。
YSorted : 長方形が Y 原点で減少していないことを意味します。
YXSorted : Y 原点が等しいすべての長方形が X 原点で減少しないという点で、YSorted の順序をさらに制約します。
YXBanded : 考えられるすべての Y 走査線について、その走査線を含むすべての四角形が同一の Y 原点と Y 範囲を持つことを要求することにより、YXSorted をさらに制約します。
これにより、サーバーの動作が高速化される可能性があります。
間違った順序が指定された場合、X サーバーは BadMatch エラーを生成する可能性がありますが、そうする必要はありません。エラーが生成されない場合、グラフィックスの結果は未定義です。
UnSorted : 四角形が任意の順序である。
YSorted : 長方形が Y 原点で減少していないことを意味します。
YXSorted : Y 原点が等しいすべての長方形が X 原点で減少しないという点で、YSorted の順序をさらに制約します。
YXBanded : 考えられるすべての Y 走査線について、その走査線を含むすべての四角形が同一の Y 原点と Y 範囲を持つことを要求することにより、YXSorted をさらに制約します。
Region
Region XPolygonRegion(XPoint points[], int n, int fill_rule);
多角形領域の Region を作成
points
多角形の各点
n
点の数
full_rule
EvenOddRule, WindingRule
XSetRegion(Display *display, GC gc, Region r);
GC 内のクリップマスクを指定された Region に設定します。
領域は、ドローアブルの原点を基準にして指定されます。
結果として得られる GC クリップの起点は実装に依存します。
GC に設定した後、その Region を破棄できます。
領域は、ドローアブルの原点を基準にして指定されます。
結果として得られる GC クリップの起点は実装に依存します。
GC に設定した後、その Region を破棄できます。