1 /*
2    Copyright (c) 1999  XFree86 Inc
3 */
4 
5 #ifndef _XF86DGA_H_
6 #define _XF86DGA_H_
7 
8 #include <X11/Xfuncproto.h>
9 #include <X11/extensions/xf86dgaconst.h>
10 #include <X11/extensions/xf86dga1.h>
11 
12 _XFUNCPROTOBEGIN
13 
14 typedef struct {
15    int type;
16    unsigned long serial;
17    Display *display;
18    int screen;
19    Time time;
20    unsigned int state;
21    unsigned int button;
22 } XDGAButtonEvent;
23 
24 typedef struct {
25    int type;
26    unsigned long serial;
27    Display *display;
28    int screen;
29    Time time;
30    unsigned int state;
31    unsigned int keycode;
32 } XDGAKeyEvent;
33 
34 typedef struct {
35    int type;
36    unsigned long serial;
37    Display *display;
38    int screen;
39    Time time;
40    unsigned int state;
41    int dx;
42    int dy;
43 } XDGAMotionEvent;
44 
45 typedef union {
46   int type;
47   XDGAButtonEvent xbutton;
48   XDGAKeyEvent	  xkey;
49   XDGAMotionEvent xmotion;
50   long		  pad[24];
51 } XDGAEvent;
52 
53 Bool XDGAQueryExtension(
54     Display 	*dpy,
55     int 	*eventBase,
56     int 	*erroBase
57 );
58 
59 Bool XDGAQueryVersion(
60     Display 	*dpy,
61     int 	*majorVersion,
62     int 	*minorVersion
63 );
64 
65 XDGAMode* XDGAQueryModes(
66     Display	*dpy,
67     int 	screen,
68     int		*num
69 );
70 
71 XDGADevice* XDGASetMode(
72     Display	*dpy,
73     int		screen,
74     int		mode
75 );
76 
77 Bool XDGAOpenFramebuffer(
78     Display	*dpy,
79     int 	screen
80 );
81 
82 void XDGACloseFramebuffer(
83     Display	*dpy,
84     int		screen
85 );
86 
87 void XDGASetViewport(
88     Display	*dpy,
89     int		screen,
90     int		x,
91     int		y,
92     int		flags
93 );
94 
95 void XDGAInstallColormap(
96     Display	*dpy,
97     int		screen,
98     Colormap	cmap
99 );
100 
101 Colormap XDGACreateColormap(
102     Display	*dpy,
103     int 	screen,
104     XDGADevice  *device,
105     int 	alloc
106 );
107 
108 void XDGASelectInput(
109     Display	*dpy,
110     int		screen,
111     long	event_mask
112 );
113 
114 void XDGAFillRectangle(
115     Display	*dpy,
116     int		screen,
117     int		x,
118     int		y,
119     unsigned int	width,
120     unsigned int	height,
121     unsigned long	color
122 );
123 
124 
125 void XDGACopyArea(
126     Display	*dpy,
127     int		screen,
128     int		srcx,
129     int		srcy,
130     unsigned int	width,
131     unsigned int	height,
132     int		dstx,
133     int		dsty
134 );
135 
136 
137 void XDGACopyTransparentArea(
138     Display	*dpy,
139     int		screen,
140     int		srcx,
141     int		srcy,
142     unsigned int	width,
143     unsigned int	height,
144     int		dstx,
145     int		dsty,
146     unsigned long key
147 );
148 
149 int XDGAGetViewportStatus(
150     Display	*dpy,
151     int		screen
152 );
153 
154 void XDGASync(
155     Display	*dpy,
156     int		screen
157 );
158 
159 Bool XDGASetClientVersion(
160     Display	*dpy
161 );
162 
163 void XDGAChangePixmapMode(
164     Display 	*dpy,
165     int		screen,
166     int		*x,
167     int		*y,
168     int		mode
169 );
170 
171 
172 void XDGAKeyEventToXKeyEvent(XDGAKeyEvent* dk, XKeyEvent* xk);
173 
174 
175 _XFUNCPROTOEND
176 #endif /* _XF86DGA_H_ */
177