xref: /OK3568_Linux_fs/external/xserver/hw/xfree86/common/dgaproc.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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