Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/linuxbsd_headers/X11/extensions/Xrender.h
9905 views
1
/*
2
*
3
* Copyright © 2000 SuSE, Inc.
4
*
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.
14
*
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.
21
*
22
* Author: Keith Packard, SuSE, Inc.
23
*/
24
25
#ifndef _XRENDER_H_
26
#define _XRENDER_H_
27
28
#include <X11/Xlib.h>
29
#include <X11/Xfuncproto.h>
30
#include <X11/Xosdefs.h>
31
#include <X11/Xutil.h>
32
33
#include <X11/extensions/render.h>
34
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;
45
46
typedef struct {
47
PictFormat id;
48
int type;
49
int depth;
50
XRenderDirectFormat direct;
51
Colormap colormap;
52
} XRenderPictFormat;
53
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)
66
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;
82
83
typedef struct {
84
unsigned short red;
85
unsigned short green;
86
unsigned short blue;
87
unsigned short alpha;
88
} XRenderColor;
89
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;
98
99
typedef struct _XGlyphElt8 {
100
GlyphSet glyphset;
101
_Xconst char *chars;
102
int nchars;
103
int xOff;
104
int yOff;
105
} XGlyphElt8;
106
107
typedef struct _XGlyphElt16 {
108
GlyphSet glyphset;
109
_Xconst unsigned short *chars;
110
int nchars;
111
int xOff;
112
int yOff;
113
} XGlyphElt16;
114
115
typedef struct _XGlyphElt32 {
116
GlyphSet glyphset;
117
_Xconst unsigned int *chars;
118
int nchars;
119
int xOff;
120
int yOff;
121
} XGlyphElt32;
122
123
typedef double XDouble;
124
125
typedef struct _XPointDouble {
126
XDouble x, y;
127
} XPointDouble;
128
129
#define XDoubleToFixed(f) ((XFixed) ((f) * 65536))
130
#define XFixedToDouble(f) (((XDouble) (f)) / 65536)
131
132
typedef int XFixed;
133
134
typedef struct _XPointFixed {
135
XFixed x, y;
136
} XPointFixed;
137
138
typedef struct _XLineFixed {
139
XPointFixed p1, p2;
140
} XLineFixed;
141
142
typedef struct _XTriangle {
143
XPointFixed p1, p2, p3;
144
} XTriangle;
145
146
typedef struct _XCircle {
147
XFixed x;
148
XFixed y;
149
XFixed radius;
150
} XCircle;
151
152
typedef struct _XTrapezoid {
153
XFixed top, bottom;
154
XLineFixed left, right;
155
} XTrapezoid;
156
157
typedef struct _XTransform {
158
XFixed matrix[3][3];
159
} XTransform;
160
161
typedef struct _XFilters {
162
int nfilter;
163
char **filter;
164
int nalias;
165
short *alias;
166
} XFilters;
167
168
typedef struct _XIndexValue {
169
unsigned long pixel;
170
unsigned short red, green, blue, alpha;
171
} XIndexValue;
172
173
typedef struct _XAnimCursor {
174
Cursor cursor;
175
unsigned long delay;
176
} XAnimCursor;
177
178
typedef struct _XSpanFix {
179
XFixed left, right, y;
180
} XSpanFix;
181
182
typedef struct _XTrap {
183
XSpanFix top, bottom;
184
} XTrap;
185
186
typedef struct _XLinearGradient {
187
XPointFixed p1;
188
XPointFixed p2;
189
} XLinearGradient;
190
191
typedef struct _XRadialGradient {
192
XCircle inner;
193
XCircle outer;
194
} XRadialGradient;
195
196
typedef struct _XConicalGradient {
197
XPointFixed center;
198
XFixed angle; /* in degrees */
199
} XConicalGradient;
200
201
_XFUNCPROTOBEGIN
202
203
Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
204
205
Status XRenderQueryVersion (Display *dpy,
206
int *major_versionp,
207
int *minor_versionp);
208
209
Status XRenderQueryFormats (Display *dpy);
210
211
int XRenderQuerySubpixelOrder (Display *dpy, int screen);
212
213
Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
214
215
XRenderPictFormat *
216
XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
217
218
XRenderPictFormat *
219
XRenderFindFormat (Display *dpy,
220
unsigned long mask,
221
_Xconst XRenderPictFormat *templ,
222
int count);
223
224
#define PictStandardARGB32 0
225
#define PictStandardRGB24 1
226
#define PictStandardA8 2
227
#define PictStandardA4 3
228
#define PictStandardA1 4
229
#define PictStandardNUM 5
230
231
XRenderPictFormat *
232
XRenderFindStandardFormat (Display *dpy,
233
int format);
234
235
XIndexValue *
236
XRenderQueryPictIndexValues(Display *dpy,
237
_Xconst XRenderPictFormat *format,
238
int *num);
239
240
Picture
241
XRenderCreatePicture (Display *dpy,
242
Drawable drawable,
243
_Xconst XRenderPictFormat *format,
244
unsigned long valuemask,
245
_Xconst XRenderPictureAttributes *attributes);
246
247
void
248
XRenderChangePicture (Display *dpy,
249
Picture picture,
250
unsigned long valuemask,
251
_Xconst XRenderPictureAttributes *attributes);
252
253
void
254
XRenderSetPictureClipRectangles (Display *dpy,
255
Picture picture,
256
int xOrigin,
257
int yOrigin,
258
_Xconst XRectangle *rects,
259
int n);
260
261
void
262
XRenderSetPictureClipRegion (Display *dpy,
263
Picture picture,
264
Region r);
265
266
void
267
XRenderSetPictureTransform (Display *dpy,
268
Picture picture,
269
XTransform *transform);
270
271
void
272
XRenderFreePicture (Display *dpy,
273
Picture picture);
274
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);
289
290
GlyphSet
291
XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
292
293
GlyphSet
294
XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
295
296
void
297
XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
298
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);
307
308
void
309
XRenderFreeGlyphs (Display *dpy,
310
GlyphSet glyphset,
311
_Xconst Glyph *gids,
312
int nglyphs);
313
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);
327
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);
341
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);
355
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);
368
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);
381
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);
394
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);
404
405
void
406
XRenderFillRectangles (Display *dpy,
407
int op,
408
Picture dst,
409
_Xconst XRenderColor *color,
410
_Xconst XRectangle *rectangles,
411
int n_rects);
412
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);
423
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);
434
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);
445
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);
456
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);
474
475
Cursor
476
XRenderCreateCursor (Display *dpy,
477
Picture source,
478
unsigned int x,
479
unsigned int y);
480
481
XFilters *
482
XRenderQueryFilters (Display *dpy, Drawable drawable);
483
484
void
485
XRenderSetPictureFilter (Display *dpy,
486
Picture picture,
487
const char *filter,
488
XFixed *params,
489
int nparams);
490
491
Cursor
492
XRenderCreateAnimCursor (Display *dpy,
493
int ncursor,
494
XAnimCursor *cursors);
495
496
497
void
498
XRenderAddTraps (Display *dpy,
499
Picture picture,
500
int xOff,
501
int yOff,
502
_Xconst XTrap *traps,
503
int ntrap);
504
505
Picture XRenderCreateSolidFill (Display *dpy,
506
const XRenderColor *color);
507
508
Picture XRenderCreateLinearGradient (Display *dpy,
509
const XLinearGradient *gradient,
510
const XFixed *stops,
511
const XRenderColor *colors,
512
int nstops);
513
514
Picture XRenderCreateRadialGradient (Display *dpy,
515
const XRadialGradient *gradient,
516
const XFixed *stops,
517
const XRenderColor *colors,
518
int nstops);
519
520
Picture XRenderCreateConicalGradient (Display *dpy,
521
const XConicalGradient *gradient,
522
const XFixed *stops,
523
const XRenderColor *colors,
524
int nstops);
525
526
_XFUNCPROTOEND
527
528
#endif /* _XRENDER_H_ */
529
530