1
2#ifndef __DGAPROC_H
3#define __DGAPROC_H
4
5#include <X11/Xproto.h>
6#include "pixmap.h"
7
8#define DGA_CONCURRENT_ACCESS	0x00000001
9#define DGA_FILL_RECT		0x00000002
10#define DGA_BLIT_RECT		0x00000004
11#define DGA_BLIT_RECT_TRANS	0x00000008
12#define DGA_PIXMAP_AVAILABLE	0x00000010
13
14#define DGA_INTERLACED		0x00010000
15#define DGA_DOUBLESCAN		0x00020000
16
17#define DGA_FLIP_IMMEDIATE	0x00000001
18#define DGA_FLIP_RETRACE	0x00000002
19
20#define DGA_COMPLETED		0x00000000
21#define DGA_PENDING		0x00000001
22
23#define DGA_NEED_ROOT		0x00000001
24
25typedef struct {
26   int num;		/* A unique identifier for the mode (num > 0) */
27   char *name;		/* name of mode given in the XF86Config */
28   int VSync_num;
29   int VSync_den;
30   int flags;		/* DGA_CONCURRENT_ACCESS, etc... */
31   int imageWidth;	/* linear accessible portion (pixels) */
32   int imageHeight;
33   int pixmapWidth;	/* Xlib accessible portion (pixels) */
34   int pixmapHeight;	/* both fields ignored if no concurrent access */
35   int bytesPerScanline;
36   int byteOrder;	/* MSBFirst, LSBFirst */
37   int depth;
38   int bitsPerPixel;
39   unsigned long red_mask;
40   unsigned long green_mask;
41   unsigned long blue_mask;
42   short visualClass;
43   int viewportWidth;
44   int viewportHeight;
45   int xViewportStep;	/* viewport position granularity */
46   int yViewportStep;
47   int maxViewportX;	/* max viewport origin */
48   int maxViewportY;
49   int viewportFlags;	/* types of page flipping possible */
50   int offset;
51   int reserved1;
52   int reserved2;
53} XDGAModeRec, *XDGAModePtr;
54
55/* DDX interface */
56
57extern _X_EXPORT int
58DGASetMode(
59   int Index,
60   int num,
61   XDGAModePtr mode,
62   PixmapPtr *pPix
63);
64
65extern _X_EXPORT void
66DGASetInputMode(
67   int Index,
68   Bool keyboard,
69   Bool mouse
70);
71
72extern _X_EXPORT void
73DGASelectInput(
74   int Index,
75   ClientPtr client,
76   long mask
77);
78
79extern _X_EXPORT Bool DGAAvailable(int Index);
80extern _X_EXPORT Bool DGAActive(int Index);
81extern _X_EXPORT void DGAShutdown(void);
82extern _X_EXPORT void DGAInstallCmap(ColormapPtr cmap);
83extern _X_EXPORT int DGAGetViewportStatus(int Index);
84extern _X_EXPORT int DGASync(int Index);
85
86extern _X_EXPORT int
87DGAFillRect(
88   int Index,
89   int x, int y, int w, int h,
90   unsigned long color
91);
92
93extern _X_EXPORT int
94DGABlitRect(
95   int Index,
96   int srcx, int srcy,
97   int w, int h,
98   int dstx, int dsty
99);
100
101extern _X_EXPORT int
102DGABlitTransRect(
103   int Index,
104   int srcx, int srcy,
105   int w, int h,
106   int dstx, int dsty,
107   unsigned long color
108);
109
110extern _X_EXPORT int
111DGASetViewport(
112   int Index,
113   int x, int y,
114   int mode
115);
116
117extern _X_EXPORT int DGAGetModes(int Index);
118extern _X_EXPORT int DGAGetOldDGAMode(int Index);
119
120extern _X_EXPORT int DGAGetModeInfo(int Index, XDGAModePtr mode, int num);
121
122extern _X_EXPORT Bool DGAVTSwitch(void);
123extern _X_EXPORT Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, int button,
124                         int is_down);
125extern _X_EXPORT Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy);
126extern _X_EXPORT Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, int key_code, int is_down);
127
128extern _X_EXPORT Bool DGAOpenFramebuffer(int Index, char **name, unsigned char **mem,
129			int *size, int *offset, int *flags);
130extern _X_EXPORT void DGACloseFramebuffer(int Index);
131extern _X_EXPORT Bool DGAChangePixmapMode(int Index, int *x, int *y, int mode);
132extern _X_EXPORT int DGACreateColormap(int Index, ClientPtr client, int id, int mode,
133			int alloc);
134
135extern _X_EXPORT unsigned char DGAReqCode;
136extern _X_EXPORT int DGAErrorBase;
137extern _X_EXPORT int DGAEventBase;
138extern _X_EXPORT int *XDGAEventBase;
139
140
141
142#endif /* __DGAPROC_H */
143