1Protocol::Ext::RENDER(3U)ser Contributed Perl DocumentatiPornotocol::Ext::RENDER(3)
2
3
4

NAME

6       X11::Protocol::Ext::RENDER - Perl module for the X Rendering Extension
7

SYNOPSIS

9         use X11::Protocol;
10         $x = X11::Protocol->new($ENV{'DISPLAY'});
11         $x->init_extension('RENDER') or die;
12

DESCRIPTION

14       The RENDER extension adds a new set of drawing primitives which
15       effectively represent a replacement of the drawing routines in the core
16       protocol, 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

SYMBOLIC CONSTANTS

33       This extension adds the constant types 'PictType', 'PictOp',
34       'SubPixel', 'PolyEdge', and 'PolyMode', with values as defined in the
35       standard.
36

REQUESTS

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

AUTHOR

129       Stephen McCamant <SMCCAM@cpan.org>.
130

SEE ALSO

132       perl(1), X11::Protocol, The X Rendering Extension (XFree86 draft
133       standard).
134
135
136
137perl v5.32.0                      2020-07-28          Protocol::Ext::RENDER(3)
Impressum