• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_ */
266