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