<sxg> <!-- width and height declarations --> <picture id="pen"> <type>pixmap</type> <size>scaled</size> <width>16</width> <height>16</height> </picture> <render id="pen"> <!-- Graphic context commands --> </render> </sxg>
      After declaring one or more
      picturess,
      the
      render elements
      execute commands for the picture object specified by their
      id attribute.
      A picture object with the id
      “main” gets automatically created by default.
      It represents the final
      drawn picture.
      Each render element itself
      contains a list of commands to execute, and the
      SXG file itself has a list of
      gc and
      render elements, which are processed
      in the order of their appearance.
      It's possible to have more than one appearance of a
      render element referencing the same picture
      id:
    
<sxg> <!-- ... --> <render id="pen"> <!-- ... --> </render> <gc id="pixmap1_gc"> <!-- ... --> </gc> <render id="pen"> <!-- ... --> </render> <render id="main"> <!-- ... --> </render> </sxg>
This executes some rendering commands for the “pen” picture, followed by graphic context commands for the graphic context “pixmap1_gc”, followed by more render commands for picture “pen”, and finally some render commands for the “main” picture.
op<!-- --> <op>atop</op> <!-- -->
	Several commands described below contain an optional
	op which specifies the compositing
	operator.
	Its value must be one of the following, setting
	the correposnding compositing operation from the RENDER
	specification:
	“clear”,
	“src”,
	“dst”,
	“over”,
	“over_reverse”,
	“in”,
	“in_reverse”,
	“out”,
	“out_reverse”,
	“atop”,
	“atop_reverse”,
	“xor”,
	“add”,
	“saturate”,
	“disjoint_clear”,
	“disjoint_src”,
	“disjoint_dst”,
	“disjoint_over”,
	“disjoint_over_reverse”,
	“disjoint_in”,
	“disjoint_in_reverse”,
	“disjoint_out”,
	“disjoint_out_reverse”,
	“disjoint_atop”,
	“disjoint_atop_reverse”,
	“disjoint_xor”,
	“conjoint_clear”,
	“conjoint_src”,
	“conjoint_dst”,
	“conjoint_over”,
	“conjoint_over_reverse”,
	“conjoint_in”,
	“conjoint_in_reverse”,
	“conjoint_out”,
	“conjoint_out_reverse”,
	“conjoint_atop”,
	“conjoint_atop_reverse”,
	“conjoint_xor”,
	“multiply”,
	“screen”,
	“overlay”,
	“darken”,
	“lighten”,
	“color_dodge”,
	“color_burn”,
	“hard_light”,
	“soft_light”,
	“difference”,
	“exclusion”,
	“hsl_hue”,
	“hsl_saturation”,
	“hsl_color”, or
	“hsl_luminosity”.
      
The last fifteen compositing operators are not specified in the RENDER extension, but are defined by the XCB library, and these definitions are available, as is. Since SXG uses the display server to execute all drawing instructions, support for each compositing operator depends on the display server.
repeat<render id="pic1"> <!-- --> <repeat>normal</repeat> <!-- --> </render>
	The
	repeat element sets the picture's
	repeat attribute.
	The value must be
	“none”,
	“normal”,
	“pad”,
	or
	“reflect”.
      
clip<render id="pic1"> <!-- --> <clip> <pixmap>pixmap1</pixmap> <clipped> <fill> <!-- --> </fill> </clipped> </clip> <clip> <rectangle> <x>0</x> <!-- optional --> <y>0</y> <width>10</width> <height><10</height> </rectangle> <rectangle> <x>10</x> <y>10</y> <width>10</width> <height><10</height> </rectangle> <clipped> <fill> <!-- --> </fill> </clipped> </clip> <!-- --> </render>
	The
	clip element sets the picture's
	clip area in one of two different ways:
      
	    Using the id label of a
	    pixmap that serves as a clipping mask.
	    This pixmap must be declared with a
	    mask element.
	  
	    This option sets the picture object's
	    clip-mask attribute directly.
	  
	    Using a list of rectangles.
	    Each rectangle's coordinates get scaled according to the
	    pixture's
	    size.
	    This option uses the SetPictureClipRectangles
	    command to set the picture object's
	    clip-mask attribute.
	  
	The optional x and
	y elements set the
	“clip-x-origin”, and
	“clip-y-origin” attributes values.
	The coordinates get scaled according
	to the picture's
	size.
	If not specified, they default to actual (0, 0) coordinates.
      
	The clip
	must have exactly one
	clipped inner widget, which
	contains a list of any widget that can appear in a
	render, except for another
	clip.
	The elements in clipped get executed
	with the clip mask in effect, after which point the clip mask
	is removed.
      
fill<render id="pic1"> <!-- --> <fill> <op>over</op> <!-- optional, defaults to src --> <r>1</r> <g>1</g> <rectangle> <x>0</x> <y>0</y> <width>10</width> <height><10</height> </rectangle> <rectangle> <x>10</x> <y>10</y> <width>10</width> <height><10</height> </rectangle> </fill> <!-- --> </render>
	The
	fill element executes a
	FillRectangles render command.
	Its
	r,
	g,
	b, and
	a elements specify the value
	of the red, green, blue, and alpha channels, respectively.
	Each value ranges between 0 (minimum) and
	1 (maximum).
	r,
	g, and
	b defaults to 0, minimum intensity.
	a defaults to 1, maximum intensity.
	Alternatively, a
	predefined theme color
	can also be specified.
      
	The optional
	op
	elements defaults to src,
	Each rectangle's coordinates get scaled according to the
	pixture's
	size.
      
composite<render id="pic1"> <!-- --> <composite> <op>over</op> <x>0</x> <!-- optional --> <y>0</y> <width>10</width> <height>10</height> <src> <picture>yellow</picture> <x>0</x> <!-- optional --> <y>0</y> </src> <mask> <!-- optional --> <pixmap>pixmap1</pixmap> <x>0</x> <!-- optional --> <y>0</y> </mask> </composite> <!-- --> <composite> <op>over</op> <x>5</x> <y>5</y> <srcsize /> <halign>centered</halign> <valign>middle</valign> <src> <picture>prompt</picture> </src> </composite> <!-- --> </render>
	The
	composite element executes a
	Composite render command. The
	Composite's
	dst picture is the
	render element that contains
	the
	composite command.
	x,
	y,
	width, and
	height specify the
	dst-x,
	dst-y,
	width and
	height parameters.
      
	A srcsize is an alternative to
	width and
	height, this uses the source picture's
	width and height, instead.
	The optional
	halign and
	valign elements determine how
	x,
	y values are interpreted.
	halign may be
	left (default),
	centered, or
	right.
	valign may be
	top (default),
	middle, or
	or bottom.
      
	op
	specifies the compositing operator.
	src specifies the
	src picture's label id, and
	the
	src-x and
	src-y parameters.
      
	The optional
	mask gives the ID of the pixmap
	for the mask parameter (the RENDER extension
	specifies this
	as a picture object, and SXG provides a picture object for the
	given pixmap); together with
	the
	mask-x and
	mask-y parameters.
      
	All coordinates get scaled according
	to their respective widget's
	size.
	If not specified, they default to actual (0, 0) coordinates.
	Both the destination picture, the source picture, and the optional
	masking pixmap if specified, should have the same
	size setting.
      
triangles<render id="pic1"> <!-- --> <triangles> <op>over</op> <!-- optional --> <mask>pixmap1</mask> <!-- optional --> <x>0</x> <!-- optional --> <y>0</y> <!-- optional --> <src>yellow</src> <triangle> <p1> <x>0</x> <y>0</y> </p1> <p2> <x>10</x> <y>0</y> </p2> <p3> <x>0</x> <y>10</y> </p3> </triangle> <triangle> <p1> <x>10</x> <y>0</y> </p1> <p2> <x>20</x> <y>0</y> </p2> <p3> <x>20</x> <y>10</y> </p3> </triangle> </triangles> <!-- --> </render>
	The
	triangles element executes a
	Triangles render command. The optional
	op
	specifies the compositing operator, and defaults to
	src.
	The optional
	mask gives the ID of the pixmap
	for the mask parameter (the RENDER extension
	specifies this
	as a picture object, and SXG provides a picture object for the
	given pixmap).
	The optional
	x and
	y set
	Triangles'
	src-x and
	src-y parameters.
	The coordinates get scaled according
	to the picture's
	size.
	If not specified, they default to actual (0, 0) coordinates.
	The src element is the id label of
	a picture that sets the
	src parameter.
      
	The
	triangle elements define each triangle's
	three corners.
	All coordinates get scaled according to the
	pixture's
	size.
      
tristrip and trifan<render id="pic1"> <!-- --> <tristrip> <op>over</op> <!-- optional --> <mask>pixmap1</mask> <!-- optional --> <x>0</x> <!-- optional --> <y>0</y> <!-- optional --> <src>yellow</src> <point> <x>0</x> <y>0</y> </point> <point> <x>10</x> <y>0</y> </point> <point> <x>10</x> <y>10</y> </point> <point> <x>20</x> <y>10</y> </point> </tristrip> <trifan> <op>over</op> <!-- optional --> <mask>pixmap1</mask> <!-- optional --> <x>0</x> <!-- optional --> <y>0</y> <!-- optional --> <src>yellow</src> <point> <x>0</x> <y>0</y> </point> <point> <x>10</x> <y>0</y> </point> <point> <x>10</x> <y>10</y> </point> <point> <x>0</x> <y>10</y> </point> </trifan> <!-- --> </render>
	These elements execute the
	TriStrip or the
	TriFan render command.
	The optional
	op
	specifies the compositing operator, and defaults to
	src.
	The optional
	mask gives the ID of the pixmap
	for the mask parameter (the RENDER extension
	specifies this
	as a picture object, and SXG provides a picture object for the
	given pixmap).
	The optional
	x and
	y parameters set
	src-x and
	src-y parameters.
	The coordinates get scaled according
	to the picture's
	size.
	If not specified, they default to actual (0, 0) coordinates.
	The src element is the id label of
	a picture that sets the
	src parameter.
      
	A list of point elements provides
	the coordinates for the points command parameter.
	All coordinates get scaled according to the
	pixture's
	size.