+ Initial Implementation by Nikolay Nikolov

This commit is contained in:
michael 2005-03-17 08:53:50 +00:00
parent 336fa744b7
commit aa58ef7fe9
2 changed files with 402 additions and 0 deletions

View File

@ -0,0 +1,277 @@
{
Copyright (c) 1999 XFree86 Inc
}
{ $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ }
Unit xf86dga;
{$PACKRECORDS C}
Interface
Uses
ctypes, x, xlib;
Const
libXxf86dga='Xxf86dga';
Type
cfloat = Single;
{$INCLUDE xf86dga1.pp}
Const
X_XDGAQueryVersion = 0;
{ 1 through 9 are in xf86dga1.pp }
{ 10 and 11 are reserved to avoid conflicts with rogue DGA extensions }
X_XDGAQueryModes = 12;
X_XDGASetMode = 13;
X_XDGASetViewport = 14;
X_XDGAInstallColormap = 15;
X_XDGASelectInput = 16;
X_XDGAFillRectangle = 17;
X_XDGACopyArea = 18;
X_XDGACopyTransparentArea = 19;
X_XDGAGetViewportStatus = 20;
X_XDGASync = 21;
X_XDGAOpenFramebuffer = 22;
X_XDGACloseFramebuffer = 23;
X_XDGASetClientVersion = 24;
X_XDGAChangePixmapMode = 25;
X_XDGACreateColormap = 26;
XDGAConcurrentAccess = $00000001;
XDGASolidFillRect = $00000002;
XDGABlitRect = $00000004;
XDGABlitTransRect = $00000008;
XDGAPixmap = $00000010;
XDGAInterlaced = $00010000;
XDGADoublescan = $00020000;
XDGAFlipImmediate = $00000001;
XDGAFlipRetrace = $00000002;
XDGANeedRoot = $00000001;
XF86DGANumberEvents = 7;
XDGAPixmapModeLarge = 0;
XDGAPixmapModeSmall = 1;
XF86DGAClientNotLocal = 0;
XF86DGANoDirectVideoMode = 1;
XF86DGAScreenNotActive = 2;
XF86DGADirectNotActivated = 3;
XF86DGAOperationNotSupported = 4;
XF86DGANumberErrors = (XF86DGAOperationNotSupported + 1);
Type
PXDGAMode = ^TXDGAMode;
TXDGAMode = Record
num : cint; { A unique identifier for the mode (num > 0) }
name : PChar; { name of mode given in the XF86Config }
verticalRefresh : cfloat;
flags : cint; { DGA_CONCURRENT_ACCESS, etc... }
imageWidth : cint; { linear accessible portion (pixels) }
imageHeight : cint;
pixmapWidth : cint; { Xlib accessible portion (pixels) }
pixmapHeight : cint; { both fields ignored if no concurrent access }
bytesPerScanline : cint;
byteOrder : cint; { MSBFirst, LSBFirst }
depth : cint;
bitsPerPixel : cint;
redMask : culong;
greenMask : culong;
blueMask : culong;
visualClass : cshort;
viewportWidth : cint;
viewportHeight : cint;
xViewportStep : cint; { viewport position granularity }
yViewportStep : cint;
maxViewportX : cint; { max viewport origin }
maxViewportY : cint;
viewportFlags : cint; { types of page flipping possible }
reserved1 : cint;
reserved2 : cint;
End;
PXDGADevice = ^TXDGADevice;
TXDGADevice = Record
mode : TXDGAMode;
data : Pcuchar;
pixmap : TPixmap;
End;
PXDGAButtonEvent = ^TXDGAButtonEvent;
TXDGAButtonEvent = Record
_type : cint;
serial : culong;
display : PDisplay;
screen : cint;
time : TTime;
state : cuint;
button : cuint;
End;
PXDGAKeyEvent = ^TXDGAKeyEvent;
TXDGAKeyEvent = Record
_type : cint;
serial : culong;
display : PDisplay;
screen : cint;
time : TTime;
state : cuint;
keycode : cuint;
End;
PXDGAMotionEvent = ^TXDGAMotionEvent;
TXDGAMotionEvent = Record
_type : cint;
serial : culong;
display : PDisplay;
screen : cint;
time : TTime;
state : cuint;
dx : cint;
dy : cint;
End;
PXDGAEvent = ^TXDGAEvent;
TXDGAEvent = Record
Case LongInt Of
0 : (_type : cint);
1 : (xbutton : TXDGAButtonEvent);
2 : (xkey : TXDGAKeyEvent);
3 : (xmotion : TXDGAMotionEvent);
4 : (pad : Array[0..23] Of clong);
End;
Function XDGAQueryExtension(
dpy : PDisplay;
eventBase : Pcint;
erroBase : Pcint
) : TBool; CDecl; External libXxf86dga;
Function XDGAQueryVersion(
dpy : PDisplay;
majorVersion : Pcint;
minorVersion : Pcint
) : TBool; CDecl; External libXxf86dga;
Function XDGAQueryModes(
dpy : PDisplay;
screen : cint;
num : Pcint
) : PXDGAMode; CDecl; External libXxf86dga;
Function XDGASetMode(
dpy : PDisplay;
screen : cint;
mode : cint
) : PXDGADevice; CDecl; External libXxf86dga;
Function XDGAOpenFramebuffer(
dpy : PDisplay;
screen : cint
) : TBool; CDecl; External libXxf86dga;
Procedure XDGACloseFramebuffer(
dpy : PDisplay;
screen : cint
); CDecl; External libXxf86dga;
Procedure XDGASetViewport(
dpy : PDisplay;
screen : cint;
x : cint;
y : cint;
flags : cint
); CDecl; External libXxf86dga;
Procedure XDGAInstallColormap(
dpy : PDisplay;
screen : cint;
cmap : TColormap
); CDecl; External libXxf86dga;
Function XDGACreateColormap(
dpy : PDisplay;
screen : cint;
device : PXDGADevice;
alloc : cint
) : TColormap; CDecl; External libXxf86dga;
Procedure XDGASelectInput(
dpy : PDisplay;
screen : cint;
event_mask : clong
); CDecl; External libXxf86dga;
Procedure XDGAFillRectangle(
dpy : PDisplay;
screen : cint;
x : cint;
y : cint;
width : cuint;
height : cuint;
color : culong
); CDecl; External libXxf86dga;
Procedure XDGACopyArea(
dpy : PDisplay;
screen : cint;
srcx : cint;
srcy : cint;
width : cuint;
height : cuint;
dstx : cint;
dsty : cint
); CDecl; External libXxf86dga;
Procedure XDGACopyTransparentArea(
dpy : PDisplay;
screen : cint;
srcx : cint;
srcy : cint;
width : cuint;
height : cuint;
dstx : cint;
dsty : cint;
key : culong
); CDecl; External libXxf86dga;
Function XDGAGetViewportStatus(
dpy : PDisplay;
screen : cint
) : cint; CDecl; External libXxf86dga;
Procedure XDGASync(
dpy : PDisplay;
screen : cint
); CDecl; External libXxf86dga;
Function XDGASetClientVersion(
dpy : PDisplay
) : TBool; CDecl; External libXxf86dga;
Procedure XDGAChangePixmapMode(
dpy : PDisplay;
screen : cint;
x : Pcint;
y : Pcint;
mode : cint
); CDecl; External libXxf86dga;
Procedure XDGAKeyEventToXKeyEvent(
dk : PXDGAKeyEvent;
xk : PXKeyEvent
); CDecl; External libXxf86dga;
Implementation
End.

View File

@ -0,0 +1,125 @@
{ $XFree86: xc/include/extensions/xf86dga1.h,v 1.2 1999/04/17 07:05:41 dawes Exp $ }
{
Copyright (c) 1995 Jon Tombs
Copyright (c) 1995 XFree86 Inc
}
{************************************************************************
THIS IS THE OLD DGA API AND IS OBSOLETE. PLEASE DO NOT USE IT ANYMORE
************************************************************************}
Type
PPcchar = ^Pcchar;
Const
X_XF86DGAQueryVersion = 0;
X_XF86DGAGetVideoLL = 1;
X_XF86DGADirectVideo = 2;
X_XF86DGAGetViewPortSize = 3;
X_XF86DGASetViewPort = 4;
X_XF86DGAGetVidPage = 5;
X_XF86DGASetVidPage = 6;
X_XF86DGAInstallColormap = 7;
X_XF86DGAQueryDirectVideo = 8;
X_XF86DGAViewPortChanged = 9;
XF86DGADirectPresent = $0001;
XF86DGADirectGraphics = $0002;
XF86DGADirectMouse = $0004;
XF86DGADirectKeyb = $0008;
XF86DGAHasColormap = $0100;
XF86DGADirectColormap = $0200;
Function XF86DGAQueryVersion(
dpy : PDisplay;
majorVersion : Pcint;
minorVersion : Pcint
) : TBool; CDecl; External libXxf86dga;
Function XF86DGAQueryExtension(
dpy : PDisplay;
event_base : Pcint;
error_base : Pcint
) : TBool; CDecl; External libXxf86dga;
Function XF86DGAGetVideoLL(
dpy : PDisplay;
screen : cint;
base_addr : Pcint;
width : Pcint;
bank_size : Pcint;
ram_size : Pcint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAGetVideo(
dpy : PDisplay;
screen : cint;
base_addr : PPcchar;
width : Pcint;
bank_size : Pcint;
ram_size : Pcint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGADirectVideo(
dpy : PDisplay;
screen : cint;
enable : cint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGADirectVideoLL(
dpy : PDisplay;
screen : cint;
enable : cint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAGetViewPortSize(
dpy : PDisplay;
screen : cint;
width : Pcint;
height : Pcint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGASetViewPort(
dpy : PDisplay;
screen : cint;
x : cint;
y : cint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAGetVidPage(
dpy : PDisplay;
screen : cint;
vid_page : Pcint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGASetVidPage(
dpy : PDisplay;
screen : cint;
vid_page : cint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAInstallColormap(
dpy : PDisplay;
screen : cint;
Colormap : TColormap
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAForkApp(
screen : cint
) : cint; CDecl; External libXxf86dga;
Function XF86DGAQueryDirectVideo(
dpy : PDisplay;
screen : cint;
flags : Pcint
) : TStatus; CDecl; External libXxf86dga;
Function XF86DGAViewPortChanged(
dpy : PDisplay;
screen : cint;
n : cint
) : TBool; CDecl; External libXxf86dga;