summaryrefslogtreecommitdiff
path: root/hw/xfree86/dixmods/extmod/dgaproc.h
blob: f4d3fe45ba0de49747d2edd5eea6b7bf591b515a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

#ifndef __DGAPROC_H
#define __DGAPROC_H

#include <X11/Xproto.h>
#include "pixmap.h"

#define DGA_CONCURRENT_ACCESS	0x00000001
#define DGA_FILL_RECT		0x00000002
#define DGA_BLIT_RECT		0x00000004
#define DGA_BLIT_RECT_TRANS	0x00000008
#define DGA_PIXMAP_AVAILABLE	0x00000010

#define DGA_INTERLACED		0x00010000
#define DGA_DOUBLESCAN		0x00020000

#define DGA_FLIP_IMMEDIATE	0x00000001
#define DGA_FLIP_RETRACE	0x00000002

#define DGA_COMPLETED		0x00000000
#define DGA_PENDING		0x00000001

#define DGA_NEED_ROOT		0x00000001

typedef struct {
   int num;		/* A unique identifier for the mode (num > 0) */
   char *name;		/* name of mode given in the XF86Config */
   int VSync_num;
   int VSync_den;
   int flags;		/* DGA_CONCURRENT_ACCESS, etc... */
   int imageWidth;	/* linear accessible portion (pixels) */
   int imageHeight;
   int pixmapWidth;	/* Xlib accessible portion (pixels) */
   int pixmapHeight;	/* both fields ignored if no concurrent access */
   int bytesPerScanline; 
   int byteOrder;	/* MSBFirst, LSBFirst */
   int depth;		
   int bitsPerPixel;
   unsigned long red_mask;
   unsigned long green_mask;
   unsigned long blue_mask;
   short visualClass;
   int viewportWidth;
   int viewportHeight;
   int xViewportStep;	/* viewport position granularity */
   int yViewportStep;
   int maxViewportX;	/* max viewport origin */
   int maxViewportY;
   int viewportFlags;	/* types of page flipping possible */
   int offset;
   int reserved1;
   int reserved2;
} XDGAModeRec, *XDGAModePtr;

/* DDX interface */

int
DGASetMode(
   int Index,
   int num,
   XDGAModePtr mode,
   PixmapPtr *pPix
);

void
DGASetInputMode(
   int Index,
   Bool keyboard,
   Bool mouse
);

void 
DGASelectInput(
   int Index,
   ClientPtr client,
   long mask
);

Bool DGAAvailable(int Index);
Bool DGAActive(int Index);
void DGAShutdown(void);
void DGAInstallCmap(ColormapPtr cmap);
int DGAGetViewportStatus(int Index); 
int DGASync(int Index);

int
DGAFillRect(
   int Index,
   int x, int y, int w, int h,
   unsigned long color
);

int
DGABlitRect(
   int Index,
   int srcx, int srcy, 
   int w, int h, 
   int dstx, int dsty
);

int
DGABlitTransRect(
   int Index,
   int srcx, int srcy, 
   int w, int h, 
   int dstx, int dsty,
   unsigned long color
);

int
DGASetViewport(
   int Index,
   int x, int y,
   int mode
); 

int DGAGetModes(int Index);
int DGAGetOldDGAMode(int Index);

int DGAGetModeInfo(int Index, XDGAModePtr mode, int num);

Bool DGAVTSwitch(void);
Bool DGAStealButtonEvent(DeviceIntPtr dev, int Index, int button, 
                         int is_down);
Bool DGAStealMotionEvent(DeviceIntPtr dev, int Index, int dx, int dy);
Bool DGAStealKeyEvent(DeviceIntPtr dev, int Index, int key_code, int is_down);
Bool DGAIsDgaEvent (xEvent *e);

Bool DGADeliverEvent (ScreenPtr pScreen, xEvent *e);
	    
Bool DGAOpenFramebuffer(int Index, char **name, unsigned char **mem, 
			int *size, int *offset, int *flags);
void DGACloseFramebuffer(int Index);
Bool DGAChangePixmapMode(int Index, int *x, int *y, int mode);
int DGACreateColormap(int Index, ClientPtr client, int id, int mode, 
			int alloc);

extern unsigned char DGAReqCode;
extern int DGAErrorBase;
extern int DGAEventBase;
extern int *XDGAEventBase;



#endif /* __DGAPROC_H */