e14743d1 |
1 | /* |
2 | Copyright (c) 1999 XFree86 Inc |
3 | */ |
4 | /* $XFree86: xc/include/extensions/xf86dga.h,v 3.21 2001/08/01 00:44:36 tsi Exp $ */ |
5 | |
6 | #ifndef _XF86DGA_H_ |
7 | #define _XF86DGA_H_ |
8 | |
9 | #include <X11/Xfuncproto.h> |
10 | #include "xf86dga1.h" |
11 | #include "SDL_name.h" |
12 | |
13 | #define X_XDGAQueryVersion 0 |
14 | |
15 | /* 1 through 9 are in xf86dga1.h */ |
16 | |
17 | /* 10 and 11 are reserved to avoid conflicts with rogue DGA extensions */ |
18 | |
19 | #define X_XDGAQueryModes 12 |
20 | #define X_XDGASetMode 13 |
21 | #define X_XDGASetViewport 14 |
22 | #define X_XDGAInstallColormap 15 |
23 | #define X_XDGASelectInput 16 |
24 | #define X_XDGAFillRectangle 17 |
25 | #define X_XDGACopyArea 18 |
26 | #define X_XDGACopyTransparentArea 19 |
27 | #define X_XDGAGetViewportStatus 20 |
28 | #define X_XDGASync 21 |
29 | #define X_XDGAOpenFramebuffer 22 |
30 | #define X_XDGACloseFramebuffer 23 |
31 | #define X_XDGASetClientVersion 24 |
32 | #define X_XDGAChangePixmapMode 25 |
33 | #define X_XDGACreateColormap 26 |
34 | |
35 | |
36 | #define XDGAConcurrentAccess 0x00000001 |
37 | #define XDGASolidFillRect 0x00000002 |
38 | #define XDGABlitRect 0x00000004 |
39 | #define XDGABlitTransRect 0x00000008 |
40 | #define XDGAPixmap 0x00000010 |
41 | |
42 | #define XDGAInterlaced 0x00010000 |
43 | #define XDGADoublescan 0x00020000 |
44 | |
45 | #define XDGAFlipImmediate 0x00000001 |
46 | #define XDGAFlipRetrace 0x00000002 |
47 | |
48 | #define XDGANeedRoot 0x00000001 |
49 | |
50 | #define XF86DGANumberEvents 7 |
51 | |
52 | #define XDGAPixmapModeLarge 0 |
53 | #define XDGAPixmapModeSmall 1 |
54 | |
55 | #define XF86DGAClientNotLocal 0 |
56 | #define XF86DGANoDirectVideoMode 1 |
57 | #define XF86DGAScreenNotActive 2 |
58 | #define XF86DGADirectNotActivated 3 |
59 | #define XF86DGAOperationNotSupported 4 |
60 | #define XF86DGANumberErrors (XF86DGAOperationNotSupported + 1) |
61 | |
62 | |
63 | typedef struct { |
64 | int num; /* A unique identifier for the mode (num > 0) */ |
65 | char *name; /* name of mode given in the XF86Config */ |
66 | float verticalRefresh; |
67 | int flags; /* DGA_CONCURRENT_ACCESS, etc... */ |
68 | int imageWidth; /* linear accessible portion (pixels) */ |
69 | int imageHeight; |
70 | int pixmapWidth; /* Xlib accessible portion (pixels) */ |
71 | int pixmapHeight; /* both fields ignored if no concurrent access */ |
72 | int bytesPerScanline; |
73 | int byteOrder; /* MSBFirst, LSBFirst */ |
74 | int depth; |
75 | int bitsPerPixel; |
76 | unsigned long redMask; |
77 | unsigned long greenMask; |
78 | unsigned long blueMask; |
79 | short visualClass; |
80 | int viewportWidth; |
81 | int viewportHeight; |
82 | int xViewportStep; /* viewport position granularity */ |
83 | int yViewportStep; |
84 | int maxViewportX; /* max viewport origin */ |
85 | int maxViewportY; |
86 | int viewportFlags; /* types of page flipping possible */ |
87 | int reserved1; |
88 | int reserved2; |
89 | } SDL_NAME(XDGAMode); |
90 | |
91 | |
92 | typedef struct { |
93 | SDL_NAME(XDGAMode) mode; |
94 | unsigned char *data; |
95 | Pixmap pixmap; |
96 | } SDL_NAME(XDGADevice); |
97 | |
98 | |
99 | #ifndef _XF86DGA_SERVER_ |
100 | _XFUNCPROTOBEGIN |
101 | |
102 | typedef struct { |
103 | int type; |
104 | unsigned long serial; |
105 | Display *display; |
106 | int screen; |
107 | Time time; |
108 | unsigned int state; |
109 | unsigned int button; |
110 | } SDL_NAME(XDGAButtonEvent); |
111 | |
112 | typedef struct { |
113 | int type; |
114 | unsigned long serial; |
115 | Display *display; |
116 | int screen; |
117 | Time time; |
118 | unsigned int state; |
119 | unsigned int keycode; |
120 | } SDL_NAME(XDGAKeyEvent); |
121 | |
122 | typedef struct { |
123 | int type; |
124 | unsigned long serial; |
125 | Display *display; |
126 | int screen; |
127 | Time time; |
128 | unsigned int state; |
129 | int dx; |
130 | int dy; |
131 | } SDL_NAME(XDGAMotionEvent); |
132 | |
133 | typedef union { |
134 | int type; |
135 | SDL_NAME(XDGAButtonEvent) xbutton; |
136 | SDL_NAME(XDGAKeyEvent) xkey; |
137 | SDL_NAME(XDGAMotionEvent) xmotion; |
138 | long pad[24]; |
139 | } SDL_NAME(XDGAEvent); |
140 | |
141 | Bool SDL_NAME(XDGAQueryExtension)( |
142 | Display *dpy, |
143 | int *eventBase, |
144 | int *erroBase |
145 | ); |
146 | |
147 | Bool SDL_NAME(XDGAQueryVersion)( |
148 | Display *dpy, |
149 | int *majorVersion, |
150 | int *minorVersion |
151 | ); |
152 | |
153 | SDL_NAME(XDGAMode)* SDL_NAME(XDGAQueryModes)( |
154 | Display *dpy, |
155 | int screen, |
156 | int *num |
157 | ); |
158 | |
159 | SDL_NAME(XDGADevice)* SDL_NAME(XDGASetMode)( |
160 | Display *dpy, |
161 | int screen, |
162 | int mode |
163 | ); |
164 | |
165 | Bool SDL_NAME(XDGAOpenFramebuffer)( |
166 | Display *dpy, |
167 | int screen |
168 | ); |
169 | |
170 | void SDL_NAME(XDGACloseFramebuffer)( |
171 | Display *dpy, |
172 | int screen |
173 | ); |
174 | |
175 | void SDL_NAME(XDGASetViewport)( |
176 | Display *dpy, |
177 | int screen, |
178 | int x, |
179 | int y, |
180 | int flags |
181 | ); |
182 | |
183 | void SDL_NAME(XDGAInstallColormap)( |
184 | Display *dpy, |
185 | int screen, |
186 | Colormap cmap |
187 | ); |
188 | |
189 | Colormap SDL_NAME(XDGACreateColormap)( |
190 | Display *dpy, |
191 | int screen, |
192 | SDL_NAME(XDGADevice) *device, |
193 | int alloc |
194 | ); |
195 | |
196 | void SDL_NAME(XDGASelectInput)( |
197 | Display *dpy, |
198 | int screen, |
199 | long event_mask |
200 | ); |
201 | |
202 | void SDL_NAME(XDGAFillRectangle)( |
203 | Display *dpy, |
204 | int screen, |
205 | int x, |
206 | int y, |
207 | unsigned int width, |
208 | unsigned int height, |
209 | unsigned long color |
210 | ); |
211 | |
212 | |
213 | void SDL_NAME(XDGACopyArea)( |
214 | Display *dpy, |
215 | int screen, |
216 | int srcx, |
217 | int srcy, |
218 | unsigned int width, |
219 | unsigned int height, |
220 | int dstx, |
221 | int dsty |
222 | ); |
223 | |
224 | |
225 | void SDL_NAME(XDGACopyTransparentArea)( |
226 | Display *dpy, |
227 | int screen, |
228 | int srcx, |
229 | int srcy, |
230 | unsigned int width, |
231 | unsigned int height, |
232 | int dstx, |
233 | int dsty, |
234 | unsigned long key |
235 | ); |
236 | |
237 | int SDL_NAME(XDGAGetViewportStatus)( |
238 | Display *dpy, |
239 | int screen |
240 | ); |
241 | |
242 | void SDL_NAME(XDGASync)( |
243 | Display *dpy, |
244 | int screen |
245 | ); |
246 | |
247 | Bool SDL_NAME(XDGASetClientVersion)( |
248 | Display *dpy |
249 | ); |
250 | |
251 | void SDL_NAME(XDGAChangePixmapMode)( |
252 | Display *dpy, |
253 | int screen, |
254 | int *x, |
255 | int *y, |
256 | int mode |
257 | ); |
258 | |
259 | |
260 | void SDL_NAME(XDGAKeyEventToXKeyEvent)(SDL_NAME(XDGAKeyEvent)* dk, XKeyEvent* xk); |
261 | |
262 | |
263 | _XFUNCPROTOEND |
264 | #endif /* _XF86DGA_SERVER_ */ |
265 | #endif /* _XF86DGA_H_ */ |