xref: /aoo4110/main/x11_extensions/inc/Xrender.h (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /*
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Copyright © 2000 SuSE, Inc.
4*b1cdbd2cSJim Jagielski  *
5*b1cdbd2cSJim Jagielski  * Permission to use, copy, modify, distribute, and sell this software and its
6*b1cdbd2cSJim Jagielski  * documentation for any purpose is hereby granted without fee, provided that
7*b1cdbd2cSJim Jagielski  * the above copyright notice appear in all copies and that both that
8*b1cdbd2cSJim Jagielski  * copyright notice and this permission notice appear in supporting
9*b1cdbd2cSJim Jagielski  * documentation, and that the name of SuSE not be used in advertising or
10*b1cdbd2cSJim Jagielski  * publicity pertaining to distribution of the software without specific,
11*b1cdbd2cSJim Jagielski  * written prior permission.  SuSE makes no representations about the
12*b1cdbd2cSJim Jagielski  * suitability of this software for any purpose.  It is provided "as is"
13*b1cdbd2cSJim Jagielski  * without express or implied warranty.
14*b1cdbd2cSJim Jagielski  *
15*b1cdbd2cSJim Jagielski  * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
16*b1cdbd2cSJim Jagielski  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
17*b1cdbd2cSJim Jagielski  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18*b1cdbd2cSJim Jagielski  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
19*b1cdbd2cSJim Jagielski  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20*b1cdbd2cSJim Jagielski  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21*b1cdbd2cSJim Jagielski  *
22*b1cdbd2cSJim Jagielski  * Author:  Keith Packard, SuSE, Inc.
23*b1cdbd2cSJim Jagielski  */
24*b1cdbd2cSJim Jagielski 
25*b1cdbd2cSJim Jagielski #ifndef _XRENDER_H_
26*b1cdbd2cSJim Jagielski #define _XRENDER_H_
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include <X11/Xlib.h>
29*b1cdbd2cSJim Jagielski #include <X11/Xfuncproto.h>
30*b1cdbd2cSJim Jagielski #include <X11/Xosdefs.h>
31*b1cdbd2cSJim Jagielski #include <X11/Xutil.h>
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski #include <X11/extensions/render.h>
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski typedef struct {
36*b1cdbd2cSJim Jagielski     short   red;
37*b1cdbd2cSJim Jagielski     short   redMask;
38*b1cdbd2cSJim Jagielski     short   green;
39*b1cdbd2cSJim Jagielski     short   greenMask;
40*b1cdbd2cSJim Jagielski     short   blue;
41*b1cdbd2cSJim Jagielski     short   blueMask;
42*b1cdbd2cSJim Jagielski     short   alpha;
43*b1cdbd2cSJim Jagielski     short   alphaMask;
44*b1cdbd2cSJim Jagielski } XRenderDirectFormat;
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski typedef struct {
47*b1cdbd2cSJim Jagielski     PictFormat		id;
48*b1cdbd2cSJim Jagielski     int			type;
49*b1cdbd2cSJim Jagielski     int			depth;
50*b1cdbd2cSJim Jagielski     XRenderDirectFormat	direct;
51*b1cdbd2cSJim Jagielski     Colormap		colormap;
52*b1cdbd2cSJim Jagielski } XRenderPictFormat;
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski #define PictFormatID	    (1 << 0)
55*b1cdbd2cSJim Jagielski #define PictFormatType	    (1 << 1)
56*b1cdbd2cSJim Jagielski #define PictFormatDepth	    (1 << 2)
57*b1cdbd2cSJim Jagielski #define PictFormatRed	    (1 << 3)
58*b1cdbd2cSJim Jagielski #define PictFormatRedMask   (1 << 4)
59*b1cdbd2cSJim Jagielski #define PictFormatGreen	    (1 << 5)
60*b1cdbd2cSJim Jagielski #define PictFormatGreenMask (1 << 6)
61*b1cdbd2cSJim Jagielski #define PictFormatBlue	    (1 << 7)
62*b1cdbd2cSJim Jagielski #define PictFormatBlueMask  (1 << 8)
63*b1cdbd2cSJim Jagielski #define PictFormatAlpha	    (1 << 9)
64*b1cdbd2cSJim Jagielski #define PictFormatAlphaMask (1 << 10)
65*b1cdbd2cSJim Jagielski #define PictFormatColormap  (1 << 11)
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski typedef struct _XRenderPictureAttributes {
68*b1cdbd2cSJim Jagielski     int 		repeat;
69*b1cdbd2cSJim Jagielski     Picture		alpha_map;
70*b1cdbd2cSJim Jagielski     int			alpha_x_origin;
71*b1cdbd2cSJim Jagielski     int			alpha_y_origin;
72*b1cdbd2cSJim Jagielski     int			clip_x_origin;
73*b1cdbd2cSJim Jagielski     int			clip_y_origin;
74*b1cdbd2cSJim Jagielski     Pixmap		clip_mask;
75*b1cdbd2cSJim Jagielski     Bool		graphics_exposures;
76*b1cdbd2cSJim Jagielski     int			subwindow_mode;
77*b1cdbd2cSJim Jagielski     int			poly_edge;
78*b1cdbd2cSJim Jagielski     int			poly_mode;
79*b1cdbd2cSJim Jagielski     Atom		dither;
80*b1cdbd2cSJim Jagielski     Bool		component_alpha;
81*b1cdbd2cSJim Jagielski } XRenderPictureAttributes;
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski typedef struct {
84*b1cdbd2cSJim Jagielski     unsigned short   red;
85*b1cdbd2cSJim Jagielski     unsigned short   green;
86*b1cdbd2cSJim Jagielski     unsigned short   blue;
87*b1cdbd2cSJim Jagielski     unsigned short   alpha;
88*b1cdbd2cSJim Jagielski } XRenderColor;
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski typedef struct _XGlyphInfo {
91*b1cdbd2cSJim Jagielski     unsigned short  width;
92*b1cdbd2cSJim Jagielski     unsigned short  height;
93*b1cdbd2cSJim Jagielski     short	    x;
94*b1cdbd2cSJim Jagielski     short	    y;
95*b1cdbd2cSJim Jagielski     short	    xOff;
96*b1cdbd2cSJim Jagielski     short	    yOff;
97*b1cdbd2cSJim Jagielski } XGlyphInfo;
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski typedef struct _XGlyphElt8 {
100*b1cdbd2cSJim Jagielski     GlyphSet		    glyphset;
101*b1cdbd2cSJim Jagielski     _Xconst char	    *chars;
102*b1cdbd2cSJim Jagielski     int			    nchars;
103*b1cdbd2cSJim Jagielski     int			    xOff;
104*b1cdbd2cSJim Jagielski     int			    yOff;
105*b1cdbd2cSJim Jagielski } XGlyphElt8;
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski typedef struct _XGlyphElt16 {
108*b1cdbd2cSJim Jagielski     GlyphSet		    glyphset;
109*b1cdbd2cSJim Jagielski     _Xconst unsigned short  *chars;
110*b1cdbd2cSJim Jagielski     int			    nchars;
111*b1cdbd2cSJim Jagielski     int			    xOff;
112*b1cdbd2cSJim Jagielski     int			    yOff;
113*b1cdbd2cSJim Jagielski } XGlyphElt16;
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski typedef struct _XGlyphElt32 {
116*b1cdbd2cSJim Jagielski     GlyphSet		    glyphset;
117*b1cdbd2cSJim Jagielski     _Xconst unsigned int    *chars;
118*b1cdbd2cSJim Jagielski     int			    nchars;
119*b1cdbd2cSJim Jagielski     int			    xOff;
120*b1cdbd2cSJim Jagielski     int			    yOff;
121*b1cdbd2cSJim Jagielski } XGlyphElt32;
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski typedef double	XDouble;
124*b1cdbd2cSJim Jagielski 
125*b1cdbd2cSJim Jagielski typedef struct _XPointDouble {
126*b1cdbd2cSJim Jagielski     XDouble  x, y;
127*b1cdbd2cSJim Jagielski } XPointDouble;
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski #define XDoubleToFixed(f)    ((XFixed) ((f) * 65536))
130*b1cdbd2cSJim Jagielski #define XFixedToDouble(f)    (((XDouble) (f)) / 65536)
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski typedef int XFixed;
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski typedef struct _XPointFixed {
135*b1cdbd2cSJim Jagielski     XFixed  x, y;
136*b1cdbd2cSJim Jagielski } XPointFixed;
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski typedef struct _XLineFixed {
139*b1cdbd2cSJim Jagielski     XPointFixed	p1, p2;
140*b1cdbd2cSJim Jagielski } XLineFixed;
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski typedef struct _XTriangle {
143*b1cdbd2cSJim Jagielski     XPointFixed	p1, p2, p3;
144*b1cdbd2cSJim Jagielski } XTriangle;
145*b1cdbd2cSJim Jagielski 
146*b1cdbd2cSJim Jagielski typedef struct _XCircle {
147*b1cdbd2cSJim Jagielski     XFixed x;
148*b1cdbd2cSJim Jagielski     XFixed y;
149*b1cdbd2cSJim Jagielski     XFixed radius;
150*b1cdbd2cSJim Jagielski } XCircle;
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski typedef struct _XTrapezoid {
153*b1cdbd2cSJim Jagielski     XFixed  top, bottom;
154*b1cdbd2cSJim Jagielski     XLineFixed	left, right;
155*b1cdbd2cSJim Jagielski } XTrapezoid;
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski typedef struct _XTransform {
158*b1cdbd2cSJim Jagielski     XFixed  matrix[3][3];
159*b1cdbd2cSJim Jagielski } XTransform;
160*b1cdbd2cSJim Jagielski 
161*b1cdbd2cSJim Jagielski typedef struct _XFilters {
162*b1cdbd2cSJim Jagielski     int	    nfilter;
163*b1cdbd2cSJim Jagielski     char    **filter;
164*b1cdbd2cSJim Jagielski     int	    nalias;
165*b1cdbd2cSJim Jagielski     short   *alias;
166*b1cdbd2cSJim Jagielski } XFilters;
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski typedef struct _XIndexValue {
169*b1cdbd2cSJim Jagielski     unsigned long    pixel;
170*b1cdbd2cSJim Jagielski     unsigned short   red, green, blue, alpha;
171*b1cdbd2cSJim Jagielski } XIndexValue;
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski typedef struct _XAnimCursor {
174*b1cdbd2cSJim Jagielski     Cursor	    cursor;
175*b1cdbd2cSJim Jagielski     unsigned long   delay;
176*b1cdbd2cSJim Jagielski } XAnimCursor;
177*b1cdbd2cSJim Jagielski 
178*b1cdbd2cSJim Jagielski typedef struct _XSpanFix {
179*b1cdbd2cSJim Jagielski     XFixed	    left, right, y;
180*b1cdbd2cSJim Jagielski } XSpanFix;
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski typedef struct _XTrap {
183*b1cdbd2cSJim Jagielski     XSpanFix	    top, bottom;
184*b1cdbd2cSJim Jagielski } XTrap;
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski typedef struct _XLinearGradient {
187*b1cdbd2cSJim Jagielski     XPointFixed p1;
188*b1cdbd2cSJim Jagielski     XPointFixed p2;
189*b1cdbd2cSJim Jagielski } XLinearGradient;
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski typedef struct _XRadialGradient {
192*b1cdbd2cSJim Jagielski     XCircle inner;
193*b1cdbd2cSJim Jagielski     XCircle outer;
194*b1cdbd2cSJim Jagielski } XRadialGradient;
195*b1cdbd2cSJim Jagielski 
196*b1cdbd2cSJim Jagielski typedef struct _XConicalGradient {
197*b1cdbd2cSJim Jagielski     XPointFixed center;
198*b1cdbd2cSJim Jagielski     XFixed angle; /* in degrees */
199*b1cdbd2cSJim Jagielski } XConicalGradient;
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski _XFUNCPROTOBEGIN
202*b1cdbd2cSJim Jagielski 
203*b1cdbd2cSJim Jagielski Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski Status XRenderQueryVersion (Display *dpy,
206*b1cdbd2cSJim Jagielski 			    int     *major_versionp,
207*b1cdbd2cSJim Jagielski 			    int     *minor_versionp);
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski Status XRenderQueryFormats (Display *dpy);
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski int XRenderQuerySubpixelOrder (Display *dpy, int screen);
212*b1cdbd2cSJim Jagielski 
213*b1cdbd2cSJim Jagielski Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
214*b1cdbd2cSJim Jagielski 
215*b1cdbd2cSJim Jagielski XRenderPictFormat *
216*b1cdbd2cSJim Jagielski XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski XRenderPictFormat *
219*b1cdbd2cSJim Jagielski XRenderFindFormat (Display			*dpy,
220*b1cdbd2cSJim Jagielski 		   unsigned long		mask,
221*b1cdbd2cSJim Jagielski 		   _Xconst XRenderPictFormat	*templ,
222*b1cdbd2cSJim Jagielski 		   int				count);
223*b1cdbd2cSJim Jagielski 
224*b1cdbd2cSJim Jagielski #define PictStandardARGB32  0
225*b1cdbd2cSJim Jagielski #define PictStandardRGB24   1
226*b1cdbd2cSJim Jagielski #define PictStandardA8	    2
227*b1cdbd2cSJim Jagielski #define PictStandardA4	    3
228*b1cdbd2cSJim Jagielski #define PictStandardA1	    4
229*b1cdbd2cSJim Jagielski #define PictStandardNUM	    5
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski XRenderPictFormat *
232*b1cdbd2cSJim Jagielski XRenderFindStandardFormat (Display		*dpy,
233*b1cdbd2cSJim Jagielski 			   int			format);
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski XIndexValue *
236*b1cdbd2cSJim Jagielski XRenderQueryPictIndexValues(Display			*dpy,
237*b1cdbd2cSJim Jagielski 			    _Xconst XRenderPictFormat	*format,
238*b1cdbd2cSJim Jagielski 			    int				*num);
239*b1cdbd2cSJim Jagielski 
240*b1cdbd2cSJim Jagielski Picture
241*b1cdbd2cSJim Jagielski XRenderCreatePicture (Display				*dpy,
242*b1cdbd2cSJim Jagielski 		      Drawable				drawable,
243*b1cdbd2cSJim Jagielski 		      _Xconst XRenderPictFormat		*format,
244*b1cdbd2cSJim Jagielski 		      unsigned long			valuemask,
245*b1cdbd2cSJim Jagielski 		      _Xconst XRenderPictureAttributes	*attributes);
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski void
248*b1cdbd2cSJim Jagielski XRenderChangePicture (Display				*dpy,
249*b1cdbd2cSJim Jagielski 		      Picture				picture,
250*b1cdbd2cSJim Jagielski 		      unsigned long			valuemask,
251*b1cdbd2cSJim Jagielski 		      _Xconst XRenderPictureAttributes  *attributes);
252*b1cdbd2cSJim Jagielski 
253*b1cdbd2cSJim Jagielski void
254*b1cdbd2cSJim Jagielski XRenderSetPictureClipRectangles (Display	    *dpy,
255*b1cdbd2cSJim Jagielski 				 Picture	    picture,
256*b1cdbd2cSJim Jagielski 				 int		    xOrigin,
257*b1cdbd2cSJim Jagielski 				 int		    yOrigin,
258*b1cdbd2cSJim Jagielski 				 _Xconst XRectangle *rects,
259*b1cdbd2cSJim Jagielski 				 int		    n);
260*b1cdbd2cSJim Jagielski 
261*b1cdbd2cSJim Jagielski void
262*b1cdbd2cSJim Jagielski XRenderSetPictureClipRegion (Display	    *dpy,
263*b1cdbd2cSJim Jagielski 			     Picture	    picture,
264*b1cdbd2cSJim Jagielski 			     Region	    r);
265*b1cdbd2cSJim Jagielski 
266*b1cdbd2cSJim Jagielski void
267*b1cdbd2cSJim Jagielski XRenderSetPictureTransform (Display	    *dpy,
268*b1cdbd2cSJim Jagielski 			    Picture	    picture,
269*b1cdbd2cSJim Jagielski 			    XTransform	    *transform);
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski void
272*b1cdbd2cSJim Jagielski XRenderFreePicture (Display                   *dpy,
273*b1cdbd2cSJim Jagielski 		    Picture                   picture);
274*b1cdbd2cSJim Jagielski 
275*b1cdbd2cSJim Jagielski void
276*b1cdbd2cSJim Jagielski XRenderComposite (Display   *dpy,
277*b1cdbd2cSJim Jagielski 		  int	    op,
278*b1cdbd2cSJim Jagielski 		  Picture   src,
279*b1cdbd2cSJim Jagielski 		  Picture   mask,
280*b1cdbd2cSJim Jagielski 		  Picture   dst,
281*b1cdbd2cSJim Jagielski 		  int	    src_x,
282*b1cdbd2cSJim Jagielski 		  int	    src_y,
283*b1cdbd2cSJim Jagielski 		  int	    mask_x,
284*b1cdbd2cSJim Jagielski 		  int	    mask_y,
285*b1cdbd2cSJim Jagielski 		  int	    dst_x,
286*b1cdbd2cSJim Jagielski 		  int	    dst_y,
287*b1cdbd2cSJim Jagielski 		  unsigned int	width,
288*b1cdbd2cSJim Jagielski 		  unsigned int	height);
289*b1cdbd2cSJim Jagielski 
290*b1cdbd2cSJim Jagielski GlyphSet
291*b1cdbd2cSJim Jagielski XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
292*b1cdbd2cSJim Jagielski 
293*b1cdbd2cSJim Jagielski GlyphSet
294*b1cdbd2cSJim Jagielski XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
295*b1cdbd2cSJim Jagielski 
296*b1cdbd2cSJim Jagielski void
297*b1cdbd2cSJim Jagielski XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
298*b1cdbd2cSJim Jagielski 
299*b1cdbd2cSJim Jagielski void
300*b1cdbd2cSJim Jagielski XRenderAddGlyphs (Display		*dpy,
301*b1cdbd2cSJim Jagielski 		  GlyphSet		glyphset,
302*b1cdbd2cSJim Jagielski 		  _Xconst Glyph		*gids,
303*b1cdbd2cSJim Jagielski 		  _Xconst XGlyphInfo	*glyphs,
304*b1cdbd2cSJim Jagielski 		  int			nglyphs,
305*b1cdbd2cSJim Jagielski 		  _Xconst char		*images,
306*b1cdbd2cSJim Jagielski 		  int			nbyte_images);
307*b1cdbd2cSJim Jagielski 
308*b1cdbd2cSJim Jagielski void
309*b1cdbd2cSJim Jagielski XRenderFreeGlyphs (Display	    *dpy,
310*b1cdbd2cSJim Jagielski 		   GlyphSet	    glyphset,
311*b1cdbd2cSJim Jagielski 		   _Xconst Glyph    *gids,
312*b1cdbd2cSJim Jagielski 		   int		    nglyphs);
313*b1cdbd2cSJim Jagielski 
314*b1cdbd2cSJim Jagielski void
315*b1cdbd2cSJim Jagielski XRenderCompositeString8 (Display		    *dpy,
316*b1cdbd2cSJim Jagielski 			 int			    op,
317*b1cdbd2cSJim Jagielski 			 Picture		    src,
318*b1cdbd2cSJim Jagielski 			 Picture		    dst,
319*b1cdbd2cSJim Jagielski 			 _Xconst XRenderPictFormat  *maskFormat,
320*b1cdbd2cSJim Jagielski 			 GlyphSet		    glyphset,
321*b1cdbd2cSJim Jagielski 			 int			    xSrc,
322*b1cdbd2cSJim Jagielski 			 int			    ySrc,
323*b1cdbd2cSJim Jagielski 			 int			    xDst,
324*b1cdbd2cSJim Jagielski 			 int			    yDst,
325*b1cdbd2cSJim Jagielski 			 _Xconst char		    *string,
326*b1cdbd2cSJim Jagielski 			 int			    nchar);
327*b1cdbd2cSJim Jagielski 
328*b1cdbd2cSJim Jagielski void
329*b1cdbd2cSJim Jagielski XRenderCompositeString16 (Display		    *dpy,
330*b1cdbd2cSJim Jagielski 			  int			    op,
331*b1cdbd2cSJim Jagielski 			  Picture		    src,
332*b1cdbd2cSJim Jagielski 			  Picture		    dst,
333*b1cdbd2cSJim Jagielski 			  _Xconst XRenderPictFormat *maskFormat,
334*b1cdbd2cSJim Jagielski 			  GlyphSet		    glyphset,
335*b1cdbd2cSJim Jagielski 			  int			    xSrc,
336*b1cdbd2cSJim Jagielski 			  int			    ySrc,
337*b1cdbd2cSJim Jagielski 			  int			    xDst,
338*b1cdbd2cSJim Jagielski 			  int			    yDst,
339*b1cdbd2cSJim Jagielski 			  _Xconst unsigned short    *string,
340*b1cdbd2cSJim Jagielski 			  int			    nchar);
341*b1cdbd2cSJim Jagielski 
342*b1cdbd2cSJim Jagielski void
343*b1cdbd2cSJim Jagielski XRenderCompositeString32 (Display		    *dpy,
344*b1cdbd2cSJim Jagielski 			  int			    op,
345*b1cdbd2cSJim Jagielski 			  Picture		    src,
346*b1cdbd2cSJim Jagielski 			  Picture		    dst,
347*b1cdbd2cSJim Jagielski 			  _Xconst XRenderPictFormat *maskFormat,
348*b1cdbd2cSJim Jagielski 			  GlyphSet		    glyphset,
349*b1cdbd2cSJim Jagielski 			  int			    xSrc,
350*b1cdbd2cSJim Jagielski 			  int			    ySrc,
351*b1cdbd2cSJim Jagielski 			  int			    xDst,
352*b1cdbd2cSJim Jagielski 			  int			    yDst,
353*b1cdbd2cSJim Jagielski 			  _Xconst unsigned int	    *string,
354*b1cdbd2cSJim Jagielski 			  int			    nchar);
355*b1cdbd2cSJim Jagielski 
356*b1cdbd2cSJim Jagielski void
357*b1cdbd2cSJim Jagielski XRenderCompositeText8 (Display			    *dpy,
358*b1cdbd2cSJim Jagielski 		       int			    op,
359*b1cdbd2cSJim Jagielski 		       Picture			    src,
360*b1cdbd2cSJim Jagielski 		       Picture			    dst,
361*b1cdbd2cSJim Jagielski 		       _Xconst XRenderPictFormat    *maskFormat,
362*b1cdbd2cSJim Jagielski 		       int			    xSrc,
363*b1cdbd2cSJim Jagielski 		       int			    ySrc,
364*b1cdbd2cSJim Jagielski 		       int			    xDst,
365*b1cdbd2cSJim Jagielski 		       int			    yDst,
366*b1cdbd2cSJim Jagielski 		       _Xconst XGlyphElt8	    *elts,
367*b1cdbd2cSJim Jagielski 		       int			    nelt);
368*b1cdbd2cSJim Jagielski 
369*b1cdbd2cSJim Jagielski void
370*b1cdbd2cSJim Jagielski XRenderCompositeText16 (Display			    *dpy,
371*b1cdbd2cSJim Jagielski 			int			    op,
372*b1cdbd2cSJim Jagielski 			Picture			    src,
373*b1cdbd2cSJim Jagielski 			Picture			    dst,
374*b1cdbd2cSJim Jagielski 			_Xconst XRenderPictFormat   *maskFormat,
375*b1cdbd2cSJim Jagielski 			int			    xSrc,
376*b1cdbd2cSJim Jagielski 			int			    ySrc,
377*b1cdbd2cSJim Jagielski 			int			    xDst,
378*b1cdbd2cSJim Jagielski 			int			    yDst,
379*b1cdbd2cSJim Jagielski 			_Xconst XGlyphElt16	    *elts,
380*b1cdbd2cSJim Jagielski 			int			    nelt);
381*b1cdbd2cSJim Jagielski 
382*b1cdbd2cSJim Jagielski void
383*b1cdbd2cSJim Jagielski XRenderCompositeText32 (Display			    *dpy,
384*b1cdbd2cSJim Jagielski 			int			    op,
385*b1cdbd2cSJim Jagielski 			Picture			    src,
386*b1cdbd2cSJim Jagielski 			Picture			    dst,
387*b1cdbd2cSJim Jagielski 			_Xconst XRenderPictFormat   *maskFormat,
388*b1cdbd2cSJim Jagielski 			int			    xSrc,
389*b1cdbd2cSJim Jagielski 			int			    ySrc,
390*b1cdbd2cSJim Jagielski 			int			    xDst,
391*b1cdbd2cSJim Jagielski 			int			    yDst,
392*b1cdbd2cSJim Jagielski 			_Xconst XGlyphElt32	    *elts,
393*b1cdbd2cSJim Jagielski 			int			    nelt);
394*b1cdbd2cSJim Jagielski 
395*b1cdbd2cSJim Jagielski void
396*b1cdbd2cSJim Jagielski XRenderFillRectangle (Display		    *dpy,
397*b1cdbd2cSJim Jagielski 		      int		    op,
398*b1cdbd2cSJim Jagielski 		      Picture		    dst,
399*b1cdbd2cSJim Jagielski 		      _Xconst XRenderColor  *color,
400*b1cdbd2cSJim Jagielski 		      int		    x,
401*b1cdbd2cSJim Jagielski 		      int		    y,
402*b1cdbd2cSJim Jagielski 		      unsigned int	    width,
403*b1cdbd2cSJim Jagielski 		      unsigned int	    height);
404*b1cdbd2cSJim Jagielski 
405*b1cdbd2cSJim Jagielski void
406*b1cdbd2cSJim Jagielski XRenderFillRectangles (Display		    *dpy,
407*b1cdbd2cSJim Jagielski 		       int		    op,
408*b1cdbd2cSJim Jagielski 		       Picture		    dst,
409*b1cdbd2cSJim Jagielski 		       _Xconst XRenderColor *color,
410*b1cdbd2cSJim Jagielski 		       _Xconst XRectangle   *rectangles,
411*b1cdbd2cSJim Jagielski 		       int		    n_rects);
412*b1cdbd2cSJim Jagielski 
413*b1cdbd2cSJim Jagielski void
414*b1cdbd2cSJim Jagielski XRenderCompositeTrapezoids (Display		*dpy,
415*b1cdbd2cSJim Jagielski 			    int			op,
416*b1cdbd2cSJim Jagielski 			    Picture		src,
417*b1cdbd2cSJim Jagielski 			    Picture		dst,
418*b1cdbd2cSJim Jagielski 			    _Xconst XRenderPictFormat	*maskFormat,
419*b1cdbd2cSJim Jagielski 			    int			xSrc,
420*b1cdbd2cSJim Jagielski 			    int			ySrc,
421*b1cdbd2cSJim Jagielski 			    _Xconst XTrapezoid	*traps,
422*b1cdbd2cSJim Jagielski 			    int			ntrap);
423*b1cdbd2cSJim Jagielski 
424*b1cdbd2cSJim Jagielski void
425*b1cdbd2cSJim Jagielski XRenderCompositeTriangles (Display		*dpy,
426*b1cdbd2cSJim Jagielski 			   int			op,
427*b1cdbd2cSJim Jagielski 			   Picture		src,
428*b1cdbd2cSJim Jagielski 			   Picture		dst,
429*b1cdbd2cSJim Jagielski 			    _Xconst XRenderPictFormat	*maskFormat,
430*b1cdbd2cSJim Jagielski 			   int			xSrc,
431*b1cdbd2cSJim Jagielski 			   int			ySrc,
432*b1cdbd2cSJim Jagielski 			   _Xconst XTriangle	*triangles,
433*b1cdbd2cSJim Jagielski 			   int			ntriangle);
434*b1cdbd2cSJim Jagielski 
435*b1cdbd2cSJim Jagielski void
436*b1cdbd2cSJim Jagielski XRenderCompositeTriStrip (Display		*dpy,
437*b1cdbd2cSJim Jagielski 			  int			op,
438*b1cdbd2cSJim Jagielski 			  Picture		src,
439*b1cdbd2cSJim Jagielski 			  Picture		dst,
440*b1cdbd2cSJim Jagielski 			    _Xconst XRenderPictFormat	*maskFormat,
441*b1cdbd2cSJim Jagielski 			  int			xSrc,
442*b1cdbd2cSJim Jagielski 			  int			ySrc,
443*b1cdbd2cSJim Jagielski 			  _Xconst XPointFixed	*points,
444*b1cdbd2cSJim Jagielski 			  int			npoint);
445*b1cdbd2cSJim Jagielski 
446*b1cdbd2cSJim Jagielski void
447*b1cdbd2cSJim Jagielski XRenderCompositeTriFan (Display			*dpy,
448*b1cdbd2cSJim Jagielski 			int			op,
449*b1cdbd2cSJim Jagielski 			Picture			src,
450*b1cdbd2cSJim Jagielski 			Picture			dst,
451*b1cdbd2cSJim Jagielski 			_Xconst XRenderPictFormat	*maskFormat,
452*b1cdbd2cSJim Jagielski 			int			xSrc,
453*b1cdbd2cSJim Jagielski 			int			ySrc,
454*b1cdbd2cSJim Jagielski 			_Xconst XPointFixed	*points,
455*b1cdbd2cSJim Jagielski 			int			npoint);
456*b1cdbd2cSJim Jagielski 
457*b1cdbd2cSJim Jagielski void
458*b1cdbd2cSJim Jagielski XRenderCompositeDoublePoly (Display		    *dpy,
459*b1cdbd2cSJim Jagielski 			    int			    op,
460*b1cdbd2cSJim Jagielski 			    Picture		    src,
461*b1cdbd2cSJim Jagielski 			    Picture		    dst,
462*b1cdbd2cSJim Jagielski 			    _Xconst XRenderPictFormat	*maskFormat,
463*b1cdbd2cSJim Jagielski 			    int			    xSrc,
464*b1cdbd2cSJim Jagielski 			    int			    ySrc,
465*b1cdbd2cSJim Jagielski 			    int			    xDst,
466*b1cdbd2cSJim Jagielski 			    int			    yDst,
467*b1cdbd2cSJim Jagielski 			    _Xconst XPointDouble    *fpoints,
468*b1cdbd2cSJim Jagielski 			    int			    npoints,
469*b1cdbd2cSJim Jagielski 			    int			    winding);
470*b1cdbd2cSJim Jagielski Status
471*b1cdbd2cSJim Jagielski XRenderParseColor(Display	*dpy,
472*b1cdbd2cSJim Jagielski 		  char		*spec,
473*b1cdbd2cSJim Jagielski 		  XRenderColor	*def);
474*b1cdbd2cSJim Jagielski 
475*b1cdbd2cSJim Jagielski Cursor
476*b1cdbd2cSJim Jagielski XRenderCreateCursor (Display	    *dpy,
477*b1cdbd2cSJim Jagielski 		     Picture	    source,
478*b1cdbd2cSJim Jagielski 		     unsigned int   x,
479*b1cdbd2cSJim Jagielski 		     unsigned int   y);
480*b1cdbd2cSJim Jagielski 
481*b1cdbd2cSJim Jagielski XFilters *
482*b1cdbd2cSJim Jagielski XRenderQueryFilters (Display *dpy, Drawable drawable);
483*b1cdbd2cSJim Jagielski 
484*b1cdbd2cSJim Jagielski void
485*b1cdbd2cSJim Jagielski XRenderSetPictureFilter (Display    *dpy,
486*b1cdbd2cSJim Jagielski 			 Picture    picture,
487*b1cdbd2cSJim Jagielski 			 const char *filter,
488*b1cdbd2cSJim Jagielski 			 XFixed	    *params,
489*b1cdbd2cSJim Jagielski 			 int	    nparams);
490*b1cdbd2cSJim Jagielski 
491*b1cdbd2cSJim Jagielski Cursor
492*b1cdbd2cSJim Jagielski XRenderCreateAnimCursor (Display	*dpy,
493*b1cdbd2cSJim Jagielski 			 int		ncursor,
494*b1cdbd2cSJim Jagielski 			 XAnimCursor	*cursors);
495*b1cdbd2cSJim Jagielski 
496*b1cdbd2cSJim Jagielski 
497*b1cdbd2cSJim Jagielski void
498*b1cdbd2cSJim Jagielski XRenderAddTraps (Display	    *dpy,
499*b1cdbd2cSJim Jagielski 		 Picture	    picture,
500*b1cdbd2cSJim Jagielski 		 int		    xOff,
501*b1cdbd2cSJim Jagielski 		 int		    yOff,
502*b1cdbd2cSJim Jagielski 		 _Xconst XTrap	    *traps,
503*b1cdbd2cSJim Jagielski 		 int		    ntrap);
504*b1cdbd2cSJim Jagielski 
505*b1cdbd2cSJim Jagielski Picture XRenderCreateSolidFill (Display *dpy,
506*b1cdbd2cSJim Jagielski                                 const XRenderColor *color);
507*b1cdbd2cSJim Jagielski 
508*b1cdbd2cSJim Jagielski Picture XRenderCreateLinearGradient (Display *dpy,
509*b1cdbd2cSJim Jagielski                                      const XLinearGradient *gradient,
510*b1cdbd2cSJim Jagielski                                      const XFixed *stops,
511*b1cdbd2cSJim Jagielski                                      const XRenderColor *colors,
512*b1cdbd2cSJim Jagielski                                      int nstops);
513*b1cdbd2cSJim Jagielski 
514*b1cdbd2cSJim Jagielski Picture XRenderCreateRadialGradient (Display *dpy,
515*b1cdbd2cSJim Jagielski                                      const XRadialGradient *gradient,
516*b1cdbd2cSJim Jagielski                                      const XFixed *stops,
517*b1cdbd2cSJim Jagielski                                      const XRenderColor *colors,
518*b1cdbd2cSJim Jagielski                                      int nstops);
519*b1cdbd2cSJim Jagielski 
520*b1cdbd2cSJim Jagielski Picture XRenderCreateConicalGradient (Display *dpy,
521*b1cdbd2cSJim Jagielski                                       const XConicalGradient *gradient,
522*b1cdbd2cSJim Jagielski                                       const XFixed *stops,
523*b1cdbd2cSJim Jagielski                                       const XRenderColor *colors,
524*b1cdbd2cSJim Jagielski                                       int nstops);
525*b1cdbd2cSJim Jagielski 
526*b1cdbd2cSJim Jagielski _XFUNCPROTOEND
527*b1cdbd2cSJim Jagielski 
528*b1cdbd2cSJim Jagielski #endif /* _XRENDER_H_ */
529