265 lines
5.0 KiB
C
265 lines
5.0 KiB
C
|
/*
|
||
|
Copyright (c) 1999 XFree86 Inc
|
||
|
*/
|
||
|
/* $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ */
|
||
|
|
||
|
#ifndef _XF86DGA_H_
|
||
|
#define _XF86DGA_H_
|
||
|
|
||
|
#include <X11/Xfuncproto.h>
|
||
|
#include <X11/extensions/xf86dga1.h>
|
||
|
|
||
|
#define X_XDGAQueryVersion 0
|
||
|
|
||
|
/* 1 through 9 are in xf86dga1.h */
|
||
|
|
||
|
/* 10 and 11 are reserved to avoid conflicts with rogue DGA extensions */
|
||
|
|
||
|
#define X_XDGAQueryModes 12
|
||
|
#define X_XDGASetMode 13
|
||
|
#define X_XDGASetViewport 14
|
||
|
#define X_XDGAInstallColormap 15
|
||
|
#define X_XDGASelectInput 16
|
||
|
#define X_XDGAFillRectangle 17
|
||
|
#define X_XDGACopyArea 18
|
||
|
#define X_XDGACopyTransparentArea 19
|
||
|
#define X_XDGAGetViewportStatus 20
|
||
|
#define X_XDGASync 21
|
||
|
#define X_XDGAOpenFramebuffer 22
|
||
|
#define X_XDGACloseFramebuffer 23
|
||
|
#define X_XDGASetClientVersion 24
|
||
|
#define X_XDGAChangePixmapMode 25
|
||
|
#define X_XDGACreateColormap 26
|
||
|
|
||
|
|
||
|
#define XDGAConcurrentAccess 0x00000001
|
||
|
#define XDGASolidFillRect 0x00000002
|
||
|
#define XDGABlitRect 0x00000004
|
||
|
#define XDGABlitTransRect 0x00000008
|
||
|
#define XDGAPixmap 0x00000010
|
||
|
|
||
|
#define XDGAInterlaced 0x00010000
|
||
|
#define XDGADoublescan 0x00020000
|
||
|
|
||
|
#define XDGAFlipImmediate 0x00000001
|
||
|
#define XDGAFlipRetrace 0x00000002
|
||
|
|
||
|
#define XDGANeedRoot 0x00000001
|
||
|
|
||
|
#define XF86DGANumberEvents 7
|
||
|
|
||
|
#define XDGAPixmapModeLarge 0
|
||
|
#define XDGAPixmapModeSmall 1
|
||
|
|
||
|
#define XF86DGAClientNotLocal 0
|
||
|
#define XF86DGANoDirectVideoMode 1
|
||
|
#define XF86DGAScreenNotActive 2
|
||
|
#define XF86DGADirectNotActivated 3
|
||
|
#define XF86DGAOperationNotSupported 4
|
||
|
#define XF86DGANumberErrors (XF86DGAOperationNotSupported + 1)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
int num; /* A unique identifier for the mode (num > 0) */
|
||
|
char *name; /* name of mode given in the XF86Config */
|
||
|
float verticalRefresh;
|
||
|
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 redMask;
|
||
|
unsigned long greenMask;
|
||
|
unsigned long blueMask;
|
||
|
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 reserved1;
|
||
|
int reserved2;
|
||
|
} XDGAMode;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
XDGAMode mode;
|
||
|
unsigned char *data;
|
||
|
Pixmap pixmap;
|
||
|
} XDGADevice;
|
||
|
|
||
|
|
||
|
#ifndef _XF86DGA_SERVER_
|
||
|
_XFUNCPROTOBEGIN
|
||
|
|
||
|
typedef struct {
|
||
|
int type;
|
||
|
unsigned long serial;
|
||
|
Display *display;
|
||
|
int screen;
|
||
|
Time time;
|
||
|
unsigned int state;
|
||
|
unsigned int button;
|
||
|
} XDGAButtonEvent;
|
||
|
|
||
|
typedef struct {
|
||
|
int type;
|
||
|
unsigned long serial;
|
||
|
Display *display;
|
||
|
int screen;
|
||
|
Time time;
|
||
|
unsigned int state;
|
||
|
unsigned int keycode;
|
||
|
} XDGAKeyEvent;
|
||
|
|
||
|
typedef struct {
|
||
|
int type;
|
||
|
unsigned long serial;
|
||
|
Display *display;
|
||
|
int screen;
|
||
|
Time time;
|
||
|
unsigned int state;
|
||
|
int dx;
|
||
|
int dy;
|
||
|
} XDGAMotionEvent;
|
||
|
|
||
|
typedef union {
|
||
|
int type;
|
||
|
XDGAButtonEvent xbutton;
|
||
|
XDGAKeyEvent xkey;
|
||
|
XDGAMotionEvent xmotion;
|
||
|
long pad[24];
|
||
|
} XDGAEvent;
|
||
|
|
||
|
Bool XDGAQueryExtension(
|
||
|
Display *dpy,
|
||
|
int *eventBase,
|
||
|
int *erroBase
|
||
|
);
|
||
|
|
||
|
Bool XDGAQueryVersion(
|
||
|
Display *dpy,
|
||
|
int *majorVersion,
|
||
|
int *minorVersion
|
||
|
);
|
||
|
|
||
|
XDGAMode* XDGAQueryModes(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int *num
|
||
|
);
|
||
|
|
||
|
XDGADevice* XDGASetMode(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int mode
|
||
|
);
|
||
|
|
||
|
Bool XDGAOpenFramebuffer(
|
||
|
Display *dpy,
|
||
|
int screen
|
||
|
);
|
||
|
|
||
|
void XDGACloseFramebuffer(
|
||
|
Display *dpy,
|
||
|
int screen
|
||
|
);
|
||
|
|
||
|
void XDGASetViewport(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int x,
|
||
|
int y,
|
||
|
int flags
|
||
|
);
|
||
|
|
||
|
void XDGAInstallColormap(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
Colormap cmap
|
||
|
);
|
||
|
|
||
|
Colormap XDGACreateColormap(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
XDGADevice *device,
|
||
|
int alloc
|
||
|
);
|
||
|
|
||
|
void XDGASelectInput(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
long event_mask
|
||
|
);
|
||
|
|
||
|
void XDGAFillRectangle(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int x,
|
||
|
int y,
|
||
|
unsigned int width,
|
||
|
unsigned int height,
|
||
|
unsigned long color
|
||
|
);
|
||
|
|
||
|
|
||
|
void XDGACopyArea(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int srcx,
|
||
|
int srcy,
|
||
|
unsigned int width,
|
||
|
unsigned int height,
|
||
|
int dstx,
|
||
|
int dsty
|
||
|
);
|
||
|
|
||
|
|
||
|
void XDGACopyTransparentArea(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int srcx,
|
||
|
int srcy,
|
||
|
unsigned int width,
|
||
|
unsigned int height,
|
||
|
int dstx,
|
||
|
int dsty,
|
||
|
unsigned long key
|
||
|
);
|
||
|
|
||
|
int XDGAGetViewportStatus(
|
||
|
Display *dpy,
|
||
|
int screen
|
||
|
);
|
||
|
|
||
|
void XDGASync(
|
||
|
Display *dpy,
|
||
|
int screen
|
||
|
);
|
||
|
|
||
|
Bool XDGASetClientVersion(
|
||
|
Display *dpy
|
||
|
);
|
||
|
|
||
|
void XDGAChangePixmapMode(
|
||
|
Display *dpy,
|
||
|
int screen,
|
||
|
int *x,
|
||
|
int *y,
|
||
|
int mode
|
||
|
);
|
||
|
|
||
|
|
||
|
void XDGAKeyEventToXKeyEvent(XDGAKeyEvent* dk, XKeyEvent* xk);
|
||
|
|
||
|
|
||
|
_XFUNCPROTOEND
|
||
|
#endif /* _XF86DGA_SERVER_ */
|
||
|
#endif /* _XF86DGA_H_ */
|