1*4882a593Smuzhiyun 2*4882a593Smuzhiyun #ifndef __DGAPROC_H 3*4882a593Smuzhiyun #define __DGAPROC_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <X11/Xproto.h> 6*4882a593Smuzhiyun #include "pixmap.h" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define DGA_CONCURRENT_ACCESS 0x00000001 9*4882a593Smuzhiyun #define DGA_FILL_RECT 0x00000002 10*4882a593Smuzhiyun #define DGA_BLIT_RECT 0x00000004 11*4882a593Smuzhiyun #define DGA_BLIT_RECT_TRANS 0x00000008 12*4882a593Smuzhiyun #define DGA_PIXMAP_AVAILABLE 0x00000010 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define DGA_INTERLACED 0x00010000 15*4882a593Smuzhiyun #define DGA_DOUBLESCAN 0x00020000 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define DGA_FLIP_IMMEDIATE 0x00000001 18*4882a593Smuzhiyun #define DGA_FLIP_RETRACE 0x00000002 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define DGA_COMPLETED 0x00000000 21*4882a593Smuzhiyun #define DGA_PENDING 0x00000001 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #define DGA_NEED_ROOT 0x00000001 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun typedef struct { 26*4882a593Smuzhiyun int num; /* A unique identifier for the mode (num > 0) */ 27*4882a593Smuzhiyun const char *name; /* name of mode given in the XF86Config */ 28*4882a593Smuzhiyun int VSync_num; 29*4882a593Smuzhiyun int VSync_den; 30*4882a593Smuzhiyun int flags; /* DGA_CONCURRENT_ACCESS, etc... */ 31*4882a593Smuzhiyun int imageWidth; /* linear accessible portion (pixels) */ 32*4882a593Smuzhiyun int imageHeight; 33*4882a593Smuzhiyun int pixmapWidth; /* Xlib accessible portion (pixels) */ 34*4882a593Smuzhiyun int pixmapHeight; /* both fields ignored if no concurrent access */ 35*4882a593Smuzhiyun int bytesPerScanline; 36*4882a593Smuzhiyun int byteOrder; /* MSBFirst, LSBFirst */ 37*4882a593Smuzhiyun int depth; 38*4882a593Smuzhiyun int bitsPerPixel; 39*4882a593Smuzhiyun unsigned long red_mask; 40*4882a593Smuzhiyun unsigned long green_mask; 41*4882a593Smuzhiyun unsigned long blue_mask; 42*4882a593Smuzhiyun short visualClass; 43*4882a593Smuzhiyun int viewportWidth; 44*4882a593Smuzhiyun int viewportHeight; 45*4882a593Smuzhiyun int xViewportStep; /* viewport position granularity */ 46*4882a593Smuzhiyun int yViewportStep; 47*4882a593Smuzhiyun int maxViewportX; /* max viewport origin */ 48*4882a593Smuzhiyun int maxViewportY; 49*4882a593Smuzhiyun int viewportFlags; /* types of page flipping possible */ 50*4882a593Smuzhiyun int offset; 51*4882a593Smuzhiyun int reserved1; 52*4882a593Smuzhiyun int reserved2; 53*4882a593Smuzhiyun } XDGAModeRec, *XDGAModePtr; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun /* DDX interface */ 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun extern Bool DGAScreenAvailable(ScreenPtr pScreen); 58*4882a593Smuzhiyun extern Bool DGAActive(int Index); 59*4882a593Smuzhiyun extern void DGAShutdown(void); 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun extern Bool DGAVTSwitch(void); 62*4882a593Smuzhiyun extern Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, 63*4882a593Smuzhiyun int button, int is_down); 64*4882a593Smuzhiyun extern Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy); 65*4882a593Smuzhiyun extern Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, 66*4882a593Smuzhiyun int key_code, int is_down); 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #endif /* __DGAPROC_H */ 69