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 63typedef 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 92typedef 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 102typedef 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 112typedef 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 122typedef 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 133typedef 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 141Bool SDL_NAME(XDGAQueryExtension)( 142 Display *dpy, 143 int *eventBase, 144 int *erroBase 145); 146 147Bool SDL_NAME(XDGAQueryVersion)( 148 Display *dpy, 149 int *majorVersion, 150 int *minorVersion 151); 152 153SDL_NAME(XDGAMode)* SDL_NAME(XDGAQueryModes)( 154 Display *dpy, 155 int screen, 156 int *num 157); 158 159SDL_NAME(XDGADevice)* SDL_NAME(XDGASetMode)( 160 Display *dpy, 161 int screen, 162 int mode 163); 164 165Bool SDL_NAME(XDGAOpenFramebuffer)( 166 Display *dpy, 167 int screen 168); 169 170void SDL_NAME(XDGACloseFramebuffer)( 171 Display *dpy, 172 int screen 173); 174 175void SDL_NAME(XDGASetViewport)( 176 Display *dpy, 177 int screen, 178 int x, 179 int y, 180 int flags 181); 182 183void SDL_NAME(XDGAInstallColormap)( 184 Display *dpy, 185 int screen, 186 Colormap cmap 187); 188 189Colormap SDL_NAME(XDGACreateColormap)( 190 Display *dpy, 191 int screen, 192 SDL_NAME(XDGADevice) *device, 193 int alloc 194); 195 196void SDL_NAME(XDGASelectInput)( 197 Display *dpy, 198 int screen, 199 long event_mask 200); 201 202void 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 213void 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 225void 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 237int SDL_NAME(XDGAGetViewportStatus)( 238 Display *dpy, 239 int screen 240); 241 242void SDL_NAME(XDGASync)( 243 Display *dpy, 244 int screen 245); 246 247Bool SDL_NAME(XDGASetClientVersion)( 248 Display *dpy 249); 250 251void SDL_NAME(XDGAChangePixmapMode)( 252 Display *dpy, 253 int screen, 254 int *x, 255 int *y, 256 int mode 257); 258 259 260void SDL_NAME(XDGAKeyEventToXKeyEvent)(SDL_NAME(XDGAKeyEvent)* dk, XKeyEvent* xk); 261 262 263_XFUNCPROTOEND 264#endif /* _XF86DGA_SERVER_ */ 265#endif /* _XF86DGA_H_ */ 266