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