Scroll to navigation

() ()

̾Á°

XCreateGC, XCopyGC, XChangeGC, XGetGCValues, XFreeGC, XGContextFromGC, XGCValues - ¥°¥é¥Õ¥£¥Ã¥¯¥¹¥³¥ó¥Æ¥¯¥¹¥È¤ÎÀ¸À®¡¦²òÊü´Ø¿ô¤È¡¢¥°¥é¥Õ¥£¥Ã¥¯¥¹¥³¥ó¥Æ¥¯¥¹¥È¹½Â¤ÂÎ

½ñ¼°

GC XCreateGC(display, d, valuemask, values)
Display *display;
Drawable d;
unsigned long valuemask;
XGCValues *values;

XCopyGC(display, src, valuemask, dest)
Display *display;
GC src, dest;
unsigned long valuemask;

XChangeGC(display, gc, valuemask, values)
Display *display;
GC gc;
unsigned long valuemask;
XGCValues *values;

Status XGetGCValues(display, gc, valuemask, values_return)
Display *display;
GC gc;
unsigned long valuemask;
XGCValues *values_return;

XFreeGC(display, gc)
Display *display;
GC gc;

GContext XGContextFromGC(gc)
GC gc;

°ú¤­¿ô

¥É¥í¥¦¥¢¥Ö¥ë¤ò»ØÄꤹ¤ë¡£
ÂоݤȤʤë GC ¤ò»ØÄꤹ¤ë¡£
X ¥µ¡¼¥Ð¤Ø¤ÎÀܳ¤ò»ØÄꤹ¤ë¡£
GC ¤ò»ØÄꤹ¤ë¡£
¸µ¤Î GC ¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ØÄꤹ¤ë¡£
GC ¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¤¦¤Á¡¢ÀßÄꡦ¥³¥Ô¡¼¡¦Êѹ¹¤µ¤ì¤ë¤â¤Î¡¢¤¢¤ë¤¤¤ÏÃͤ¬ ÊÖ¤µ¤ì¤ë¤â¤Î¤ò»ØÄꤹ¤ë¡£ ¤³¤Î°ú¤­¿ô¤Ï¡¢GC ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÍ­¸ú¤Ê¥Þ¥¹¥¯¥Ó¥Ã¥È¤Î 0 ¸Ä°Ê¾å¤ËÂФ·¤Æ¡¢ ¥Ó¥Ã¥È¤´¤È¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£
°ú¤­¿ô valuemask ¤Ç»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÃͤò»ØÄꤹ¤ë¡£
»ØÄꤷ¤¿ XGCValues ¹½Â¤ÂÎÆâ¤Î GC Ãͤ¬ÊÖ¤µ¤ì¤ë¡£

ÀâÌÀ

´Ø¿ô XCreateGC ¤Ï¥°¥é¥Õ¥£¥Ã¥¯¥¹¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤·¤Æ¡¢GC ¤òÊÖ¤¹¡£ À¸À®¤µ¤ì¤¿ GC ¤Ï»ØÄꤷ¤¿¥É¥í¥¦¥¢¥Ö¥ë¤ÈƱ¤¸¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¡¢¿¼¤µ¤ò»ý¤Ä Ǥ°Õ¤ÎÉÁ²èÂÐ¾Ý¤Î¥É¥í¥¦¥¢¥Ö¥ë¤È¶¦¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¾¤Î¥É¥í¥¦¥¢¥Ö¥ë¤È¶¦¤Ë»È¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼ BadMatch ¤È¤Ê¤ë¡£

XCreateGC ¤Ï¥¨¥é¡¼ BadAlloc, BadDrawable, BadFont, BadMatch, BadPixmap, BadValue ¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£

´Ø¿ô XCopyGC ¤Ï¥³¥Ô¡¼¸µ¤Î GC ¤Î»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥³¥Ô¡¼Àè¤Î GC ¤Ë¥³¥Ô¡¼¤¹¤ë¡£ ¥³¥Ô¡¼¸µ¤È¥³¥Ô¡¼Àè¤Î GC ¤Ï¡¢¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤È¿¼¤µ¤¬Æ±¤¸¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê ¤¤¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥¨¥é¡¼ BadMatch ¤È¤Ê¤ë¡£ valuemask ¤Ï XCreateGC ¤Î¾ì¹ç¤ÈƱ¤¸¤¯¡¢¤É¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥³¥Ô¡¼¤¹¤ë¤«¤ò»ØÄꤹ¤ë¡£

XCopyGC ¤Ï¥¨¥é¡¼ BadAlloc, BadGC, BadMatch ¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£

´Ø¿ô XChangeGC ¤Ï¡¢»ØÄꤷ¤¿GC¤Î valuemask ¤Ç»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÊѹ¹¤¹¤ë¡£ °ú¤­¿ô values ¤Ë¤ÏÀßÄꤹ¤ëÃͤòÍ¿¤¨¤ë¡£ ¤³¤Î´Ø¿ô¤ÎÃͤÈÀ©¸Â¤Ï XCreateGC ¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£ clip-mask ¤ÎÊѹ¹¤Ï¡¢¤½¤Î¥³¥ó¥Æ¥¯¥¹¥È¤ËÂФ¹¤ë°ÊÁ°¤Î XSetClipRectangles ¤ò¾å½ñ¤­¤¹¤ë¡£ dash-offset ¤ä dash-list ¤ÎÊѹ¹¤Ï¡¢¤½¤Î¥³¥ó¥Æ¥¯¥¹¥È¤ËÂФ¹¤ë°ÊÁ°¤Î XSetDashes ¤ò¾å½ñ¤­¤¹¤ë¡£ ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬³Îǧ¡¢Êѹ¹¤µ¤ì¤ë½ç½ø¤Ï¡¢¥µ¡¼¥Ð¤Ë°Í¸¤¹¤ë¡£ ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î°ìÉô¤Ï¤¹¤Ç¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤ë¤«¤â¤· ¤ì¤Ê¤¤¡£

XChangeGC ¤Ï¥¨¥é¡¼ BadAlloc, BadFont, BadGC, BadMatch, BadPixmap, BadValue ¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£

´Ø¿ô XGetGCValues ¤Ï¡¢»ØÄꤷ¤¿ GC ¤Î»ØÄꤷ¤¿ valuemask ¤Ç»ØÄꤵ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÊÖ¤¹¡£ valuemask ¤¬Àµ¤·¤¤ GC ¥Þ¥¹¥¯¥Ó¥Ã¥È¤Î½¸¹ç (GCFunction, GCPlaneMask, GCForeground, GCBackground, GCLineWidth, GCLineStyle, GCCapStyle, GCJoinStyle, GCFillStyle, GCFillRule, GCTile, GCStipple, GCTileStipXOrigin, GCTileStipYOrigin, GCFont, GCSubwindowMode, GCGraphicsExposures, GCClipXOrigin, GCCLipYOrigin, GCDashOffset, GCArcMode) ¤ò´Þ¤ó¤Ç¤ª¤ê¡¢¥¨¥é¡¼¤âµ¯¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ XGetGCValues ¤Ï°ú¤­¿ô values_return ¤ËÍ׵ᤵ¤ì¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÀßÄꤷ¡¢0 ¤Ç¤Ê¤¤ ¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¥¹¥Æ¡¼¥¿¥¹¤È¤·¤Æ 0 ¤òÊÖ¤¹¡£ clip-mask ¤È dash-list(valuemask ¤Ç¤Ï¤½¤ì¤¾¤ì GCClipMask ¤È GCDashList ¥Ó¥Ã¥È)¤òÍ׵᤹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤»¤è¡£ ¤Þ¤¿¡¢¥¯¥é¥¤¥¢¥ó¥È¤¬¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÌÀ¼¨Åª¤ËÀßÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ GCFont, GCTile, GCStipple ¤ËÂФ·¤ÆÉÔÀµ¤Ê¥ê¥½¡¼¥¹ID¤¬ÊÖ¤µ¤ì¤ë(3¤Ä¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤Î¤¦¤Á¤Î1¤Ä°Ê¾å¤¬1 ¤ËÀßÄꤵ¤ì¤ë)ÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£

´Ø¿ô XFreeGC ¤Ï»ØÄꤷ¤¿ GC ¤òÇË´þ¤·¡¢Âбþ¤¹¤ë¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£

XFreeGC ¤Ï¥¨¥é¡¼ BadGC ¤òµ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£

¹½Â¤ÂÎ

XGCValues ¹½Â¤ÂΤÎÆâÍƤò¼¨¤¹¡£

#define GCFunction (1L<<0)
#define GCPlaneMask (1L<<1)
#define GCForeground (1L<<2)
#define GCBackground (1L<<3)
#define GCLineWidth (1L<<4)
#define GCLineStyle (1L<<5)
#define GCCapStyle (1L<<6)
#define GCJoinStyle (1L<<7)
#define GCFillStyle (1L<<8)
#define GCFillRule (1L<<9)
#define GCTile (1L<<10)
#define GCStipple (1L<<11)
#define GCTileStipXOrigin (1L<<12)
#define GCTileStipYOrigin (1L<<13)
#define GCFont (1L<<14)
#define GCSubwindowMode (1L<<15)
#define GCGraphicsExposures (1L<<16)
#define GCClipXOrigin (1L<<17)
#define GCClipYOrigin (1L<<18)
#define GCClipMask (1L<<19)
#define GCDashOffset (1L<<20)
#define GCDashList (1L<<21)
#define GCArcMode (1L<<22)
typedef struct {
	int function;	
	unsigned long plane_mask;	
	unsigned long foreground;	
	unsigned long background;	
	int line_width;	
	int line_style;	
	int cap_style;	
	int join_style;	
	int fill_style;	
	int fill_rule;	
	int arc_mode;	
	Pixmap tile;	
	Pixmap stipple;	
	int ts_x_origin;	
	int ts_y_origin;
	Font font;	
	int subwindow_mode;	
	Bool graphics_exposures;	
	int clip_x_origin;	
	int clip_y_origin;
	Pixmap clip_mask;	
	int dash_offset;	
	char dashes;
} XGCValues;


GC ¤Î function °À­¤Ï¥É¥í¥¦¥¢¥Ö¥ë(ÁàºîÂоÝ)¤Î°ìÉô¤ò¾¤Î¥É¥í¥¦¥¢¥Ö¥ë (Áàºî¸µ)¤Î¥Ó¥Ã¥È¤ò»È¤Ã¤Æ¹¹¿·¤¹¤ë¤È¤­¤ËÍѤ¤¤é¤ì¤ë¡£ GC ¤Î function ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¿·¤·¤¤ÁàºîÂоݤΥӥåȤ¬¡¢Áàºî¸µ¤Î ¥Ó¥Ã¥È¤È¸Å¤¤ÁàºîÂоݤΥӥåȤ«¤é¤É¤Î¤è¤¦¤Ë»»½Ð¤µ¤ì¤ë¤«¤òÄêµÁ¤¹¤ë¡£ GXcopy ¤Ï¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤ÇÆ°ºî¤¹¤ë¤Î¤Ç°ìÈÌŪ¤Ë¤ÏºÇ¤âÊØÍø¤Ç¤¢¤ë¤¬¡¢ÆÃÊÌ¤Ê ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¾¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤â¤¢¤ë¡£ Æäˡ¢¥«¥é¡¼¥Ç¥£¥¹¥×¥ì¥¤¤ÎÆÃÄê¤Î¥×¥ì¡¼¥ó¤ò»È¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤½¤¦ ¤Ç¤¢¤ë¡£ 16 ¤Î GC Áàºî´Ø¿ô¤¬ <X11/X.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

´Ø¿ô ̾Á° ÃÍ Áàºî
GXclear 0x0 0
GXand 0x1 src AND dst
GXandReverse 0x2 src AND NOT dst
GXcopy 0x3 src
GXandInverted 0x4 (NOT src) AND dst
GXnoop 0x5 dst
GXxor 0x6 src XOR dst
GXor 0x7 src OR dst
GXnor 0x8 (NOT src) AND (NOT dst)
GXequiv 0x9 (NOT src) XOR dst
GXinvert 0xa NOT dst
GXorReverse 0xb src OR (NOT dst)
GXcopyInverted 0xc NOT src
GXorInverted 0xd (NOT src) OR dst
GXnand 0xe (NOT src) OR (NOT dst)
GXset 0xf 1

¥°¥é¥Õ¥£¥Ã¥¯¥¹Áàºî¤Î¿¤¯¤Ï¡¢GC ¤Î¥Ô¥¯¥»¥ëÃͤä¥×¥ì¡¼¥ó¤Ë°Í¸¤¹¤ë¡£ ¥×¥ì¡¼¥ó°À­¤Ï long ·¿¤Ç¡¢¥×¥ì¡¼¥ó¤´¤È¤Ë1¥Ó¥Ã¥È¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤ª¤ê¡¢ ÉÁ²èÂоݤΤɤΥץ졼¥ó¤¬Êѹ¹¤µ¤ì¤ë¤«»ØÄꤹ¤ë¡£ ¥â¥Î¥¯¥í¤Î¥Ç¥£¥¹¥×¥ì¥¤¤Ï1¤Ä¤Î¥×¥ì¡¼¥ó¤·¤«»ý¤¿¤º¡¢¥×¥ì¡¼¥ó¥Þ¥¹¥¯¤Î ºÇ²¼°Ì¥Ó¥Ã¥È¤·¤«°ÕÌ£¤ò»ý¤¿¤Ê¤¤¡£ ¥Ç¥£¥¹¥×¥ì¥¤¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î¥×¥ì¡¼¥ó¤¬Áý¤¨¤ë¤Ë½¾¤Ã¤Æ¡¢¥×¥ì¡¼¥ó¥Þ¥¹¥¯¤Î ¤è¤ê¾å°Ì¤Î¥Ó¥Ã¥È¤¬»È¤ï¤ì¤ë¡£

¥°¥é¥Õ¥£¥Ã¥¯¥¹Áàºî¤Ç¤ÏÁàºî¸µ¤ÈÁàºîÂоݤΥԥ¯¥»¥ë¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢ ¥Ô¥¯¥»¥ë¤ÎÂбþ¤¹¤ë³Æ¥Ó¥Ã¥È¤¬¥Ó¥Ã¥È¤´¤È¤Ë±é»»¤µ¤ì¤Æ¡¢·ë²Ì¤¬ÆÀ¤é¤ì¤ë¡£ ¤Ä¤Þ¤ê¡¢³Æ¥×¥ì¡¼¥ó¤Ë¤ª¤¤¤Æ¥Ö¡¼¥ê¥¢¥óÁàºî¤¬¼Â¹Ô¤µ¤ì¤ë¡£ plane_mask ¤ÏÁàºî¤ò¥×¥ì¡¼¥ó¤Î°ìÉôʬ¤ËÀ©¸Â¤¹¤ë¡£ ¥Þ¥¯¥íÄê¿ô AllPlanes ¤ò»È¤¦¤³¤È¤Ç¡¢¥¹¥¯¥ê¡¼¥ó¤ÎÁ´¤Æ¤Î¥×¥ì¡¼¥ó¤òƱ»þ¤Ë»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ·ë²Ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë·×»»¤µ¤ì¤ë¡£

((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))


foreground, background, plane_mask ¤ÎÃͤËÂФ·¤Æ¤Ï¡¢ÈϰϤΥÁ¥§¥Ã¥¯¤Ï¹Ô ¤ï¤ì¤Ê¤¤¡£ ¤³¤ì¤é¤ÎÃͤÏñ¤ËŬÀڤʥӥåȿô¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£ line-width ¤Îñ°Ì¤Ï¥Ô¥¯¥»¥ë¿ô¤Ç¡¢1°Ê¾å(wide line)¤«Æüì¤Ê°ÕÌ£¤ò»ý¤ÄÃÍ 0(thin line)¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£

wide line ¤Ï¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤¬¼¨¤¹µ°ÀפÎÃæ¿´¤ËÉÁ²è¤µ¤ì¤ë¡£ join-style ¤« cap-style ¤ÇÊÌÅӤ˻ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢Ã¼ÅÀ¤¬ [x1, y1], [x2, y2] ¤Ç¤¢¤êÉý w ¤ò»ý¤Ä wide line ¤Î¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã¥¯¥¹¤Ï°Ê²¼¤Î ¼ÂºÂɸ¤ò»ý¤ÄĹÊý·Á¤È¤Ê¤ë¡£

[x1-(w*sn/2), y1+(w*cs/2)], [x1+(w*sn/2), y1-(w*cs/2)],
[x2-(w*sn/2), y2+(w*cs/2)], [x2+(w*sn/2), y2-(w*cs/2)]


¤³¤³¤Ç sn ¤ÏÀþ¤Î³ÑÅ٤Υµ¥¤¥ó¤Ç¤¢¤ê¡¢cs ¤ÏÀþ¤Î³ÑÅ٤Υ³¥µ¥¤¥ó¤Ç¤¢¤ë¡£ ¥Ô¥¯¥»¥ë¤ÏÀþ¤Î°ìÉô¤Ç¤¢¤ê¡¢½¾¤Ã¤Æ¥Ô¥¯¥»¥ë¤ÎÃæ¿´¤¬´°Á´¤Ë¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã ¥¯¥¹(¤³¤ì¤Ï̵¸Â¤ËºÙ¤¤ÊÕ¤ò»ý¤Ä¤È¹Í¤¨¤ë)¤ÎÆâÉô¤Ë¤¢¤ì¤Ð¡¢¤³¤Î¥Ô¥¯¥»¥ë¤ÏÉÁ ²è¤µ¤ì¤ë¡£ ¥Ô¥¯¥»¥ë¤ÎÃæ¿´¤¬¤Á¤ç¤¦¤É¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã¥¯¥¹¤ÎÊդξå¤Ë¤¢¤ë¾ì¹ç¤Ï¡¢¥Ð ¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã¥¯¥¹¤ÎÆâÉô¤¬¥Ô¥¯¥»¥ëÃæ¿´¤Î¤¹¤°±¦(x ¤ÎÁý²ÃÊý¸þ)¤Ë¤¢¤ë»þ ¤Ë¸Â¤ê¡¢¥Ô¥¯¥»¥ë¤¬Àþ¤Î°ìÉô¤È¤Ê¤ë¡£ ¥Ô¥¯¥»¥ë¤ÎÃæ¿´¤¬¿åÊ¿¤ÊÊÕ¾å¤Ë¤¢¤ë¾ì¹ç¤ÏÆÃÊ̤ǡ¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã¥¯¥¹Æâ Éô¤«¶­³¦¤¬Ãæ¿´¤Î¤¹¤°²¼(y ¤ÎÁý²ÃÊý¸þ)¤Ë¤¢¤ê¡¢¥Ð¥¦¥ó¥Ç¥£¥ó¥°¥Ü¥Ã¥¯¥¹ÆâÉô ¤«¶­³¦¤¬Ãæ¿´¤Î¤¹¤°±¦(x ¤ÎÁý²ÃÊý¸þ)¤Ë¤¢¤ë»þ¤Ë¸Â¤ê¡¢¥Ô¥¯¥»¥ë¤¬Àþ¤Î°ìÉô¤È ¤Ê¤ë¡£

line line(line-width ¤¬ 0)¤Ï1¥Ô¥¯¥»¥ëÉý¤ÎÀþ¤Ç¤¢¤ë¡£ÉÁ²è¥¢¥ë¥´¥ê¥º¥à ¤ÏÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢¥Ç¥Ð¥¤¥¹¤Ë°Í¸¤¹¤ë¡£ ¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤ËÂФ·¤Æ¤Ï2¤Ä¤ÎÀ©Ìó¤·¤«¤Ê¤¤¡£

1.
Àþ¤¬¥¯¥ê¥Ã¥×¤µ¤ì¤º¤Ë [x1,y1] ¤«¤é [x2,y2] ¤ØÉÁ²è¤µ¤ì¡¢Â¾¤ÎÀþ¤¬¥¯¥ê¥Ã¥× ¤µ¤ì¤º¤Ë [x1+dx,y1+dy] ¤«¤é [x2+dx,y2+dy] ¤ØÉÁ²è¤µ¤ì¤¿¾ì¹ç¡¢ÅÀ [x+dx, y+dy] ¤¬2ÈÖÌܤÎÀþ¤ÎÉÁ²è¤Ë¤è¤Ã¤ÆÅɤé¤ì¤¿¾ì¹ç¤Ë¸Â¤ê¡¢ÅÀ [x, y] ¤¬ºÇ½é¤Î Àþ¤ÎÉÁ²è¤Ë¤è¤êÅɤé¤ì¤ë¡£
2.
Àþ¤ò¹½À®¤¹¤ëÍ­¸ú¤ÊÅÀ¤Ï¡¢¥¯¥ê¥Ã¥Ô¥ó¥°¤Ë¤è¤ë±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£ ÅÀ¤¬¥¯¥ê¥Ã¥×¤µ¤ì¤¿Àþ¤Ë¤è¤Ã¤ÆÅɤé¤ì¤ë¤Î¤Ï°Ê²¼¤ÎÆó¤Ä¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤ ¤ë¾ì¹ç¤À¤±¤È¤Ê¤ë: (1)¤½¤ÎÅÀ¤¬¥¯¥ê¥Ã¥Ô¥ó¥°Îΰè¤ÎÆâÉô¤Ë¤¢¤ë¡£ (2)Àþ¤¬¥¯¥ê¥Ã¥×¤µ¤ì¤º¤ËÉÁ¤«¤ì¤¿¾ì¹ç¤Ë¡¢¤½¤ÎÅÀ¤ÏÅɤé¤ì¤ë¡£

cap-style ¤ä join-style ¤ò¹Íθ¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¡¢[x1,y1] ¤«¤é [x2,y2] ¤Ë ÉÁ¤«¤ì¤ë wide line ¤È [x2,y2] ¤«¤é [x1,y1] ¤ËÉÁ¤«¤ì¤ë wide line ¤Ï¾ï¤Ë Ʊ¤¸¥Ô¥¯¥»¥ë¤òÉÁ²è¤¹¤ë¡£ ¤³¤ì¤Ï thin line ¤Ç¤âÀ®¤êΩ¤Ä¤³¤È¤¬Ë¾¤Þ¤·¤¤¤¬¡¢É¬¿Ü¤Ç¤Ï¤Ê¤¤¡£ line-width ¤¬ 0 ¤ÎÀþ¤È line-width ¤¬ 1 ¤ÎÀþ¤Î¾ì¹ç¤Ç¤Ï¡¢°Û¤Ê¤ë¥Ô¥¯¥»¥ë ¤¬ÉÁ²è¤µ¤ì¤Æ¤â¤è¤¤¡£ ¤³¤ì¤Ë¤è¤ê¡¢¥Ï¡¼¥É¥¦¥§¥¢¤ÇÄ󶡤µ¤ì¤ëÀþ¤ÎÉÁ²èµ¡Ç½¤¬ÍøÍѤǤ­¡¢Àµ³Î¤Ë»ÅÍÍ ¤¬·è¤á¤é¤ì¤Æ¤¤¤ë wide line ¤è¤ê¤º¤Ã¤È®¤¯¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°ìÈÌŪ¤Ë¤Ï¡¢thin line ¤ÎÉÁ²è¤ÏÉý¤¬1¤Î wide line ¤è¤ê¤âÉÁ²è¤¬¤º¤Ã¤È®¤¤¡£ ¤·¤«¤·¡¢°Û¤Ê¤ëÉÁ²è¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦¤¿¤á¡¢thin line ¤È wide line ¤òº® ºß¤µ¤»¤ë¤È¸«±É¤¨¤¬Îɤ¯¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ ¥Ç¥£¥¹¥×¥ì¥¤Á´ÂΤÇÀµ³Î¤«¤Ä¶Ñ°ì¤Ê·ë²Ì¤¬µá¤á¤é¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È ¤Ï line-width ¤ò 0 ¤Ç¤Ï¤Ê¤¯ 1 ¤È¤¹¤Ù¤­¤Ç¤¢¤ë¡£

line-style ¤ÏÀþ¤Î¤É¤ÎÉôʬ¤¬ÉÁ²è¤µ¤ì¤ë¤«¤òÄêµÁ¤¹¤ë¡£

LineSolid . Àþ¤ÎÁ´¤Æ¤Îµ°Àפ¬ÉÁ²è¤µ¤ì¤ë¡£
LineDoubleDash . . . . . Àþ¤ÎÁ´¤Æ¤Îµ°Àפ¬ÉÁ²è¤µ¤ì¤ë¤¬¡¢¶ö¿ôÈÖÌܤΥÀ¥Ã¥·¥å(û¤¤Àþʬ)¤È´ñ¿ôÈÖÌܤΠ¥À¥Ã¥·¥å¤Ç¤Ï°Û¤Ê¤ë¿§¤ÇÅɤé¤ì¤ë¡£¤Þ¤¿¡¢¶ö¿ôÈÖÌܤȴñ¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤Î·Ñ ¤®ÌÜ¤Ï CapButt ¥¹¥¿¥¤¥ë¤ÇÉÁ²è¤µ¤ì¤ë¡£
LineOnOffDash . . . . . . . ¶ö¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤À¤±¤¬ÉÁ²è¤µ¤ì¡¢Àþ¤ÎÆâÉô¤Ç¤Î³Æ¥À¥Ã¥·¥å¤ÎüÅÀ¤Ç¤Ï cap-style ¤¬Å¬ÍѤµ¤ì¤ë¡£¥¹¥¿¥¤¥ë¤Ï CapNotLast ¤ò½ü¤¤¤Æ¡¢ CapButt ¤È¤·¤Æ°·¤ï¤ì¤ë¡£

cap-style ¤Ïµ°ÀפÎüÅÀ¤¬¤É¤Î¤è¤¦¤ËÉÁ²è¤µ¤ì¤ë¤«ÄêµÁ¤¹¤ë¡£

CapNotLast . . . ¤³¤ì¤Ï CapButt ¤È¤Û¤ÜƱ¤¸¤Ç¤¢¤ë¤¬¡¢line-width ¤¬ 0 ¤Î¾ì¹ç¤Ë¤ÏºÇ¸å¤ÎüÅÀ¤¬ÉÁ²è¤µ¤ì¤Ê ¤¤ÅÀ¤¬°Û¤Ê¤ë¡£
CapButt . . Àþ¤ÏüÅÀ¤ÎÉôʬ¤Ç¡¢Ã¼ÅÀ¤ò±Û¤¨¤Ê¤¤»Í³Ñ·Á(Àþ¤Î¸ûÇۤ˿âľ)¤Ë¤Ê¤ë¡£
CapRound . . Àþ¤ÎüÅÀ¤Ï¡¢Ä¾·Â¤¬ line-width ¤ËÅù¤·¤¯¤ÆüÅÀ¤¬Ãæ¿´¤Ç¤¢¤ëȾ±ß¤È¤Ê¤ë¡£ . . . (line-width ¤¬ 0 ¤Ê¤é¤Ð CapButt ¤ÈÅù²Á¤Ç¤¢¤ë¡£)
CapProjecting . . Àþ¤Ïü¤Ç»Í³Ñ·Á¤Ë¤Ê¤ë¤¬¡¢µ°ÀפÏüÅÀ¤ò±Û¤¨¤Æ¤â line-width ¤ÎȾʬ¤ÎŤµÊ¬Â³¤¯¡£ . . . (line-width ¤¬ 0 ¤Ê¤é¤Ð CapButt ¤ÈÅù²Á¤Ç¤¢¤ë¡£)

join-style ¤Ï wide line ¤Î³Ñ¤¬¤É¤Î¤è¤¦¤ËÉÁ²è¤µ¤ì¤ë¤Î¤«¤òÄêµÁ¤¹¤ë¡£

JoinMiter . 2¤Ä¤ÎÀþ¤Î³°Â¦¤ÎÊÕ¤¬³Ñ¤Ç¸ò¤ï¤ë¤Þ¤Ç¿­¤Ð¤¹¡£ . . . . ¤·¤«¤·¡¢¸ò¤ï¤ë³ÑÅÙ¤¬11Åٰʲ¼¤Ê¤é¤Ð¡¢join-style JoinBevel ¤¬Âå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡£
JoinRound . . ³Ñ¤Ïľ·Â¤¬ line-width ¤Ç¤¢¤ê¡¢Ãæ¿´¤¬¸òÅÀ¤Ç¤¢¤ëÀð·Á¤È¤Ê¤ë¡£
JoinBevel . . . ³Ñ¤Ë¤ª¤±¤ëÀþʬ¤ÎüÅÀ¤Î¥¹¥¿¥¤¥ë¤Ï CapButt ¤Ç¤¢¤ê¡¢¤µ¤é¤Ë¡¢»°³Ñ·Á¤ò¤Ê¤¹ÀÚ¤êÌܤÎÉôʬ¤òÅɤê¤Ä¤Ö¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£

üÅÀ¤¬°ìÃפ¹¤ëÀþ(x1=x2, y1=y2)¤ËÂФ·¤Æ¡¢cap-style ¤¬Î¾Ã¼¤Ç»ØÄꤵ¤ì ¤ë¤È¡¢¤³¤Î°ÕÌ£¤Ï line-width ¤È cap-style ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£

CapNotLast thin . . ·ë²Ì¤Ï¥Ç¥Ð¥¤¥¹°Í¸¤Ç¤¢¤ë¤¬¡¢Ë¾¤Þ¤·¤¤·ë²Ì¤Ï²¿¤âÉÁ¤«¤ì¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£
CapButt thin . . ·ë²Ì¤Ï¥Ç¥Ð¥¤¥¹°Í¸¤Ç¤¢¤ë¤¬¡¢Ë¾¤Þ¤·¤¤·ë²Ì¤Ï¥Ô¥¯¥»¥ë¤¬1¤Ä¤À¤±ÉÁ¤«¤ì¤ë¤³¤È¤Ç ¤¢¤ë¡£
CapRound thin . . ·ë²Ì¤Ï CapButt/thin ¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£
CapProjecting thin . . ·ë²Ì¤Ï CapButt/thin ¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¢¤ë¡£
CapButt wide . ²¿¤âÉÁ¤«¤ì¤Ê¤¤¡£
CapRound wide . . ÊĤ¸¤¿·Á¤ÏüÅÀ¤¬Ãæ¿´¤Ç¡¢Ä¾·Â¤¬ line-width ¤ËÅù¤·¤¤±ß¤Ç¤¢¤ë¡£
CapProjecting wide . . ÊĤ¸¤¿·Á¤ÏºÂɸ¼´¤ËÊ¿¹Ô¤Ç¡¢Ã¼ÅÀ¤¬Ãæ¿´¤Ç¡¢ÊÕ¤ÎŤµ¤¬ line-width ¤È¤Ê¤ëÀµ Êý·Á¤Ç¤¢¤ë¡£

üÅÀ¤¬°ìÃפ¹¤ëÀþ(x1=x2, y1=y2)¤Ë¤Ä¤¤¤Æ¡¢join-style ¤¬ÊÒÊý¤¢¤ë¤¤¤ÏξÊý ¤ÎüÅÀ¤ËŬÍѤµ¤ì¤¿¾ì¹ç¡¢Àþ¤¬µ°À×Á´ÂΤ«¤é¼è¤ê½ü¤«¤ì¤¿¤è¤¦¤Ê¸ú²Ì¤¬ÆÀ¤é¤ì ¤ë¡£ ¤·¤«¤·¡¢Á´ÂΤε°Àפ¬¼«Ê¬¼«¿È¤ÈÀܳ¤·¤¿Ã±ÆȤÎÅÀ¤«¤é¹½À®¤µ¤ì¤ë¡¢¤¢¤ë¤¤¤Ï ¤½¤Î¤è¤¦¤ÊÅÀ¤Ë½Ì¾®¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢cap-style ¤òξÊý¤ÎüÅÀ¤ËŬÍѤ·¤¿¤è¤¦ ¤Ê¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£

tile/stipple¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï̵¸Â¤Ë¹­¤¤2¼¡¸µÊ¿Ì̤Ǥ¢¤ê¡¢¤½¤ÎÌ̾å¤Ç ¥¿¥¤¥ë/¥¹¥Æ¥£¥×¥ë¤¬·«¤êÊÖ¤µ¤ì¤ë¡£ ¤½¤ÎÊ¿Ì̤¬¥°¥é¥Õ¥£¥Ã¥¯¥¹Áàºî¤Î¤¿¤á¤Ë¥É¥í¥¦¥¢¥Ö¥ë¤Ë½Å¤Í¤é¤ì¤ë¾ì¹ç¡¢ ¥¿¥¤¥ë/¥¹¥Æ¥£¥×¥ë¤Î²¿¤é¤«¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Îº¸¾å¶ù¤Ï¡¢¥¿¥¤¥ë/¥¹¥Æ¥£¥×¥ë ¤Î¸¶ÅÀºÂɸ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥É¥í¥¦¥¢¥Ö¥ëÆâ¤ÎºÂɸ¤ËÇÛÃÖ¤µ¤ì¤ë¡£ ¥¿¥¤¥ë/¥¹¥Æ¥£¥×¥ë¤È¥¯¥ê¥Ã¥×¤Î¸¶ÅÀ¤Ï¡¢¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤Ç»ØÄꤵ ¤ì¤¿Ç¤°Õ¤ÎÉÁ²èÂÐ¾Ý¥É¥í¥¦¥¢¥Ö¥ë¤Î¸¶ÅÀ¤ËÂФ¹¤ëÁêÂкÂɸ¤È¤·¤Æ°·¤ï¤ì¤ë¡£ ¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥× tile ¤Ï GC ¤ÈƱ¤¸¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤ÈƱ¤¸¿¼¤µ¤ò»ý¤Ã¤Æ¤¤¤Ê ¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥¨¥é¡¼ BadMatch ¤È¤Ê¤ë¡£ ¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥× stipple ¤Ï¿¼¤µ¤¬1¤Ç GC ¤ÈƱ¤¸¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤ò»ý¤¿¤Ê¤± ¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥¨¥é¡¼ BadMatch ¤È¤Ê¤ë¡£ fill-style ¤¬ FillStippled ¤Ç¤¢¤ë¤¬ FillOpaqueStippled ¤Ç¤Ê¤¤¥¹¥Æ¥£¥×¥ëÁàºî¤ËÂФ·¤Æ¤Ï¡¢¥¹¥Æ¥£¥×¥ë¥Ñ¥¿¡¼¥ó¤Ï1¤Ä¤ÎÊ¿Ì̤òËä¤á¤ë ¤Î¤Ë»È¤ï¤ì¡¢clip-mask ¤È AND ±é»»¤µ¤ì¤ëÄɲ寥ê¥Ã¥×¥Þ¥¹¥¯¤È¤·¤ÆÍѤ¤¤é ¤ì¤ë¡£ ¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥µ¥¤¥º¤Î¤â¤Î¤è¤ê¤â½èÍý¤¬Â®¤¤¤¬¡¢Ç¤°Õ¤Î¥µ¥¤¥º¤Î ¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤ò¥¿¥¤¥ë¤ä¥¹¥Æ¥£¥×¥ë¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

fill-style ¤ÏÀþÉÁ²è¡¢¥Æ¥­¥¹¥ÈÉÁ²è¡¢Åɤê¤Ä¤Ö¤·¤Î¥ê¥¯¥¨¥¹¥È¤ÎÁàºî¸µ¤ÎÆâÍƤò ÄêµÁ¤¹¤ë¡£ Á´¤Æ¤Î¥Æ¥­¥¹¥ÈÉÁ²è¤ÈÅɤê¤Ä¤Ö¤·¤Î¥ê¥¯¥¨¥¹¥È (Î㤨¤Ð¡¢ XDrawText, XDrawText16, XFillRectangle, XFillPolygon, XFillArc )¤È¡¢ Á´¤Æ¤Î line-style »ØÄêÉÕ¤­¤ÎÀþÉÁ²è¤Î¥ê¥¯¥¨¥¹¥È (Î㤨¤Ð XDrawLine, XDrawSegments, XDrawRectangle, XDrawArc) ¤È¡¢¤µ¤é¤Ë line-style ( LineOnOffDash, LineDoubleDash )¤ò»ØÄꤹ¤ëÀþÉÁ²è¥ê¥¯¥¨¥¹¥È¤Î¶ö¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤ËÂФ·¤Æ¡¢°Ê²¼¤Î¹àÌܤ¬ ŬÍѤµ¤ì¤ë¡£

FillSolid . Á°·Ê¿§
FillTiled . ¥¿¥¤¥ë
FillOpaqueStippled . . . ¥¹¥Æ¥£¥×¥ë¤ÈƱ¤¸Éý¤È¹â¤µ¤ò»ý¤Ä¥¿¥¤¥ë¡£¤·¤«¤·¡¢Ç¤°Õ¤Î¾ì½ê¤ÇÇطʤΠ¥¹¥Æ¥£¥×¥ë¤Ï 0 ¤Ç¤¢¤ê¡¢Ç¤°Õ¤Î¾ì½ê¤ÇÁ°·Ê¤Î¥¹¥Æ¥£¥×¥ë¤Ï1¤Ç¤¢¤ë¡£
FillStippled . ¥¹¥Æ¥£¥×¥ë¤Ç¥Þ¥¹¥¯¤µ¤ì¤¿Á°·Ê

Àþ¤¬ line-style ÉÕ¤­¤ÇÉÁ²è¤µ¤ì¤ë¤È¤­¡¢´ñ¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤Ï°Ê²¼¤ÎÊýË¡¤Ç fill-style ¤ËÀ©¸æ¤µ¤ì¤ë¡£

FillSolid . ÇØ·Ê¿§
FillTiled . ¶ö¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤ÈƱ¤¸¡£
FillOpaqueStippled . ¶ö¿ôÈÖÌܤΥÀ¥Ã¥·¥å¤ÈƱ¤¸¡£
FillStippled . ¥¹¥Æ¥£¥×¥ë¤Ë¥Þ¥¹¥¯¤µ¤ì¤¿ÇØ·Ê¿§

GC ¤Ø¤Î¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤Î³ÊǼ¤Ï¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¾ì¹ç¤â¤¢¤ë¤·¡¢¤½¤¦¤Ç¤Ê¤¤ ¾ì¹ç¤â¤¢¤ë¡£ ¤³¤Î¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤¬¸å¤Ç¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤ÎÉÁ²èÂоݤȤʤë¾ì¹ç¤Ë ¤Ï¡¢¤½¤ÎÊѹ¹¤Ï GC ¤ËÈ¿±Ç¤µ¤ì¤ë¤³¤È¤âÈ¿±Ç¤µ¤ì¤Ê¤¤¤³¤È¤â¤¢¤ë¡£ ¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤Ë¤ª¤¤¤Æ¡¢¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤¬ÉÁ²èÂоݤȤ·¤Æ¤â¡¢¥¿¥¤¥ë¤¢ ¤ë¤¤¤Ï¥¹¥Æ¥£¥×¥ë¤È¤·¤Æ¤â»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£

À­Ç½¤òºÇŬ²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤Ç¤­¤ë¤À¤±Æ±¤¸GC(¥³¥ó¥Ý¡¼¥Í¥ó¥È¤âÊѹ¹¤·¤Ê¤¤) ¤ÇÉÁ²è¤ò¹Ô¤¦¤È¤è¤¤¡£ GC ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÊѹ¹¤¹¤ë¥³¥¹¥È¤Î¡¢°Û¤Ê¤ë GC ¤òÍѤ¤¤ë¾ì¹ç¤ËÂФ¹¤ëÈæ Ψ¤Ï¡¢¥Ç¥£¥¹¥×¥ì¥¤¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ä¥µ¡¼¥Ð¤Î¼ÂÁõ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë¡£ GC ¾ðÊó¤Î°ìÉô¤Ï¤ª¤½¤é¤¯¥Ç¥£¥¹¥×¥ì¥¤¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë¤À ¤í¤¦¡£¤ÈƱ»þ¤Ë¡¢¥­¥ã¥Ã¥·¥å¤Ç¤­¤ë GC ¤Î¿ô¤Ï¤½¤ì¤Û¤É¿¤¯¤Ï¤Ê¤¤¤À¤í¤¦¡£

dashes ÃÍ¤Ï¼ÂºÝ¤Ë¤Ï XSetDashes ¤ÇÀßÄê¤Ç¤­¤ë¡¢¤è¤ê°ìÈÌŪ¤Ê¥Ñ¥¿¡¼¥ó¤ò´Êά²½¤·¤¿·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ ÃÍ N ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¡¢ XSetDashes ¤Ë2¤Ä¤ÎÍ×ÁǤò»ý¤Ä¥ê¥¹¥È[N, N] ¤ò»ØÄꤹ¤ë¤³¤È¤ÈƱ¤¸¤Ç¤¢¤ë¡£ ¤³¤ÎÃÍ¤Ï 0 °Ê³°¤ÎÃͤǤʤ¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£0 ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼ BadValue ¤È¤Ê¤ë¡£

clip-mask ¤ÏÉÁ²èÂÐ¾Ý¤Î¥É¥í¥¦¥¢¥Ö¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤òÀ©¸Â¤¹¤ë¡£ clip-mask ¤Ë¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤³¤Î¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×¤Ï¿¼¤µ ¤¬ 1 ¤Ç¤¢¤ê¡¢GC ¤ÈƱ¤¸¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤Ç¤Ê ¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼ BadMatch ¤È¤Ê¤ë¡£ clip-mask ¤Ë None ¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¥¯¥ê¥Ã¥×¤Î¸¶ÅÀ¤Ë¤«¤«¤ï¤é¤º¥Ô¥¯¥»¥ë¤Ïɬ¤ºÉÁ²è¤µ¤ì¤ë¡£ clip-mask ¤Ï´Ø¿ô XSetClipRectangles ¤ä XSetRegion ¤ò¸Æ¤Ó½Ð¤·¤Æ¤âÀßÄê¤Ç¤­¤ë¡£ clip-mask ¤Î¥Ó¥Ã¥È¤¬1¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¥Ô¥¯¥»¥ë¤À¤±¤¬ÉÁ²è¤µ¤ì¤ë¡£ clip-mask ¤¬¥«¥Ð¡¼¤·¤Æ¤¤¤ëÎΰè¤Î³°Â¦¤ä¡¢clip-mask ¤Î¥Ó¥Ã¥È¤¬0¤ËÀßÄê ¤µ¤ì¤Æ¤¤¤ëÎΰè¤Ç¤Ï¡¢¥Ô¥¯¥»¥ë¤ÏÉÁ²è¤µ¤ì¤Ê¤¤¡£ clip-mask ¤ÏÁ´¤Æ¤Î¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¡£ clip-mask ¤ÏÉÁ²è¸µ¤Ï¥¯¥ê¥Ã¥×¤·¤Ê¤¤¡£ clip-mask ¤Î¸¶ÅÀ¤Ï¡¢¥°¥é¥Õ¥£¥Ã¥¯¥¹¥ê¥¯¥¨¥¹¥È¤Ç»ØÄꤵ¤ì¤¿Ç¤°Õ¤ÎÉÁ²èÂÐ¾Ý ¥É¥í¥¦¥¢¥Ö¥ë¤ËÂФ¹¤ëÁêÂкÂɸ¤ÇÍ¿¤¨¤é¤ì¤ë¡£

subwindow-mode ¤Ë¤Ï ClipByChildren ¤« IncludeInferiors ¤òÀßÄê¤Ç¤­¤ë¡£ ClipByChildren ¤Î¾ì¹ç¤Ï¡¢ÉÁ²è¸µ¤Î¥¦¥£¥ó¥É¥¦¤âÉÁ²èÀè¤Î¥¦¥£¥ó¥É¥¦¤â¡¢É½¼¨²Äǽ¤Ê InputOutput ¤Ç¤¢¤ë»Ò¥¦¥£¥ó¥É¥¦Á´¤Æ¤Ë¤è¤Ã¤ÆÄɲÃŪ¤Ë¥¯¥ê¥Ã¥×¤µ¤ì¤ë¡£ IncludeInferiors ¤Î¾ì¹ç¤Ï¡¢ÉÁ²è¸µ¡¢ÉÁ²èÀ褤¤º¤ì¤Î¥¦¥£¥ó¥É¥¦¤ËÂФ·¤Æ¤â²¼°Ì¥¦¥£¥ó¥É¥¦¤Ë¤è ¤ë¥¯¥ê¥Ã¥×¤Ï¤Ê¤µ¤ì¤Ê¤¤¡£ ¤Ä¤Þ¤êÉÁ²è¸µ¤Î¥µ¥Ö¥¦¥£¥ó¥É¥¦¤ÎÆâÍƤ¬´Þ¤Þ¤ì¡¢ÉÁ²èÀè¤Î¥µ¥Ö¥¦¥£¥ó¥É¥¦¶­³¦ ¤òÄ̤êÈ´¤±¤¿ÉÁ²è¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ IncludeInferiors ¤ò¡¢¤¢¤ë¿¼¤µ¤ò»ý¤Á¡¢°Û¤Ê¤ë¿¼¤µ¤Î²¼°Ì¥¦¥£¥ó¥É¥¦¤ò¥Þ¥Ã¥×¤·¤Æ¤¤¤ë¤è¤¦¤Ê¥¦¥£ ¥ó¥É¥¦¤Ç»È¤Ã¤Æ¤âÉÔÀµ¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤Î°ÕÌ£¤Ï¥³¥¢¥×¥í¥È¥³¥ë¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ ¤¤¤Ê¤¤¡£

fill-rule ¤Ï ¤É¤Î¥Ô¥¯¥»¥ë¤¬ XFillPolygon ¥ê¥¯¥¨¥¹¥È¤ÇÍ¿¤¨¤é¤ì¤¿µ°ÀפÎÆ⦤Ǥ¢¤ë(ÉÁ²è¤µ¤ì¤ë)¤«ÄêµÁ¤¹¤ë¡£¤³¤ÎÃÍ¤Ï EvenOddRule ¤« WindingRule ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£ EvenOddRule ¤Î¾ì¹ç¤Ï¡¢¤¢¤ëÅÀ¤«¤é̵¸Â±ó¤Ø¤ÎľÀþ¤¬µ°Àפȴñ¿ô²ó¸ò¤ï¤ë¾ì¹ç¤Ë¡¢¤½¤ÎÅÀ¤ò ¿Þ·Á¤ÎÆ⦤Ȥߤʤ¹¡£ WindingRule ¤Î¾ì¹ç¤Ï¡¢¤¢¤ëÅÀ¤«¤é̵¸Â±ó¤Ø¤ÎľÀþ¤ò¹Í¤¨¤¿¤È¤­¡¢¤³¤ì¤¬¿Þ·Á¤Ë°¤¹¤ë»þ·× ¼þ¤êÊý¸þ¤ÎÀþʬ¤Ë¸ò¤ï¤ë²ó¿ô¤È¡¢È¿»þ·×¼þ¤êÊý¸þ¤ÎÀþʬ¤Ë¸ò¤ï¤ë²ó¿ô¤È¤¬°Û¤Ê¤Ã ¤Æ¤¤¤ì¤Ð¡¢¤½¤ÎÅÀ¤ò¿Þ·Á¤ÎÆ⦤Ȥߤʤ¹¡£ »þ·×¼þ¤êÊý¸þ¤Î¿Þ·Á¤ÎÀþʬ¤È¤Ï¡¢ÅÀ¤«¤é¸«¤¿¾ì¹ç¤ËľÀþ¤òº¸¤«¤é±¦¤Ë²£ÀÚ¤ëÀþ ʬ¤Î¤³¤È¤Ç¤¢¤ë¡£ È¿»þ·×¼þ¤êÊý¸þ¤Î¿Þ·Á¤ÎÀþʬ¤È¤Ï¡¢ÅÀ¤«¤é¸«¤¿¾ì¹ç¤ËľÀþ¤ò±¦¤«¤éº¸¤Ë²£ÀÚ¤ë Àþʬ¤Î¤³¤È¤Ç¤¢¤ë¡£ Êý¸þÉÕ¤­¤ÎÀþʬ¤¬Ä¾Àþ¤È°ìÃפ¹¤ë¾ì¹ç¤Ï¹Í¤¨¤Ê¤¯¤Æ¤â¤è¤¤¡£¤³¤Î¾ì¹ç¤Ï¡¢Ã±¤Ë Àþʬ¤È°ìÃפ·¤Ê¤¤Ê̤ÎľÀþ¤òÁª¤Ù¤Ð¤è¤¤¤«¤é¤Ç¤¢¤ë¡£

EvenOddRule, WindingRule ¤¤¤º¤ì¤Î¾ì¹ç¤â¡¢ÅÀ¤ÎÂ礭¤µ¤Ï̵¸Â¾®¤Ç¡¢¿Þ·Á¤Îµ°ÀפÏ̵¸Â¤ËºÙ¤¤¡£ ¤¢¤ë¥Ô¥¯¥»¥ë¤ÎÃæ¿´ÅÀ¤¬¿Þ·Á¤ÎÆ⦤ˤ¢¤ê¡¢Ãæ¿´ÅÀ¤¬¶­³¦Àþ¾å¤Ë¤Ê¤¤¾ì¹ç¡¢¤½ ¤Î¥Ô¥¯¥»¥ë¤Ï¿Þ·Á¤ÎÆ⦤Ǥ¢¤ë¡£ ¥Ô¥¯¥»¥ë¤ÎÃæ¿´ÅÀ¤¬¶­³¦Àþ¾å¤Ë¤¢¤ë¾ì¹ç¡¢Â¿³Ñ·Á¤ÎÆâÉô¤¬¤³¤ÎÅÀ¤Î¤¹¤°±¦(x ºÂɸ¤¬Áý²Ã¤¹¤ëÊý¸þ)¤Ë¤¢¤ë¾ì¹ç¤Ë¸Â¤ê¡¢¤½¤Î¥Ô¥¯¥»¥ë¤Ï¿Þ·Á¤ÎÆ⦤Ǥ¢¤ë¡£ Ãæ¿´¤¬¿åÊ¿¤ÊÊդξå¤Ë¤¢¤ë¥Ô¥¯¥»¥ë¤ÏÆÃÊ̤ʥ±¡¼¥¹¤Ç¤¢¤ê¡¢Â¿³Ñ·Á¤ÎÆâÉô¤¬¤³ ¤ÎÅÀ¤Î¤¹¤°²¼(yºÂɸ¤¬Áý²Ã¤¹¤ëÊý¸þ)¤Ë¤¢¤ë¾ì¹ç¤Ë¸Â¤ê¡¢¤½¤Î¥Ô¥¯¥»¥ë¤Ï¿Þ·Á ¤ÎÆ⦤Ǥ¢¤ë¡£

arc-mode ¤Ï XFillArcs ¤ÎÅɤê¤Ä¤Ö¤·¤òÀ©¸æ¤¹¤ë¡£¤³¤ÎÃÍ¤Ï ArcPieSlice, ArcChord ¤Î¤¤¤º¤ì¤«¤ËÀßÄꤵ¤ì¤ë¡£ ArcPieSlice ¤Î¾ì¹ç¤Ï¡¢±ß¸Ì¤Ï¥Ñ¥¤¤òÀڤä¿·Á¤ËÅɤê¤Ä¤Ö¤µ¤ì¤ë¡£ ArcChord ¤Î¾ì¹ç¤Ë¤Ï¡¢¸Ì¤È¸¹¤Ë°Ï¤Þ¤ì¤ëÎΰ褬Åɤê¤Ä¤Ö¤µ¤ì¤ë¡£

graphics-exposure ¥Õ¥é¥°¤Ï ¥ê¥¯¥¨¥¹¥È(¤ª¤è¤Ó³ÈÄ¥¤ÇÄêµÁ¤µ¤ì¤ëƱÍͤΥꥯ¥¨¥¹¥È)¤ËÂФ·¤Æ¤Î GraphicsExpose ¥¤¥Ù¥ó¥È¤ÎÀ¸À®¤òÀ©¸æ¤¹¤ë¡£

ÊÖ¤êÃÍ

Í׵ᤵ¤ì¤¿¥ê¥½¡¼¥¹¤ä¥µ¡¼¥Ð¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤Ë¥µ¡¼¥Ð¤¬¼ºÇÔ¤·¤¿¡£
°ú¤­¿ô Drawable ¤ÎÃͤ¬¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë Window ¤ä Pixmap ¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£
°ú¤­¿ô Font ¤ä GContext ¤ÎÃͤ¬¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë Font ¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£
°ú¤­¿ô GContext ¤ÎÃͤ¬¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë GContext ¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£
InputOnly ¤Î¥¦¥£¥ó¥É¥¦¤¬ Drawable ¤È¤·¤ÆÍѤ¤¤é¤ì¤¿¡£
°ú¤­¿ô¤ä°ú¤­¿ô¤ÎÁȤÏÀµ¤·¤¤·¿¤äÈϰϤò»ý¤Ã¤Æ¤¤¤ë¤¬¡¢¤½¤Î¥ê¥¯¥¨¥¹¥È¤¬Í׵᤹¤ë ¾¤Î¾ò·ï¤ËŬ¹ç¤Ç¤­¤Ê¤«¤Ã¤¿¡£
°ú¤­¿ô Pixmap ¤ÎÃͤ¬¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë Pixmap ¤ò»Ø¤·¤Æ¤¤¤Ê¤¤¡£
»ØÄꤵ¤ì¤¿¿ôÃͤÎÃæ¤Ë¥ê¥¯¥¨¥¹¥È¤ÎµöÍÆÈϰϤòĶ¤¨¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£°ú¤­¿ô¤ËÂÐ ¤·¤ÆÆÃÄê¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢°ú¤­¿ô¤Î·¿¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤ÎÈÏ °Ï¤¬µö¤µ¤ì¤ë¡£ÁªÂò»è¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë°ú¤­¿ô¤Ï¤³¤Î¥¨¥é¡¼¤òµ¯¤³¤¹¤³¤È¤¬ ¤¢¤ë¡£

´ØÏ¢¹àÌÜ

AllPlanes(3X11), XCopyArea(3X11), XCreateRegion(3X11), XDrawArc(3X11), XDrawLine(3X11), XDrawRectangle(3X11), XDrawText(3X11), XFillRectangle(3X11), XQueryBestSize(3X11), XSetArcMode(3X11), XSetClipOrigin(3X11), XSetFillStyle(3X11), XSetFont(3X11), XSetLineAttributes(3X11), XSetState(3X11), XSetTile(3X11)
Xlib - C Language X Interface