Xlib usually defers sending changes to the components of a GC to the server until a graphics function is actually called with that GC. This permits batching of component changes into a single server request. In some circumstances, however, it may be necessary for the client to explicitly force sending the changes to the server. An example might be when a protocol extension uses the GC indirectly, in such a way that the extension interface cannot know what GC will be used.
x:draw-string draws the characters of string, starting at
position.
x:image-string draws the characters and background of
string, starting at position.
The X:Draw-Points procedure uses the foreground pixel and
function components of the gc to draw points into drawable
at the positions (relative to the origin of drawable) specified.
X:Draw-Points uses these gc components: function,
planemask, foreground, subwindow-mode, clip-x-origin, clip-y-origin, and
clip-mask.
The X:Draw-Segments procedure uses the components of the
specified gc to draw multiple unconnected lines between disjoint
adjacent pair of points passed as arguments. It draws the segments in
order and does not perform joining at coincident endpoints. For any
given line, X:Draw-Segments does not draw a pixel more than once.
If thin (zero line-width) segments intersect, the intersecting pixels
are drawn multiple times. If wide segments intersect, the intersecting
pixels are drawn only once, as though the entire PolyLine protocol
request were a single, filled shape. X:Draw-Segments treats all
coordinates as relative to the origin of drawable.
X:Draw-Segments uses these gc components: function,
plane-mask, line-width, line-style, cap-style, fill-style,
subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style.
It also use these gc mode-dependent components: foreground,
background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin,
dash-offset, and dash-list.
The X:Draw-Lines procedure uses the components of the specified
gc to draw lines between each adjacent pair of points passed as
arguments. It draws the lines in order. The lines join correctly at
all intermediate points, and if the first and last points coincide, the
first and last lines also join correctly. For any given line,
X:Draw-Lines does not draw a pixel more than once. If thin (zero
line-width) lines intersect, the intersecting pixels are drawn multiple
times. If wide lines intersect, the intersecting pixels are drawn only
once, as though the entire PolyLine protocol request were a single,
filled shape. X:Draw-Lines treats all coordinates as relative to
the origin of drawable.
X:Draw-Lines uses these gc components: function,
plane-mask, line-width, line-style, cap-style, fill-style,
subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask, join-style.
It also use these gc mode-dependent components: foreground,
background, tile, stipple, tilestipple-x-origin, tile-stipple-y-origin,
dash-offset, and dash-list.
The path is closed automatically if the last point in the list or point-array does not coincide with the first point.
The X:Fill-Polygon procedure uses the components of the specified
gc to fill the region closed by the specified path.
X:Fill-Polygon does not draw a pixel of the region more than
once. X:Fill-Polygon treats all coordinates as relative to the
origin of drawable.
X:Fill-Polygon uses these gc components: function,
planemask, fill-style, fill-rule, subwindow-mode, clip-x-origin,
clip-y-origin, and clip-mask. It also use these gc mode-dependent
components: foreground, background, tile, stipple,
tile-stipple-x-origin, and tile-stipple-y-origin.