1 /********************************************************************/
2 /*                                                                  */
3 /*  x11_rend.h    X11 xRender extension interfaces used by Seed7.   */
4 /*  Copyright (C) 1989 - 2021  Thomas Mertes                        */
5 /*                                                                  */
6 /*  This file is part of the Seed7 Runtime Library.                 */
7 /*                                                                  */
8 /*  The Seed7 Runtime Library is free software; you can             */
9 /*  redistribute it and/or modify it under the terms of the GNU     */
10 /*  Lesser General Public License as published by the Free Software */
11 /*  Foundation; either version 2.1 of the License, or (at your      */
12 /*  option) any later version.                                      */
13 /*                                                                  */
14 /*  The Seed7 Runtime Library is distributed in the hope that it    */
15 /*  will be useful, but WITHOUT ANY WARRANTY; without even the      */
16 /*  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
17 /*  PURPOSE.  See the GNU Lesser General Public License for more    */
18 /*  details.                                                        */
19 /*                                                                  */
20 /*  You should have received a copy of the GNU Lesser General       */
21 /*  Public License along with this program; if not, write to the    */
22 /*  Free Software Foundation, Inc., 51 Franklin Street,             */
23 /*  Fifth Floor, Boston, MA  02110-1301, USA.                       */
24 /*                                                                  */
25 /*  Module: Seed7 Runtime Library                                   */
26 /*  File: seed7/src/x11_x.h                                         */
27 /*  Changes: 2019  Thomas Mertes                                    */
28 /*  Content: X11 interfaces used by Seed7.                          */
29 /*                                                                  */
30 /********************************************************************/
31 
32 #define PictOpOver  3
33 
34 #define CPSubwindowMode    (1 << 8)
35 
36 #define XDoubleToFixed(f)    ((XFixed) ((f) * 65536))
37 
38 typedef struct { int dumme; } XRenderPictFormat;
39 
40 typedef XID Picture;
41 
42 typedef int XFixed;
43 
44 typedef struct {
45     XFixed matrix[3][3];
46   } XTransform;
47 
48 typedef struct {
49     int     repeat;
50     Picture alpha_map;
51     int     alpha_x_origin;
52     int     alpha_y_origin;
53     int     clip_x_origin;
54     int     clip_y_origin;
55     Pixmap  clip_mask;
56     Bool    graphics_exposures;
57     int     subwindow_mode;
58     int     poly_edge;
59     int     poly_mode;
60     Atom    dither;
61     Bool    component_alpha;
62 } XRenderPictureAttributes;
63 
64 
65 extern void XRenderComposite (Display *display, int op, Picture src,
66                               Picture mask, Picture dst, int src_x, int src_y,
67                               int mask_x, int mask_y, int dst_x, int dst_y,
68                               unsigned int width, unsigned int height);
69 extern Picture XRenderCreatePicture (Display *display,
70                                      Drawable drawable,
71                                      const XRenderPictFormat *format,
72                                      unsigned long valuemask,
73                                      const XRenderPictureAttributes *attributes);
74 extern XRenderPictFormat *XRenderFindVisualFormat (Display *display,
75                                                    const Visual *visual);
76 extern void XRenderFreePicture (Display *display, Picture picture);
77 extern void XRenderSetPictureTransform (Display *display,
78                                         Picture picture,
79                                         XTransform *transform);
80