# # Copyright (c) 1999 XFree86 Inc # # $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ import x, xlib const libXxf86dga* = "libXxf86dga.so" #type # cfloat* = float32 # $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* = ptr ptr cstring 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* = 0x00000001 XF86DGADirectGraphics* = 0x00000002 XF86DGADirectMouse* = 0x00000004 XF86DGADirectKeyb* = 0x00000008 XF86DGAHasColormap* = 0x00000100 XF86DGADirectColormap* = 0x00000200 proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): XBool{.cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): XBool{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint, width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar, width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint, height: Pcint): Status{.cdecl, dynlib: libXxf86dga, importc.} proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: Colormap): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAForkApp*(screen: cint): cint{.cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): Status{. cdecl, dynlib: libXxf86dga, importc.} proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): XBool{. cdecl, dynlib: libXxf86dga, importc.} 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* = 0x00000001 XDGASolidFillRect* = 0x00000002 XDGABlitRect* = 0x00000004 XDGABlitTransRect* = 0x00000008 XDGAPixmap* = 0x00000010 XDGAInterlaced* = 0x00010000 XDGADoublescan* = 0x00020000 XDGAFlipImmediate* = 0x00000001 XDGAFlipRetrace* = 0x00000002 XDGANeedRoot* = 0x00000001 XF86DGANumberEvents* = 7 XDGAPixmapModeLarge* = 0 XDGAPixmapModeSmall* = 1 XF86DGAClientNotLocal* = 0 XF86DGANoDirectVideoMode* = 1 XF86DGAScreenNotActive* = 2 XF86DGADirectNotActivated* = 3 XF86DGAOperationNotSupported* = 4 XF86DGANumberErrors* = (XF86DGAOperationNotSupported + 1) type PXDGAMode* = ptr XDGAMode XDGAMode*{.final.} = object num*: cint # A unique identifier for the mode (num > 0) name*: cstring # 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 PXDGADevice* = ptr XDGADevice XDGADevice*{.final.} = object mode*: XDGAMode data*: Pcuchar pixmap*: Pixmap PXDGAButtonEvent* = ptr XDGAButtonEvent XDGAButtonEvent*{.final.} = object theType*: cint serial*: culong display*: PDisplay screen*: cint time*: Time state*: cuint button*: cuint PXDGAKeyEvent* = ptr XDGAKeyEvent XDGAKeyEvent*{.final.} = object theType*: cint serial*: culong display*: PDisplay screen*: cint time*: Time state*: cuint keycode*: cuint PXDGAMotionEvent* = ptr XDGAMotionEvent XDGAMotionEvent*{.final.} = object theType*: cint serial*: culong display*: PDisplay screen*: cint time*: Time state*: cuint dx*: cint dy*: cint PXDGAEvent* = ptr XDGAEvent XDGAEvent*{.final.} = object pad*: array[0..23, clong] # sorry you have to cast if you want access # Case LongInt Of # 0 : (_type : cint); # 1 : (xbutton : XDGAButtonEvent); # 2 : (xkey : XDGAKeyEvent); # 3 : (xmotion : XDGAMotionEvent); # 4 : (pad : Array[0..23] Of clong); {.deprecated: [TXDGAMode: XDGAMode].} {.deprecated: [TXDGADevice: XDGADevice].} {.deprecated: [TXDGAButtonEvent: XDGAButtonEvent].} {.deprecated: [TXDGAKeyEvent: XDGAKeyEvent].} {.deprecated: [TXDGAMotionEvent: XDGAMotionEvent].} {.deprecated: [TXDGAEvent: XDGAEvent].} proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): XBool{. cdecl, dynlib: libXxf86dga, importc.} proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): XBool{. cdecl, dynlib: libXxf86dga, importc.} proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.cdecl, dynlib: libXxf86dga, importc.} proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.cdecl, dynlib: libXxf86dga, importc.} proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): XBool{.cdecl, dynlib: libXxf86dga, importc.} proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.cdecl, dynlib: libXxf86dga, importc.} proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){. cdecl, dynlib: libXxf86dga, importc.} proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: Colormap){.cdecl, dynlib: libXxf86dga, importc.} proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice, alloc: cint): Colormap{.cdecl, dynlib: libXxf86dga, importc.} proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.cdecl, dynlib: libXxf86dga, importc.} proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint, width: cuint, height: cuint, color: culong){.cdecl, dynlib: libXxf86dga, importc.} proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint, width: cuint, height: cuint, dstx: cint, dsty: cint){.cdecl, dynlib: libXxf86dga, importc.} proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint, width: cuint, height: cuint, dstx: cint, dsty: cint, key: culong){.cdecl, dynlib: libXxf86dga, importc.} proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.cdecl, dynlib: libXxf86dga, importc.} proc XDGASync*(dpy: PDisplay, screen: cint){.cdecl, dynlib: libXxf86dga, importc.} proc XDGASetClientVersion*(dpy: PDisplay): XBool{.cdecl, dynlib: libXxf86dga, importc.} proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint, mode: cint){.cdecl, dynlib: libXxf86dga, importc.} proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.cdecl, dynlib: libXxf86dga, importc.} # implementation