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