xref: /AOO41X/main/x11_extensions/inc/renderproto.h (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*
2  * $XFree86: xc/include/extensions/renderproto.h,v 1.12 2002/09/26 02:56:48 keithp Exp $
3  *
4  * Copyright © 2000 SuSE, Inc.
5  *
6  * Permission to use, copy, modify, distribute, and sell this software and its
7  * documentation for any purpose is hereby granted without fee, provided that
8  * the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of SuSE not be used in advertising or
11  * publicity pertaining to distribution of the software without specific,
12  * written prior permission.  SuSE makes no representations about the
13  * suitability of this software for any purpose.  It is provided "as is"
14  * without express or implied warranty.
15  *
16  * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
18  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
21  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22  *
23  * Author:  Keith Packard, SuSE, Inc.
24  */
25 
26 #ifndef _XRENDERP_H_
27 #define _XRENDERP_H_
28 
29 #include <X11/Xmd.h>
30 #include <X11/extensions/render.h>
31 
32 #define Window CARD32
33 #define Drawable CARD32
34 #define Font CARD32
35 #define Pixmap CARD32
36 #define Cursor CARD32
37 #define Colormap CARD32
38 #define GContext CARD32
39 #define Atom CARD32
40 #define VisualID CARD32
41 #define Time CARD32
42 #define KeyCode CARD8
43 #define KeySym CARD32
44 
45 #define Picture     CARD32
46 #define PictFormat  CARD32
47 #define Fixed       INT32
48 #define Glyphset    CARD32
49 
50 /*
51  * data structures
52  */
53 
54 typedef struct {
55     CARD16  red B16;
56     CARD16  redMask B16;
57     CARD16  green B16;
58     CARD16  greenMask B16;
59     CARD16  blue B16;
60     CARD16  blueMask B16;
61     CARD16  alpha B16;
62     CARD16  alphaMask B16;
63 } xDirectFormat;
64 
65 #define sz_xDirectFormat    16
66 
67 typedef struct {
68     PictFormat  id B32;
69     CARD8   type;
70     CARD8   depth;
71     CARD16  pad1 B16;
72     xDirectFormat   direct;
73     Colormap    colormap;
74 } xPictFormInfo;
75 
76 #define sz_xPictFormInfo    28
77 
78 typedef struct {
79     VisualID    visual;
80     PictFormat  format;
81 } xPictVisual;
82 
83 #define sz_xPictVisual      8
84 
85 typedef struct {
86     CARD8   depth;
87     CARD8   pad1;
88     CARD16  nPictVisuals B16;
89     CARD32  pad2 B32;
90 } xPictDepth;
91 
92 #define sz_xPictDepth   8
93 
94 typedef struct {
95     CARD32  nDepth B32;
96     PictFormat  fallback B32;
97 } xPictScreen;
98 
99 #define sz_xPictScreen  8
100 
101 typedef struct {
102     CARD32  pixel B32;
103     CARD16  red B16;
104     CARD16  green B16;
105     CARD16  blue B16;
106     CARD16  alpha B16;
107 } xIndexValue;
108 
109 #define sz_xIndexValue  12
110 
111 typedef struct {
112     CARD16  red B16;
113     CARD16  green B16;
114     CARD16  blue B16;
115     CARD16  alpha B16;
116 } xRenderColor;
117 
118 #define sz_xRenderColor 8
119 
120 typedef struct {
121     Fixed   x B32;
122     Fixed   y B32;
123 } xPointFixed;
124 
125 #define sz_xPointFixed  8
126 
127 typedef struct {
128     xPointFixed p1;
129     xPointFixed p2;
130 } xLineFixed;
131 
132 #define sz_xLineFixed   16
133 
134 typedef struct {
135     xPointFixed p1, p2, p3;
136 } xTriangle;
137 
138 #define sz_xTriangle    24
139 
140 typedef struct {
141     Fixed   top B32;
142     Fixed   bottom B32;
143     xLineFixed  left;
144     xLineFixed  right;
145 } xTrapezoid;
146 
147 #define sz_xTrapezoid   40
148 
149 typedef struct {
150     CARD16  width B16;
151     CARD16  height B16;
152     INT16   x B16;
153     INT16   y B16;
154     INT16   xOff B16;
155     INT16   yOff B16;
156 } xGlyphInfo;
157 
158 #define sz_xGlyphInfo   12
159 
160 typedef struct {
161     CARD8   len;
162     CARD8   pad1;
163     CARD16  pad2;
164     INT16   deltax;
165     INT16   deltay;
166 } xGlyphElt;
167 
168 #define sz_xGlyphElt    8
169 
170 typedef struct {
171     Fixed   l, r, y;
172 } xSpanFix;
173 
174 #define sz_xSpanFix 12
175 
176 typedef struct {
177     xSpanFix    top, bot;
178 } xTrap;
179 
180 #define sz_xTrap    24
181 
182 /*
183  * requests and replies
184  */
185 typedef struct {
186     CARD8   reqType;
187     CARD8   renderReqType;
188     CARD16  length B16;
189     CARD32  majorVersion B32;
190     CARD32  minorVersion B32;
191 } xRenderQueryVersionReq;
192 
193 #define sz_xRenderQueryVersionReq   12
194 
195 typedef struct {
196     BYTE    type;   /* X_Reply */
197     BYTE    pad1;
198     CARD16  sequenceNumber B16;
199     CARD32  length B32;
200     CARD32  majorVersion B32;
201     CARD32  minorVersion B32;
202     CARD32  pad2 B32;
203     CARD32  pad3 B32;
204     CARD32  pad4 B32;
205     CARD32  pad5 B32;
206 } xRenderQueryVersionReply;
207 
208 #define sz_xRenderQueryVersionReply 32
209 
210 typedef struct {
211     CARD8   reqType;
212     CARD8   renderReqType;
213     CARD16  length B16;
214 } xRenderQueryPictFormatsReq;
215 
216 #define sz_xRenderQueryPictFormatsReq   4
217 
218 typedef struct {
219     BYTE    type;   /* X_Reply */
220     BYTE    pad1;
221     CARD16  sequenceNumber B16;
222     CARD32  length B32;
223     CARD32  numFormats B32;
224     CARD32  numScreens B32;
225     CARD32  numDepths B32;
226     CARD32  numVisuals B32;
227     CARD32  numSubpixel B32;        /* Version 0.6 */
228     CARD32  pad5 B32;
229 } xRenderQueryPictFormatsReply;
230 
231 #define sz_xRenderQueryPictFormatsReply 32
232 
233 typedef struct {
234     CARD8   reqType;
235     CARD8   renderReqType;
236     CARD16  length B16;
237     PictFormat  format B32;
238 } xRenderQueryPictIndexValuesReq;
239 
240 #define sz_xRenderQueryPictIndexValuesReq   8
241 
242 typedef struct {
243     BYTE    type;   /* X_Reply */
244     BYTE    pad1;
245     CARD16  sequenceNumber B16;
246     CARD32  length B32;
247     CARD32  numIndexValues;
248     CARD32  pad2 B32;
249     CARD32  pad3 B32;
250     CARD32  pad4 B32;
251     CARD32  pad5 B32;
252     CARD32  pad6 B32;
253 } xRenderQueryPictIndexValuesReply;
254 
255 #define sz_xRenderQueryPictIndexValuesReply 32
256 
257 typedef struct {
258     CARD8   reqType;
259     CARD8   renderReqType;
260     CARD16  length B16;
261     Picture pid B32;
262     Drawable    drawable B32;
263     PictFormat  format B32;
264     CARD32  mask B32;
265 } xRenderCreatePictureReq;
266 
267 #define sz_xRenderCreatePictureReq      20
268 
269 typedef struct {
270     CARD8   reqType;
271     CARD8   renderReqType;
272     CARD16  length B16;
273     Picture picture B32;
274     CARD32  mask B32;
275 } xRenderChangePictureReq;
276 
277 #define sz_xRenderChangePictureReq      12
278 
279 typedef struct {
280     CARD8       reqType;
281     CARD8       renderReqType;
282     CARD16      length B16;
283     Picture     picture B32;
284     INT16   xOrigin B16;
285     INT16   yOrigin B16;
286 } xRenderSetPictureClipRectanglesReq;
287 
288 #define sz_xRenderSetPictureClipRectanglesReq       12
289 
290 typedef struct {
291     CARD8       reqType;
292     CARD8       renderReqType;
293     CARD16      length B16;
294     Picture     picture B32;
295 } xRenderFreePictureReq;
296 
297 #define sz_xRenderFreePictureReq        8
298 
299 typedef struct {
300     CARD8       reqType;
301     CARD8       renderReqType;
302     CARD16      length B16;
303     CARD8   op;
304     CARD8   pad1;
305     CARD16  pad2 B16;
306     Picture src B32;
307     Picture mask B32;
308     Picture dst B32;
309     INT16   xSrc B16;
310     INT16   ySrc B16;
311     INT16   xMask B16;
312     INT16   yMask B16;
313     INT16   xDst B16;
314     INT16   yDst B16;
315     CARD16  width B16;
316     CARD16  height B16;
317 } xRenderCompositeReq;
318 
319 #define sz_xRenderCompositeReq          36
320 
321 typedef struct {
322     CARD8       reqType;
323     CARD8       renderReqType;
324     CARD16      length B16;
325     Picture src B32;
326     Picture dst B32;
327     CARD32  colorScale B32;
328     CARD32  alphaScale B32;
329     INT16   xSrc B16;
330     INT16   ySrc B16;
331     INT16   xDst B16;
332     INT16   yDst B16;
333     CARD16  width B16;
334     CARD16  height B16;
335 } xRenderScaleReq;
336 
337 #define sz_xRenderScaleReq              32
338 
339 typedef struct {
340     CARD8       reqType;
341     CARD8       renderReqType;
342     CARD16      length B16;
343     CARD8   op;
344     CARD8   pad1;
345     CARD16  pad2 B16;
346     Picture src B32;
347     Picture dst B32;
348     PictFormat  maskFormat B32;
349     INT16   xSrc B16;
350     INT16   ySrc B16;
351 } xRenderTrapezoidsReq;
352 
353 #define sz_xRenderTrapezoidsReq             24
354 
355 typedef struct {
356     CARD8       reqType;
357     CARD8       renderReqType;
358     CARD16      length B16;
359     CARD8   op;
360     CARD8   pad1;
361     CARD16  pad2 B16;
362     Picture src B32;
363     Picture dst B32;
364     PictFormat  maskFormat B32;
365     INT16   xSrc B16;
366     INT16   ySrc B16;
367 } xRenderTrianglesReq;
368 
369 #define sz_xRenderTrianglesReq              24
370 
371 typedef struct {
372     CARD8       reqType;
373     CARD8       renderReqType;
374     CARD16      length B16;
375     CARD8   op;
376     CARD8   pad1;
377     CARD16  pad2 B16;
378     Picture src B32;
379     Picture dst B32;
380     PictFormat  maskFormat B32;
381     INT16   xSrc B16;
382     INT16   ySrc B16;
383 } xRenderTriStripReq;
384 
385 #define sz_xRenderTriStripReq               24
386 
387 typedef struct {
388     CARD8       reqType;
389     CARD8       renderReqType;
390     CARD16      length B16;
391     CARD8   op;
392     CARD8   pad1;
393     CARD16  pad2 B16;
394     Picture src B32;
395     Picture dst B32;
396     PictFormat  maskFormat B32;
397     INT16   xSrc B16;
398     INT16   ySrc B16;
399 } xRenderTriFanReq;
400 
401 #define sz_xRenderTriFanReq             24
402 
403 typedef struct {
404     CARD8       reqType;
405     CARD8       renderReqType;
406     CARD16      length B16;
407     Glyphset    gsid B32;
408     PictFormat  format B32;
409 } xRenderCreateGlyphSetReq;
410 
411 #define sz_xRenderCreateGlyphSetReq         12
412 
413 typedef struct {
414     CARD8       reqType;
415     CARD8       renderReqType;
416     CARD16      length B16;
417     Glyphset    gsid B32;
418     Glyphset    existing B32;
419 } xRenderReferenceGlyphSetReq;
420 
421 #define sz_xRenderReferenceGlyphSetReq          24
422 
423 typedef struct {
424     CARD8       reqType;
425     CARD8       renderReqType;
426     CARD16      length B16;
427     Glyphset    glyphset B32;
428 } xRenderFreeGlyphSetReq;
429 
430 #define sz_xRenderFreeGlyphSetReq           8
431 
432 typedef struct {
433     CARD8       reqType;
434     CARD8       renderReqType;
435     CARD16      length B16;
436     Glyphset    glyphset B32;
437     CARD32  nglyphs;
438 } xRenderAddGlyphsReq;
439 
440 #define sz_xRenderAddGlyphsReq              12
441 
442 typedef struct {
443     CARD8       reqType;
444     CARD8       renderReqType;
445     CARD16      length B16;
446     Glyphset    glyphset B32;
447 } xRenderFreeGlyphsReq;
448 
449 #define sz_xRenderFreeGlyphsReq             8
450 
451 typedef struct {
452     CARD8       reqType;
453     CARD8       renderReqType;
454     CARD16      length B16;
455     CARD8   op;
456     CARD8   pad1;
457     CARD16  pad2 B16;
458     Picture src B32;
459     Picture dst B32;
460     PictFormat  maskFormat B32;
461     Glyphset    glyphset B32;
462     INT16   xSrc B16;
463     INT16   ySrc B16;
464 } xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
465 xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;
466 
467 #define sz_xRenderCompositeGlyphs8Req           28
468 #define sz_xRenderCompositeGlyphs16Req          28
469 #define sz_xRenderCompositeGlyphs32Req          28
470 
471 /* 0.1 and higher */
472 
473 typedef struct {
474     CARD8   reqType;
475     CARD8       renderReqType;
476     CARD16      length B16;
477     CARD8   op;
478     CARD8   pad1;
479     CARD16  pad2 B16;
480     Picture dst B32;
481     xRenderColor    color;
482 } xRenderFillRectanglesReq;
483 
484 #define sz_xRenderFillRectanglesReq         20
485 
486 /* 0.5 and higher */
487 
488 typedef struct {
489     CARD8   reqType;
490     CARD8   renderReqType;
491     CARD16  length B16;
492     Cursor  cid B32;
493     Picture src B32;
494     CARD16  x B16;
495     CARD16  y B16;
496 } xRenderCreateCursorReq;
497 
498 #define sz_xRenderCreateCursorReq           16
499 
500 /* 0.6 and higher */
501 
502 /*
503  * This can't use an array because 32-bit values may be in bitfields
504  */
505 typedef struct {
506     Fixed   matrix11 B32;
507     Fixed   matrix12 B32;
508     Fixed   matrix13 B32;
509     Fixed   matrix21 B32;
510     Fixed   matrix22 B32;
511     Fixed   matrix23 B32;
512     Fixed   matrix31 B32;
513     Fixed   matrix32 B32;
514     Fixed   matrix33 B32;
515 } xRenderTransform;
516 
517 #define sz_xRenderTransform 36
518 
519 typedef struct {
520     CARD8       reqType;
521     CARD8       renderReqType;
522     CARD16      length B16;
523     Picture     picture B32;
524     xRenderTransform    transform;
525 } xRenderSetPictureTransformReq;
526 
527 #define sz_xRenderSetPictureTransformReq        44
528 
529 typedef struct {
530     CARD8       reqType;
531     CARD8       renderReqType;
532     CARD16      length B16;
533     Drawable        drawable B32;
534 } xRenderQueryFiltersReq;
535 
536 #define sz_xRenderQueryFiltersReq           8
537 
538 typedef struct {
539     BYTE    type;   /* X_Reply */
540     BYTE    pad1;
541     CARD16  sequenceNumber B16;
542     CARD32  length B32;
543     CARD32  numAliases B32; /* LISTofCARD16 */
544     CARD32  numFilters B32; /* LISTofSTRING8 */
545     CARD32  pad2 B32;
546     CARD32  pad3 B32;
547     CARD32  pad4 B32;
548     CARD32  pad5 B32;
549 } xRenderQueryFiltersReply;
550 
551 #define sz_xRenderQueryFiltersReply         32
552 
553 typedef struct {
554     CARD8       reqType;
555     CARD8       renderReqType;
556     CARD16      length B16;
557     Picture     picture B32;
558     CARD16      nbytes B16; /* number of bytes in name */
559     CARD16      pad B16;
560 } xRenderSetPictureFilterReq;
561 
562 #define sz_xRenderSetPictureFilterReq           12
563 
564 /* 0.8 and higher */
565 
566 typedef struct {
567     Cursor      cursor B32;
568     CARD32      delay B32;
569 } xAnimCursorElt;
570 
571 #define sz_xAnimCursorElt               8
572 
573 typedef struct {
574     CARD8       reqType;
575     CARD8       renderReqType;
576     CARD16      length B16;
577     Cursor      cid B32;
578 } xRenderCreateAnimCursorReq;
579 
580 #define sz_xRenderCreateAnimCursorReq           8
581 
582 /* 0.9 and higher */
583 
584 typedef struct {
585     CARD8       reqType;
586     CARD8       renderReqType;
587     CARD16      length B16;
588     Picture     picture;
589     INT16       xOff B16;
590     INT16       yOff B16;
591 } xRenderAddTrapsReq;
592 
593 #define sz_xRenderAddTrapsReq               12
594 
595 /* 0.10 and higher */
596 
597 typedef struct {
598     CARD8   reqType;
599     CARD8   renderReqType;
600     CARD16  length B16;
601     Picture pid B32;
602     xRenderColor color;
603 } xRenderCreateSolidFillReq;
604 
605 #define sz_xRenderCreateSolidFillReq                 16
606 
607 typedef struct {
608     CARD8   reqType;
609     CARD8   renderReqType;
610     CARD16  length B16;
611     Picture pid B32;
612     xPointFixed p1;
613     xPointFixed p2;
614     CARD32      nStops;
615 } xRenderCreateLinearGradientReq;
616 
617 #define sz_xRenderCreateLinearGradientReq                 28
618 
619 typedef struct {
620     CARD8   reqType;
621     CARD8   renderReqType;
622     CARD16  length B16;
623     Picture pid B32;
624     xPointFixed inner;
625     xPointFixed outer;
626     Fixed       inner_radius;
627     Fixed       outer_radius;
628     CARD32      nStops;
629 } xRenderCreateRadialGradientReq;
630 
631 #define sz_xRenderCreateRadialGradientReq                 36
632 
633 typedef struct {
634     CARD8   reqType;
635     CARD8   renderReqType;
636     CARD16  length B16;
637     Picture pid B32;
638     xPointFixed center;
639     Fixed       angle; /* in degrees */
640     CARD32      nStops;
641 } xRenderCreateConicalGradientReq;
642 
643 #define sz_xRenderCreateConicalGradientReq                 24
644 
645 #undef Window
646 #undef Drawable
647 #undef Font
648 #undef Pixmap
649 #undef Cursor
650 #undef Colormap
651 #undef GContext
652 #undef Atom
653 #undef VisualID
654 #undef Time
655 #undef KeyCode
656 #undef KeySym
657 
658 #undef Picture
659 #undef PictFormat
660 #undef Fixed
661 #undef Glyphset
662 
663 #endif /* _XRENDERP_H_ */
664