1Protocol::Ext::RENDER(3U)ser Contributed Perl DocumentatiPornotocol::Ext::RENDER(3)
2
3
4
6 X11::Protocol::Ext::RENDER - Perl module for the X Rendering Extension
7
9 use X11::Protocol;
10 $x = X11::Protocol->new($ENV{'DISPLAY'});
11 $x->init_extension('RENDER') or die;
12
14 The RENDER extension adds a new set of drawing primitives which effec‐
15 tively represent a replacement of the drawing routines in the core pro‐
16 tocol, redesigned based on the needs of more modern clients. It adds
17 long-desired features such as subpixel positioning, alpha compositing,
18 direct specification of colors, and multicolored or animated cursors.
19 On the other hand, it omits features that are no longer commonly used:
20 wide lines, arbitrary polygons (only triangles and horizontally-aligned
21 trapezoids are supported), ellipses, bitwise rendering operations, and
22 server-side fonts (in favor of "glyphs" that are rendered on the client
23 side and transmitted once).
24
25 As of this writing (early 2004), the specification and implementation
26 both have rough edges, but there are relatively few alternatives for
27 offloading fancy graphics processing to the server, as is necessary
28 over slow links or if the client is written in a slow language. Another
29 possibility you might consider is the 2D subset of OpenGL, though it
30 doesn't yet have an X11::Protocol-compatible interface.
31
33 This extension adds the constant types 'PictType', 'PictOp', 'Sub‐
34 Pixel', 'PolyEdge', and 'PolyMode', with values as defined in the stan‐
35 dard.
36
38 This extension adds several requests, called as shown below:
39
40 $x->RenderQueryVersion($major, $minor)
41 =>
42 ($major, $minor)
43
44 $x->RenderQueryPictFormats()
45 =>
46 ([[$id, $type, $depth,
47 $red, $red_m, $green, $green_m, $blue, $blue_m,
48 $alpha, $alpha_m, $cmap], ...],
49 [[$fallback, [$depth, [$visual, $format], ...], ...], ...],
50 [$subpixel, ...])
51
52 $x->RenderQueryPictIndexValues($pict_format)
53 =>
54 ([$index, $red, $green, $blue, $alpha], ...)
55
56 $x->RenderQueryFilters($drawable)
57 =>
58 ([@filters], [@aliases])
59
60 $x->RenderCreatePicture($picture, $drawable, $format,
61 'attribute' => $value, ...)
62
63 $x->RenderChangePicture($picture, 'attribute' => $value, ...)
64
65 $x->RenderSetPictureClipRectangles($pic, $x_origin, $y_origin,
66 [$x, $y, $width, $height], ...)
67
68 $x->RenderSetPictureTransform($pict, $m11, $m12, $m13,
69 $m21, $m22, $m23,
70 $m31, $m32, $m33);
71
72 $x->RenderSetPictureFilter($pict, $filter, @args)
73
74 $x->RenderComposite($op, $src, $mask, $dst, $src_x, $src_y,
75 $mask_x, $mask_y, $dst_x, $dst_y,
76 $width, $height)
77
78 $x->RenderFillRectangles($op, $dst, [$red, $green, $blue, $alpha],
79 [$x, $y, $width, $height], ...)
80
81 $x->RenderTrapezoids($op, $src, $src_x, $src_y, $dst, $mask_format,
82 [$top, $bottom, $lx1, $ly1, $lx2, $ly2,
83 $rx1, $ry1, $rx2, $ry2] ,...)
84
85 $x->RenderTriangles($op, $src, $src_x, $src_y, $dst, $mask_format,
86 [$x1, $y1, $x2, $y2, $x3, $y3])
87
88 $x->RenderTriStrip($op, $src, $src_x, $src_y, $dst, $mask_format,
89 [$x, $y], [$x, $y], [$x, $y], [$x, $y], ...)
90
91 $x->RenderTriFan($op, $src, $src_x, $src_y, $dst, $mask_format,
92 [$x, $y], [$x, $y], [$x, $y], [$x, $y], ...)
93
94 $x->RenderCreateGlyphSet($gsid, $format)
95
96 $x->RenderReferenceGlyphSet($gsid, $existing)
97
98 $x->RenderFreeGlyphSet($gsid)
99
100 $x->RenderAddGlyphs($gsid, [$glyph, $width, $height,
101 $x, $y, $x_off, $y_off, $data], ...)
102
103 Warning: with some server implementations (including XFree86 through
104 4.4) passing more than one glyph to AddGlyphs can hang or crash the
105 server. So don't do that.
106
107 $x->RenderFreeGylphs($gsid, @glyphs)
108
109 $x->RenderCompositeGlyphs8($op, $src, $dst, $mask_format, $gsid,
110 $src_x, $src_y,
111 [$delta_x, $delta_y, $str], ...)
112
113 $x->RenderCompositeGlyphs16($op, $src, $dst, $mask_format, $gsid,
114 $src_x, $src_y,
115 [$delta_x, $delta_y, $str], ...)
116
117 $x->RenderCompositeGlyphs32($op, $src, $dst, $mask_format, $gsid,
118 $src_x, $src_y,
119 [$delta_x, $delta_y, $str], ...)
120
121 In these three requests, new GlyphSetIDs can also be interspersed with
122 the array references.
123
124 $x->RenderCreateCursor($cid, $source, $hot_x, $hot_y)
125
126 $x->RenderCreateAnimCursor($cid, [$cursor, $delay], ...)
127
129 Stephen McCamant <SMCCAM@cpan.org>.
130
132 perl(1), X11::Protocol, The X Rendering Extension (XFree86 draft stan‐
133 dard).
134
135
136
137perl v5.8.8 2006-09-16 Protocol::Ext::RENDER(3)