chore(macos): vendor system-sdk dependency

This commit is contained in:
2024-09-09 03:44:35 -05:00
parent 7f8d05101e
commit a50d52bae5
2634 changed files with 871615 additions and 1 deletions

View File

@@ -0,0 +1,36 @@
/************************************************************
Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _EVI_H_
#define _EVI_H_
#define XEVI_TRANSPARENCY_NONE 0
#define XEVI_TRANSPARENCY_PIXEL 1
#define XEVI_TRANSPARENCY_MASK 2
#define EVINAME "Extended-Visual-Information"
#define XEVI_MAJOR_VERSION 1 /* current version numbers */
#define XEVI_MINOR_VERSION 0
#endif

View File

@@ -0,0 +1,96 @@
/************************************************************
Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _EVIPROTO_H_
#define _EVIPROTO_H_
#include <X11/extensions/EVI.h>
#define X_EVIQueryVersion 0
#define X_EVIGetVisualInfo 1
#define VisualID CARD32
typedef CARD32 VisualID32;
#define sz_VisualID32 4
typedef struct _xExtendedVisualInfo {
VisualID core_visual_id B32;
INT8 screen;
INT8 level;
CARD8 transparency_type;
CARD8 pad0;
CARD32 transparency_value B32;
CARD8 min_hw_colormaps;
CARD8 max_hw_colormaps;
CARD16 num_colormap_conflicts B16;
} xExtendedVisualInfo;
#define sz_xExtendedVisualInfo 16
typedef struct _XEVIQueryVersion {
CARD8 reqType; /* always XEVIReqCode */
CARD8 xeviReqType; /* always X_EVIQueryVersion */
CARD16 length B16;
} xEVIQueryVersionReq;
#define sz_xEVIQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of EVI protocol */
CARD16 minorVersion B16; /* minor version of EVI protocol */
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xEVIQueryVersionReply;
#define sz_xEVIQueryVersionReply 32
typedef struct _XEVIGetVisualInfoReq {
CARD8 reqType; /* always XEVIReqCode */
CARD8 xeviReqType; /* always X_EVIGetVisualInfo */
CARD16 length B16;
CARD32 n_visual B32;
} xEVIGetVisualInfoReq;
#define sz_xEVIGetVisualInfoReq 8
typedef struct _XEVIGetVisualInfoReply {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 n_info B32;
CARD32 n_conflicts B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xEVIGetVisualInfoReply;
#define sz_xEVIGetVisualInfoReply 32
#undef VisualID
#endif /* _EVIPROTO_H_ */

View File

@@ -0,0 +1,54 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM OR X PROJECT TEAM BLESSING */
#ifndef _XMITMISC_H_
#define _XMITMISC_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/mitmiscconst.h>
_XFUNCPROTOBEGIN
Bool XMITMiscQueryExtension(
Display* /* dpy */,
int* /* event_basep */,
int* /* error_basep */
);
Status XMITMiscSetBugMode(
Display* /* dpy */,
Bool /* onOff */
);
Bool XMITMiscGetBugMode(
Display* /* dpy */
);
_XFUNCPROTOEND
#endif

View File

@@ -0,0 +1,61 @@
/************************************************************
Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _XEVI_H_
#define _XEVI_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/EVI.h>
typedef struct {
VisualID core_visual_id;
int screen;
int level;
unsigned int transparency_type;
unsigned int transparency_value;
unsigned int min_hw_colormaps;
unsigned int max_hw_colormaps;
unsigned int num_colormap_conflicts;
VisualID* colormap_conflicts;
} ExtendedVisualInfo;
_XFUNCPROTOBEGIN
Bool XeviQueryExtension(
Display* /* dpy */
);
Status XeviQueryVersion(
Display* /* dpy */,
int* /* majorVersion */,
int* /* minorVersion */
);
Status XeviGetVisualInfo(
Display* /* dpy */,
VisualID* /* visual_query */,
int /* nVisual_query */,
ExtendedVisualInfo** /* extendedVisualInfo_return */,
int* /* nInfo_return */
);
_XFUNCPROTOEND
#endif

View File

@@ -0,0 +1,308 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Hewlett-Packard not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
********************************************************/
/* Definitions used by the server, library and client */
#ifndef _XI_H_
#define _XI_H_
#define sz_xGetExtensionVersionReq 8
#define sz_xGetExtensionVersionReply 32
#define sz_xListInputDevicesReq 4
#define sz_xListInputDevicesReply 32
#define sz_xOpenDeviceReq 8
#define sz_xOpenDeviceReply 32
#define sz_xCloseDeviceReq 8
#define sz_xSetDeviceModeReq 8
#define sz_xSetDeviceModeReply 32
#define sz_xSelectExtensionEventReq 12
#define sz_xGetSelectedExtensionEventsReq 8
#define sz_xGetSelectedExtensionEventsReply 32
#define sz_xChangeDeviceDontPropagateListReq 12
#define sz_xGetDeviceDontPropagateListReq 8
#define sz_xGetDeviceDontPropagateListReply 32
#define sz_xGetDeviceMotionEventsReq 16
#define sz_xGetDeviceMotionEventsReply 32
#define sz_xChangeKeyboardDeviceReq 8
#define sz_xChangeKeyboardDeviceReply 32
#define sz_xChangePointerDeviceReq 8
#define sz_xChangePointerDeviceReply 32
#define sz_xGrabDeviceReq 20
#define sz_xGrabDeviceReply 32
#define sz_xUngrabDeviceReq 12
#define sz_xGrabDeviceKeyReq 20
#define sz_xGrabDeviceKeyReply 32
#define sz_xUngrabDeviceKeyReq 16
#define sz_xGrabDeviceButtonReq 20
#define sz_xGrabDeviceButtonReply 32
#define sz_xUngrabDeviceButtonReq 16
#define sz_xAllowDeviceEventsReq 12
#define sz_xGetDeviceFocusReq 8
#define sz_xGetDeviceFocusReply 32
#define sz_xSetDeviceFocusReq 16
#define sz_xGetFeedbackControlReq 8
#define sz_xGetFeedbackControlReply 32
#define sz_xChangeFeedbackControlReq 12
#define sz_xGetDeviceKeyMappingReq 8
#define sz_xGetDeviceKeyMappingReply 32
#define sz_xChangeDeviceKeyMappingReq 8
#define sz_xGetDeviceModifierMappingReq 8
#define sz_xSetDeviceModifierMappingReq 8
#define sz_xSetDeviceModifierMappingReply 32
#define sz_xGetDeviceButtonMappingReq 8
#define sz_xGetDeviceButtonMappingReply 32
#define sz_xSetDeviceButtonMappingReq 8
#define sz_xSetDeviceButtonMappingReply 32
#define sz_xQueryDeviceStateReq 8
#define sz_xQueryDeviceStateReply 32
#define sz_xSendExtensionEventReq 16
#define sz_xDeviceBellReq 8
#define sz_xSetDeviceValuatorsReq 8
#define sz_xSetDeviceValuatorsReply 32
#define sz_xGetDeviceControlReq 8
#define sz_xGetDeviceControlReply 32
#define sz_xChangeDeviceControlReq 8
#define sz_xChangeDeviceControlReply 32
#define sz_xListDevicePropertiesReq 8
#define sz_xListDevicePropertiesReply 32
#define sz_xChangeDevicePropertyReq 20
#define sz_xDeleteDevicePropertyReq 12
#define sz_xGetDevicePropertyReq 24
#define sz_xGetDevicePropertyReply 32
#define INAME "XInputExtension"
#define XI_KEYBOARD "KEYBOARD"
#define XI_MOUSE "MOUSE"
#define XI_TABLET "TABLET"
#define XI_TOUCHSCREEN "TOUCHSCREEN"
#define XI_TOUCHPAD "TOUCHPAD"
#define XI_BARCODE "BARCODE"
#define XI_BUTTONBOX "BUTTONBOX"
#define XI_KNOB_BOX "KNOB_BOX"
#define XI_ONE_KNOB "ONE_KNOB"
#define XI_NINE_KNOB "NINE_KNOB"
#define XI_TRACKBALL "TRACKBALL"
#define XI_QUADRATURE "QUADRATURE"
#define XI_ID_MODULE "ID_MODULE"
#define XI_SPACEBALL "SPACEBALL"
#define XI_DATAGLOVE "DATAGLOVE"
#define XI_EYETRACKER "EYETRACKER"
#define XI_CURSORKEYS "CURSORKEYS"
#define XI_FOOTMOUSE "FOOTMOUSE"
#define XI_JOYSTICK "JOYSTICK"
/* Indices into the versions[] array (XExtInt.c). Used as a index to
* retrieve the minimum version of XI from _XiCheckExtInit */
#define Dont_Check 0
#define XInput_Initial_Release 1
#define XInput_Add_XDeviceBell 2
#define XInput_Add_XSetDeviceValuators 3
#define XInput_Add_XChangeDeviceControl 4
#define XInput_Add_DevicePresenceNotify 5
#define XInput_Add_DeviceProperties 6
/* DO NOT ADD TO HERE -> XI2 */
#define XI_Absent 0
#define XI_Present 1
#define XI_Initial_Release_Major 1
#define XI_Initial_Release_Minor 0
#define XI_Add_XDeviceBell_Major 1
#define XI_Add_XDeviceBell_Minor 1
#define XI_Add_XSetDeviceValuators_Major 1
#define XI_Add_XSetDeviceValuators_Minor 2
#define XI_Add_XChangeDeviceControl_Major 1
#define XI_Add_XChangeDeviceControl_Minor 3
#define XI_Add_DevicePresenceNotify_Major 1
#define XI_Add_DevicePresenceNotify_Minor 4
#define XI_Add_DeviceProperties_Major 1
#define XI_Add_DeviceProperties_Minor 5
#define DEVICE_RESOLUTION 1
#define DEVICE_ABS_CALIB 2
#define DEVICE_CORE 3
#define DEVICE_ENABLE 4
#define DEVICE_ABS_AREA 5
#define NoSuchExtension 1
#define COUNT 0
#define CREATE 1
#define NewPointer 0
#define NewKeyboard 1
#define XPOINTER 0
#define XKEYBOARD 1
#define UseXKeyboard 0xFF
#define IsXPointer 0
#define IsXKeyboard 1
#define IsXExtensionDevice 2
#define IsXExtensionKeyboard 3
#define IsXExtensionPointer 4
#define AsyncThisDevice 0
#define SyncThisDevice 1
#define ReplayThisDevice 2
#define AsyncOtherDevices 3
#define AsyncAll 4
#define SyncAll 5
#define FollowKeyboard 3
#ifndef RevertToFollowKeyboard
#define RevertToFollowKeyboard 3
#endif
#define DvAccelNum (1L << 0)
#define DvAccelDenom (1L << 1)
#define DvThreshold (1L << 2)
#define DvKeyClickPercent (1L<<0)
#define DvPercent (1L<<1)
#define DvPitch (1L<<2)
#define DvDuration (1L<<3)
#define DvLed (1L<<4)
#define DvLedMode (1L<<5)
#define DvKey (1L<<6)
#define DvAutoRepeatMode (1L<<7)
#define DvString (1L << 0)
#define DvInteger (1L << 0)
#define DeviceMode (1L << 0)
#define Relative 0
#define Absolute 1
#define ProximityState (1L << 1)
#define InProximity (0L << 1)
#define OutOfProximity (1L << 1)
#define AddToList 0
#define DeleteFromList 1
#define KeyClass 0
#define ButtonClass 1
#define ValuatorClass 2
#define FeedbackClass 3
#define ProximityClass 4
#define FocusClass 5
#define OtherClass 6
#define AttachClass 7
#define KbdFeedbackClass 0
#define PtrFeedbackClass 1
#define StringFeedbackClass 2
#define IntegerFeedbackClass 3
#define LedFeedbackClass 4
#define BellFeedbackClass 5
#define _devicePointerMotionHint 0
#define _deviceButton1Motion 1
#define _deviceButton2Motion 2
#define _deviceButton3Motion 3
#define _deviceButton4Motion 4
#define _deviceButton5Motion 5
#define _deviceButtonMotion 6
#define _deviceButtonGrab 7
#define _deviceOwnerGrabButton 8
#define _noExtensionEvent 9
#define _devicePresence 0
#define _deviceEnter 0
#define _deviceLeave 1
/* Device presence notify states */
#define DeviceAdded 0
#define DeviceRemoved 1
#define DeviceEnabled 2
#define DeviceDisabled 3
#define DeviceUnrecoverable 4
#define DeviceControlChanged 5
/* XI Errors */
#define XI_BadDevice 0
#define XI_BadEvent 1
#define XI_BadMode 2
#define XI_DeviceBusy 3
#define XI_BadClass 4
/*
* Make XEventClass be a CARD32 for 64 bit servers. Don't affect client
* definition of XEventClass since that would be a library interface change.
* See the top of X.h for more _XSERVER64 magic.
*
* But, don't actually use the CARD32 type. We can't get it defined here
* without polluting the namespace.
*/
#ifdef _XSERVER64
typedef unsigned int XEventClass;
#else
typedef unsigned long XEventClass;
#endif
/*******************************************************************
*
* Extension version structure.
*
*/
typedef struct {
int present;
short major_version;
short minor_version;
} XExtensionVersion;
#endif /* _XI_H_ */

View File

@@ -0,0 +1,245 @@
/*
* Copyright © 2009 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
#ifndef _XI2_H_
#define _XI2_H_
#define XInput_2_0 7
/* DO NOT ADD TO THIS LIST. These are libXi-specific defines.
See commit libXi-1.4.2-21-ge8531dd */
#define XI_2_Major 2
#define XI_2_Minor 3
/* Property event flags */
#define XIPropertyDeleted 0
#define XIPropertyCreated 1
#define XIPropertyModified 2
/* Property modes */
#define XIPropModeReplace 0
#define XIPropModePrepend 1
#define XIPropModeAppend 2
/* Special property type used for XIGetProperty */
#define XIAnyPropertyType 0L
/* Enter/Leave and Focus In/Out modes */
#define XINotifyNormal 0
#define XINotifyGrab 1
#define XINotifyUngrab 2
#define XINotifyWhileGrabbed 3
#define XINotifyPassiveGrab 4
#define XINotifyPassiveUngrab 5
/* Enter/Leave and focus In/out detail */
#define XINotifyAncestor 0
#define XINotifyVirtual 1
#define XINotifyInferior 2
#define XINotifyNonlinear 3
#define XINotifyNonlinearVirtual 4
#define XINotifyPointer 5
#define XINotifyPointerRoot 6
#define XINotifyDetailNone 7
/* Grab modes */
#define XIGrabModeSync 0
#define XIGrabModeAsync 1
#define XIGrabModeTouch 2
/* Grab reply status codes */
#define XIGrabSuccess 0
#define XIAlreadyGrabbed 1
#define XIGrabInvalidTime 2
#define XIGrabNotViewable 3
#define XIGrabFrozen 4
/* Grab owner events values */
#define XIOwnerEvents True
#define XINoOwnerEvents False
/* Passive grab types */
#define XIGrabtypeButton 0
#define XIGrabtypeKeycode 1
#define XIGrabtypeEnter 2
#define XIGrabtypeFocusIn 3
#define XIGrabtypeTouchBegin 4
/* Passive grab modifier */
#define XIAnyModifier (1U << 31)
#define XIAnyButton 0
#define XIAnyKeycode 0
/* XIAllowEvents event-modes */
#define XIAsyncDevice 0
#define XISyncDevice 1
#define XIReplayDevice 2
#define XIAsyncPairedDevice 3
#define XIAsyncPair 4
#define XISyncPair 5
#define XIAcceptTouch 6
#define XIRejectTouch 7
/* DeviceChangedEvent change reasons */
#define XISlaveSwitch 1
#define XIDeviceChange 2
/* Hierarchy flags */
#define XIMasterAdded (1 << 0)
#define XIMasterRemoved (1 << 1)
#define XISlaveAdded (1 << 2)
#define XISlaveRemoved (1 << 3)
#define XISlaveAttached (1 << 4)
#define XISlaveDetached (1 << 5)
#define XIDeviceEnabled (1 << 6)
#define XIDeviceDisabled (1 << 7)
/* ChangeHierarchy constants */
#define XIAddMaster 1
#define XIRemoveMaster 2
#define XIAttachSlave 3
#define XIDetachSlave 4
#define XIAttachToMaster 1
#define XIFloating 2
/* Valuator modes */
#define XIModeRelative 0
#define XIModeAbsolute 1
/* Device types */
#define XIMasterPointer 1
#define XIMasterKeyboard 2
#define XISlavePointer 3
#define XISlaveKeyboard 4
#define XIFloatingSlave 5
/* Device classes: classes that are not identical to Xi 1.x classes must be
* numbered starting from 8. */
#define XIKeyClass 0
#define XIButtonClass 1
#define XIValuatorClass 2
#define XIScrollClass 3
#define XITouchClass 8
/* Scroll class types */
#define XIScrollTypeVertical 1
#define XIScrollTypeHorizontal 2
/* Scroll class flags */
#define XIScrollFlagNoEmulation (1 << 0)
#define XIScrollFlagPreferred (1 << 1)
/* Device event flags (common) */
/* Device event flags (key events only) */
#define XIKeyRepeat (1 << 16)
/* Device event flags (pointer events only) */
#define XIPointerEmulated (1 << 16)
/* Device event flags (touch events only) */
#define XITouchPendingEnd (1 << 16)
#define XITouchEmulatingPointer (1 << 17)
/* Barrier event flags */
#define XIBarrierPointerReleased (1 << 0)
#define XIBarrierDeviceIsGrabbed (1 << 1)
/* Touch modes */
#define XIDirectTouch 1
#define XIDependentTouch 2
/* XI2 event mask macros */
#define XISetMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] |= (1 << ((event) & 7)))
#define XIClearMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] &= ~(1 << ((event) & 7)))
#define XIMaskIsSet(ptr, event) (((unsigned char*)(ptr))[(event)>>3] & (1 << ((event) & 7)))
#define XIMaskLen(event) (((event) >> 3) + 1)
/* Fake device ID's for event selection */
#define XIAllDevices 0
#define XIAllMasterDevices 1
/* Event types */
#define XI_DeviceChanged 1
#define XI_KeyPress 2
#define XI_KeyRelease 3
#define XI_ButtonPress 4
#define XI_ButtonRelease 5
#define XI_Motion 6
#define XI_Enter 7
#define XI_Leave 8
#define XI_FocusIn 9
#define XI_FocusOut 10
#define XI_HierarchyChanged 11
#define XI_PropertyEvent 12
#define XI_RawKeyPress 13
#define XI_RawKeyRelease 14
#define XI_RawButtonPress 15
#define XI_RawButtonRelease 16
#define XI_RawMotion 17
#define XI_TouchBegin 18 /* XI 2.2 */
#define XI_TouchUpdate 19
#define XI_TouchEnd 20
#define XI_TouchOwnership 21
#define XI_RawTouchBegin 22
#define XI_RawTouchUpdate 23
#define XI_RawTouchEnd 24
#define XI_BarrierHit 25 /* XI 2.3 */
#define XI_BarrierLeave 26
#define XI_LASTEVENT XI_BarrierLeave
/* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
* as XI_LASTEVENT if the server is supposed to handle masks etc. for this
* type of event. */
/* Event masks.
* Note: the protocol spec defines a mask to be of (1 << type). Clients are
* free to create masks by bitshifting instead of using these defines.
*/
#define XI_DeviceChangedMask (1 << XI_DeviceChanged)
#define XI_KeyPressMask (1 << XI_KeyPress)
#define XI_KeyReleaseMask (1 << XI_KeyRelease)
#define XI_ButtonPressMask (1 << XI_ButtonPress)
#define XI_ButtonReleaseMask (1 << XI_ButtonRelease)
#define XI_MotionMask (1 << XI_Motion)
#define XI_EnterMask (1 << XI_Enter)
#define XI_LeaveMask (1 << XI_Leave)
#define XI_FocusInMask (1 << XI_FocusIn)
#define XI_FocusOutMask (1 << XI_FocusOut)
#define XI_HierarchyChangedMask (1 << XI_HierarchyChanged)
#define XI_PropertyEventMask (1 << XI_PropertyEvent)
#define XI_RawKeyPressMask (1 << XI_RawKeyPress)
#define XI_RawKeyReleaseMask (1 << XI_RawKeyRelease)
#define XI_RawButtonPressMask (1 << XI_RawButtonPress)
#define XI_RawButtonReleaseMask (1 << XI_RawButtonRelease)
#define XI_RawMotionMask (1 << XI_RawMotion)
#define XI_TouchBeginMask (1 << XI_TouchBegin)
#define XI_TouchEndMask (1 << XI_TouchEnd)
#define XI_TouchOwnershipChangedMask (1 << XI_TouchOwnership)
#define XI_TouchUpdateMask (1 << XI_TouchUpdate)
#define XI_RawTouchBeginMask (1 << XI_RawTouchBegin)
#define XI_RawTouchEndMask (1 << XI_RawTouchEnd)
#define XI_RawTouchUpdateMask (1 << XI_RawTouchUpdate)
#define XI_BarrierHitMask (1 << XI_BarrierHit)
#define XI_BarrierLeaveMask (1 << XI_BarrierLeave)
#endif /* _XI2_H_ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,657 @@
/*
* Copyright © 2009 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/
/* Definitions used by the library and client */
#ifndef _XINPUT2_H_
#define _XINPUT2_H_
#include <X11/Xlib.h>
#include <X11/extensions/XI2.h>
#include <X11/extensions/Xge.h>
#include <X11/extensions/Xfixes.h> /* PointerBarrier */
/*******************************************************************
*
*/
typedef struct {
int type;
char* name;
Bool send_core;
Bool enable;
} XIAddMasterInfo;
typedef struct {
int type;
int deviceid;
int return_mode; /* AttachToMaster, Floating */
int return_pointer;
int return_keyboard;
} XIRemoveMasterInfo;
typedef struct {
int type;
int deviceid;
int new_master;
} XIAttachSlaveInfo;
typedef struct {
int type;
int deviceid;
} XIDetachSlaveInfo;
typedef union {
int type; /* must be first element */
XIAddMasterInfo add;
XIRemoveMasterInfo remove;
XIAttachSlaveInfo attach;
XIDetachSlaveInfo detach;
} XIAnyHierarchyChangeInfo;
typedef struct
{
int base;
int latched;
int locked;
int effective;
} XIModifierState;
typedef XIModifierState XIGroupState;
typedef struct {
int mask_len;
unsigned char *mask;
} XIButtonState;
typedef struct {
int mask_len;
unsigned char *mask;
double *values;
} XIValuatorState;
typedef struct
{
int deviceid;
int mask_len;
unsigned char* mask;
} XIEventMask;
typedef struct
{
int type;
int sourceid;
} XIAnyClassInfo;
typedef struct
{
int type;
int sourceid;
int num_buttons;
Atom *labels;
XIButtonState state;
} XIButtonClassInfo;
typedef struct
{
int type;
int sourceid;
int num_keycodes;
int *keycodes;
} XIKeyClassInfo;
typedef struct
{
int type;
int sourceid;
int number;
Atom label;
double min;
double max;
double value;
int resolution;
int mode;
} XIValuatorClassInfo;
/* new in XI 2.1 */
typedef struct
{
int type;
int sourceid;
int number;
int scroll_type;
double increment;
int flags;
} XIScrollClassInfo;
typedef struct
{
int type;
int sourceid;
int mode;
int num_touches;
} XITouchClassInfo;
typedef struct
{
int deviceid;
char *name;
int use;
int attachment;
Bool enabled;
int num_classes;
XIAnyClassInfo **classes;
} XIDeviceInfo;
typedef struct
{
int modifiers;
int status;
} XIGrabModifiers;
typedef unsigned int BarrierEventID;
typedef struct
{
int deviceid;
PointerBarrier barrier;
BarrierEventID eventid;
} XIBarrierReleasePointerInfo;
/**
* Generic XI2 event. All XI2 events have the same header.
*/
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
} XIEvent;
typedef struct {
int deviceid;
int attachment;
int use;
Bool enabled;
int flags;
} XIHierarchyInfo;
/*
* Notifies the client that the device hierarchy has been changed. The client
* is expected to re-query the server for the device hierarchy.
*/
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype; /* XI_HierarchyChanged */
Time time;
int flags;
int num_info;
XIHierarchyInfo *info;
} XIHierarchyEvent;
/*
* Notifies the client that the classes have been changed. This happens when
* the slave device that sends through the master changes.
*/
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype; /* XI_DeviceChanged */
Time time;
int deviceid; /* id of the device that changed */
int sourceid; /* Source for the new classes. */
int reason; /* Reason for the change */
int num_classes;
XIAnyClassInfo **classes; /* same as in XIDeviceInfo */
} XIDeviceChangedEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
int deviceid;
int sourceid;
int detail;
Window root;
Window event;
Window child;
double root_x;
double root_y;
double event_x;
double event_y;
int flags;
XIButtonState buttons;
XIValuatorState valuators;
XIModifierState mods;
XIGroupState group;
} XIDeviceEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype; /* XI_RawKeyPress, XI_RawKeyRelease, etc. */
Time time;
int deviceid;
int sourceid; /* Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240 */
int detail;
int flags;
XIValuatorState valuators;
double *raw_values;
} XIRawEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
int deviceid;
int sourceid;
int detail;
Window root;
Window event;
Window child;
double root_x;
double root_y;
double event_x;
double event_y;
int mode;
Bool focus;
Bool same_screen;
XIButtonState buttons;
XIModifierState mods;
XIGroupState group;
} XIEnterEvent;
typedef XIEnterEvent XILeaveEvent;
typedef XIEnterEvent XIFocusInEvent;
typedef XIEnterEvent XIFocusOutEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype; /* XI_PropertyEvent */
Time time;
int deviceid; /* id of the device that changed */
Atom property;
int what;
} XIPropertyEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
int deviceid;
int sourceid;
unsigned int touchid;
Window root;
Window event;
Window child;
int flags;
} XITouchOwnershipEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
int deviceid;
int sourceid;
Window event;
Window root;
double root_x;
double root_y;
double dx;
double dy;
int dtime;
int flags;
PointerBarrier barrier;
BarrierEventID eventid;
} XIBarrierEvent;
_XFUNCPROTOBEGIN
extern Bool XIQueryPointer(
Display* display,
int deviceid,
Window win,
Window* root,
Window* child,
double* root_x,
double* root_y,
double* win_x,
double* win_y,
XIButtonState *buttons,
XIModifierState *mods,
XIGroupState *group
);
extern Bool XIWarpPointer(
Display* display,
int deviceid,
Window src_win,
Window dst_win,
double src_x,
double src_y,
unsigned int src_width,
unsigned int src_height,
double dst_x,
double dst_y
);
extern Status XIDefineCursor(
Display* display,
int deviceid,
Window win,
Cursor cursor
);
extern Status XIUndefineCursor(
Display* display,
int deviceid,
Window win
);
extern Status XIChangeHierarchy(
Display* display,
XIAnyHierarchyChangeInfo* changes,
int num_changes
);
extern Status XISetClientPointer(
Display* dpy,
Window win,
int deviceid
);
extern Bool XIGetClientPointer(
Display* dpy,
Window win,
int* deviceid
);
extern int XISelectEvents(
Display* dpy,
Window win,
XIEventMask *masks,
int num_masks
);
extern XIEventMask *XIGetSelectedEvents(
Display* dpy,
Window win,
int *num_masks_return
);
extern Status XIQueryVersion(
Display* dpy,
int* major_version_inout,
int* minor_version_inout
);
extern XIDeviceInfo* XIQueryDevice(
Display* dpy,
int deviceid,
int* ndevices_return
);
extern Status XISetFocus(
Display* dpy,
int deviceid,
Window focus,
Time time
);
extern Status XIGetFocus(
Display* dpy,
int deviceid,
Window *focus_return);
extern Status XIGrabDevice(
Display* dpy,
int deviceid,
Window grab_window,
Time time,
Cursor cursor,
int grab_mode,
int paired_device_mode,
Bool owner_events,
XIEventMask *mask
);
extern Status XIUngrabDevice(
Display* dpy,
int deviceid,
Time time
);
extern Status XIAllowEvents(
Display* display,
int deviceid,
int event_mode,
Time time
);
extern Status XIAllowTouchEvents(
Display* display,
int deviceid,
unsigned int touchid,
Window grab_window,
int event_mode
);
extern int XIGrabButton(
Display* display,
int deviceid,
int button,
Window grab_window,
Cursor cursor,
int grab_mode,
int paired_device_mode,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern int XIGrabKeycode(
Display* display,
int deviceid,
int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern int XIGrabEnter(
Display* display,
int deviceid,
Window grab_window,
Cursor cursor,
int grab_mode,
int paired_device_mode,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern int XIGrabFocusIn(
Display* display,
int deviceid,
Window grab_window,
int grab_mode,
int paired_device_mode,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern int XIGrabTouchBegin(
Display* display,
int deviceid,
Window grab_window,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern Status XIUngrabButton(
Display* display,
int deviceid,
int button,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Status XIUngrabKeycode(
Display* display,
int deviceid,
int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Status XIUngrabEnter(
Display* display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Status XIUngrabFocusIn(
Display* display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Status XIUngrabTouchBegin(
Display* display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Atom *XIListProperties(
Display* display,
int deviceid,
int *num_props_return
);
extern void XIChangeProperty(
Display* display,
int deviceid,
Atom property,
Atom type,
int format,
int mode,
unsigned char *data,
int num_items
);
extern void
XIDeleteProperty(
Display* display,
int deviceid,
Atom property
);
extern Status
XIGetProperty(
Display* display,
int deviceid,
Atom property,
long offset,
long length,
Bool delete_property,
Atom type,
Atom *type_return,
int *format_return,
unsigned long *num_items_return,
unsigned long *bytes_after_return,
unsigned char **data
);
extern void
XIBarrierReleasePointers(
Display* display,
XIBarrierReleasePointerInfo *barriers,
int num_barriers
);
extern void
XIBarrierReleasePointer(
Display* display,
int deviceid,
PointerBarrier barrier,
BarrierEventID eventid
);
extern void XIFreeDeviceInfo(XIDeviceInfo *info);
_XFUNCPROTOEND
#endif /* XINPUT2_H */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,786 @@
/************************************************************
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _XKB_H_
#define _XKB_H_
/*
* XKB request codes, used in:
* - xkbReqType field of all requests
* - requestMinor field of some events
*/
#define X_kbUseExtension 0
#define X_kbSelectEvents 1
#define X_kbBell 3
#define X_kbGetState 4
#define X_kbLatchLockState 5
#define X_kbGetControls 6
#define X_kbSetControls 7
#define X_kbGetMap 8
#define X_kbSetMap 9
#define X_kbGetCompatMap 10
#define X_kbSetCompatMap 11
#define X_kbGetIndicatorState 12
#define X_kbGetIndicatorMap 13
#define X_kbSetIndicatorMap 14
#define X_kbGetNamedIndicator 15
#define X_kbSetNamedIndicator 16
#define X_kbGetNames 17
#define X_kbSetNames 18
#define X_kbGetGeometry 19
#define X_kbSetGeometry 20
#define X_kbPerClientFlags 21
#define X_kbListComponents 22
#define X_kbGetKbdByName 23
#define X_kbGetDeviceInfo 24
#define X_kbSetDeviceInfo 25
#define X_kbSetDebuggingFlags 101
/*
* In the X sense, XKB reports only one event.
* The type field of all XKB events is XkbEventCode
*/
#define XkbEventCode 0
#define XkbNumberEvents (XkbEventCode+1)
/*
* XKB has a minor event code so it can use one X event code for
* multiple purposes.
* - reported in the xkbType field of all XKB events.
* - XkbSelectEventDetails: Indicates the event for which event details
* are being changed
*/
#define XkbNewKeyboardNotify 0
#define XkbMapNotify 1
#define XkbStateNotify 2
#define XkbControlsNotify 3
#define XkbIndicatorStateNotify 4
#define XkbIndicatorMapNotify 5
#define XkbNamesNotify 6
#define XkbCompatMapNotify 7
#define XkbBellNotify 8
#define XkbActionMessage 9
#define XkbAccessXNotify 10
#define XkbExtensionDeviceNotify 11
/*
* Event Mask:
* - XkbSelectEvents: Specifies event interest.
*/
#define XkbNewKeyboardNotifyMask (1L << 0)
#define XkbMapNotifyMask (1L << 1)
#define XkbStateNotifyMask (1L << 2)
#define XkbControlsNotifyMask (1L << 3)
#define XkbIndicatorStateNotifyMask (1L << 4)
#define XkbIndicatorMapNotifyMask (1L << 5)
#define XkbNamesNotifyMask (1L << 6)
#define XkbCompatMapNotifyMask (1L << 7)
#define XkbBellNotifyMask (1L << 8)
#define XkbActionMessageMask (1L << 9)
#define XkbAccessXNotifyMask (1L << 10)
#define XkbExtensionDeviceNotifyMask (1L << 11)
#define XkbAllEventsMask (0xFFF)
/*
* NewKeyboardNotify event details:
*/
#define XkbNKN_KeycodesMask (1L << 0)
#define XkbNKN_GeometryMask (1L << 1)
#define XkbNKN_DeviceIDMask (1L << 2)
#define XkbAllNewKeyboardEventsMask (0x7)
/*
* AccessXNotify event types:
* - The 'what' field of AccessXNotify events reports the
* reason that the event was generated.
*/
#define XkbAXN_SKPress 0
#define XkbAXN_SKAccept 1
#define XkbAXN_SKReject 2
#define XkbAXN_SKRelease 3
#define XkbAXN_BKAccept 4
#define XkbAXN_BKReject 5
#define XkbAXN_AXKWarning 6
/*
* AccessXNotify details:
* - Used as an event detail mask to limit the conditions under which
* AccessXNotify events are reported
*/
#define XkbAXN_SKPressMask (1L << 0)
#define XkbAXN_SKAcceptMask (1L << 1)
#define XkbAXN_SKRejectMask (1L << 2)
#define XkbAXN_SKReleaseMask (1L << 3)
#define XkbAXN_BKAcceptMask (1L << 4)
#define XkbAXN_BKRejectMask (1L << 5)
#define XkbAXN_AXKWarningMask (1L << 6)
#define XkbAllAccessXEventsMask (0x7f)
/*
* Miscellaneous event details:
* - event detail masks for assorted events that don't reall
* have any details.
*/
#define XkbAllStateEventsMask XkbAllStateComponentsMask
#define XkbAllMapEventsMask XkbAllMapComponentsMask
#define XkbAllControlEventsMask XkbAllControlsMask
#define XkbAllIndicatorEventsMask XkbAllIndicatorsMask
#define XkbAllNameEventsMask XkbAllNamesMask
#define XkbAllCompatMapEventsMask XkbAllCompatMask
#define XkbAllBellEventsMask (1L << 0)
#define XkbAllActionMessagesMask (1L << 0)
/*
* XKB reports one error: BadKeyboard
* A further reason for the error is encoded into to most significant
* byte of the resourceID for the error:
* XkbErr_BadDevice - the device in question was not found
* XkbErr_BadClass - the device was found but it doesn't belong to
* the appropriate class.
* XkbErr_BadId - the device was found and belongs to the right
* class, but not feedback with a matching id was
* found.
* The low byte of the resourceID for this error contains the device
* id, class specifier or feedback id that failed.
*/
#define XkbKeyboard 0
#define XkbNumberErrors 1
#define XkbErr_BadDevice 0xff
#define XkbErr_BadClass 0xfe
#define XkbErr_BadId 0xfd
/*
* Keyboard Components Mask:
* - Specifies the components that follow a GetKeyboardByNameReply
*/
#define XkbClientMapMask (1L << 0)
#define XkbServerMapMask (1L << 1)
#define XkbCompatMapMask (1L << 2)
#define XkbIndicatorMapMask (1L << 3)
#define XkbNamesMask (1L << 4)
#define XkbGeometryMask (1L << 5)
#define XkbControlsMask (1L << 6)
#define XkbAllComponentsMask (0x7f)
/*
* State detail mask:
* - The 'changed' field of StateNotify events reports which of
* the keyboard state components have changed.
* - Used as an event detail mask to limit the conditions under
* which StateNotify events are reported.
*/
#define XkbModifierStateMask (1L << 0)
#define XkbModifierBaseMask (1L << 1)
#define XkbModifierLatchMask (1L << 2)
#define XkbModifierLockMask (1L << 3)
#define XkbGroupStateMask (1L << 4)
#define XkbGroupBaseMask (1L << 5)
#define XkbGroupLatchMask (1L << 6)
#define XkbGroupLockMask (1L << 7)
#define XkbCompatStateMask (1L << 8)
#define XkbGrabModsMask (1L << 9)
#define XkbCompatGrabModsMask (1L << 10)
#define XkbLookupModsMask (1L << 11)
#define XkbCompatLookupModsMask (1L << 12)
#define XkbPointerButtonMask (1L << 13)
#define XkbAllStateComponentsMask (0x3fff)
/*
* Controls detail masks:
* The controls specified in XkbAllControlsMask:
* - The 'changed' field of ControlsNotify events reports which of
* the keyboard controls have changed.
* - The 'changeControls' field of the SetControls request specifies
* the controls for which values are to be changed.
* - Used as an event detail mask to limit the conditions under
* which ControlsNotify events are reported.
*
* The controls specified in the XkbAllBooleanCtrlsMask:
* - The 'enabledControls' field of ControlsNotify events reports the
* current status of the boolean controls.
* - The 'enabledControlsChanges' field of ControlsNotify events reports
* any boolean controls that have been turned on or off.
* - The 'affectEnabledControls' and 'enabledControls' fields of the
* kbSetControls request change the set of enabled controls.
* - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
* an XkbControlsRec specify the controls to be changed if the keyboard
* times out and the values to which they should be changed.
* - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
* request specifies the specify the controls to be reset when the
* client exits and the values to which they should be reset.
* - The 'ctrls' field of an indicator map specifies the controls
* that drive the indicator.
* - Specifies the boolean controls affected by the SetControls and
* LockControls key actions.
*/
#define XkbRepeatKeysMask (1L << 0)
#define XkbSlowKeysMask (1L << 1)
#define XkbBounceKeysMask (1L << 2)
#define XkbStickyKeysMask (1L << 3)
#define XkbMouseKeysMask (1L << 4)
#define XkbMouseKeysAccelMask (1L << 5)
#define XkbAccessXKeysMask (1L << 6)
#define XkbAccessXTimeoutMask (1L << 7)
#define XkbAccessXFeedbackMask (1L << 8)
#define XkbAudibleBellMask (1L << 9)
#define XkbOverlay1Mask (1L << 10)
#define XkbOverlay2Mask (1L << 11)
#define XkbIgnoreGroupLockMask (1L << 12)
#define XkbGroupsWrapMask (1L << 27)
#define XkbInternalModsMask (1L << 28)
#define XkbIgnoreLockModsMask (1L << 29)
#define XkbPerKeyRepeatMask (1L << 30)
#define XkbControlsEnabledMask (1L << 31)
#define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask)
#define XkbAllBooleanCtrlsMask (0x00001FFF)
#define XkbAllControlsMask (0xF8001FFF)
#define XkbAllControlEventsMask XkbAllControlsMask
/*
* AccessX Options Mask
* - The 'accessXOptions' field of an XkbControlsRec specifies the
* AccessX options that are currently in effect.
* - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
* fields of an XkbControlsRec specify the Access X options to be
* changed if the keyboard times out and the values to which they
* should be changed.
*/
#define XkbAX_SKPressFBMask (1L << 0)
#define XkbAX_SKAcceptFBMask (1L << 1)
#define XkbAX_FeatureFBMask (1L << 2)
#define XkbAX_SlowWarnFBMask (1L << 3)
#define XkbAX_IndicatorFBMask (1L << 4)
#define XkbAX_StickyKeysFBMask (1L << 5)
#define XkbAX_TwoKeysMask (1L << 6)
#define XkbAX_LatchToLockMask (1L << 7)
#define XkbAX_SKReleaseFBMask (1L << 8)
#define XkbAX_SKRejectFBMask (1L << 9)
#define XkbAX_BKRejectFBMask (1L << 10)
#define XkbAX_DumbBellFBMask (1L << 11)
#define XkbAX_FBOptionsMask (0xF3F)
#define XkbAX_SKOptionsMask (0x0C0)
#define XkbAX_AllOptionsMask (0xFFF)
/*
* XkbUseCoreKbd is used to specify the core keyboard without having
* to look up its X input extension identifier.
* XkbUseCorePtr is used to specify the core pointer without having
* to look up its X input extension identifier.
* XkbDfltXIClass is used to specify "don't care" any place that the
* XKB protocol is looking for an X Input Extension
* device class.
* XkbDfltXIId is used to specify "don't care" any place that the
* XKB protocol is looking for an X Input Extension
* feedback identifier.
* XkbAllXIClasses is used to get information about all device indicators,
* whether they're part of the indicator feedback class
* or the keyboard feedback class.
* XkbAllXIIds is used to get information about all device indicator
* feedbacks without having to list them.
* XkbXINone is used to indicate that no class or id has been specified.
* XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs
* XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
* XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
* XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class
* XkbExplicitXIId(c) True if 'i' explicitly specifies a device id
* XkbSingleXIClass(c) True if 'c' specifies exactly one device class,
* including the default.
* XkbSingleXIId(i) True if 'i' specifies exactly one device
* identifier, including the default.
*/
#define XkbUseCoreKbd 0x0100
#define XkbUseCorePtr 0x0200
#define XkbDfltXIClass 0x0300
#define XkbDfltXIId 0x0400
#define XkbAllXIClasses 0x0500
#define XkbAllXIIds 0x0600
#define XkbXINone 0xff00
#define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||\
((c)==LedFeedbackClass)||\
((c)==XkbDfltXIClass)||\
((c)==XkbAllXIClasses))
#define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||\
((c)==BellFeedbackClass)||\
((c)==XkbDfltXIClass)||\
((c)==XkbAllXIClasses))
#define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
#define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
#define XkbExplicitXIId(c) (((c)&(~0xff))==0)
#define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
#define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
#define XkbNoModifier 0xff
#define XkbNoShiftLevel 0xff
#define XkbNoShape 0xff
#define XkbNoIndicator 0xff
#define XkbNoModifierMask 0
#define XkbAllModifiersMask 0xff
#define XkbAllVirtualModsMask 0xffff
#define XkbNumKbdGroups 4
#define XkbMaxKbdGroup (XkbNumKbdGroups-1)
#define XkbMaxMouseKeysBtn 4
/*
* Group Index and Mask:
* - Indices into the kt_index array of a key type.
* - Mask specifies types to be changed for XkbChangeTypesOfKey
*/
#define XkbGroup1Index 0
#define XkbGroup2Index 1
#define XkbGroup3Index 2
#define XkbGroup4Index 3
#define XkbAnyGroup 254
#define XkbAllGroups 255
#define XkbGroup1Mask (1<<0)
#define XkbGroup2Mask (1<<1)
#define XkbGroup3Mask (1<<2)
#define XkbGroup4Mask (1<<3)
#define XkbAnyGroupMask (1<<7)
#define XkbAllGroupsMask (0xf)
/*
* BuildCoreState: Given a keyboard group and a modifier state,
* construct the value to be reported an event.
* GroupForCoreState: Given the state reported in an event,
* determine the keyboard group.
* IsLegalGroup: Returns TRUE if 'g' is a valid group index.
*/
#define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
#define XkbGroupForCoreState(s) (((s)>>13)&0x3)
#define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
/*
* GroupsWrap values:
* - The 'groupsWrap' field of an XkbControlsRec specifies the
* treatment of out of range groups.
* - Bits 6 and 7 of the group info field of a key symbol map
* specify the interpretation of out of range groups for the
* corresponding key.
*/
#define XkbWrapIntoRange (0x00)
#define XkbClampIntoRange (0x40)
#define XkbRedirectIntoRange (0x80)
/*
* Action flags: Reported in the 'flags' field of most key actions.
* Interpretation depends on the type of the action; not all actions
* accept all flags.
*
* Option Used for Actions
* ------ ----------------
* ClearLocks SetMods, LatchMods, SetGroup, LatchGroup
* LatchToLock SetMods, LatchMods, SetGroup, LatchGroup
* LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
* LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
* UseModMapMods SetMods, LatchMods, LockMods, ISOLock
* GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock
* UseDfltButton PtrBtn, LockPtrBtn
* NoAcceleration MovePtr
* MoveAbsoluteX MovePtr
* MoveAbsoluteY MovePtr
* ISODfltIsGroup ISOLock
* ISONoAffectMods ISOLock
* ISONoAffectGroup ISOLock
* ISONoAffectPtr ISOLock
* ISONoAffectCtrls ISOLock
* MessageOnPress ActionMessage
* MessageOnRelease ActionMessage
* MessageGenKeyEvent ActionMessage
* AffectDfltBtn SetPtrDflt
* DfltBtnAbsolute SetPtrDflt
* SwitchApplication SwitchScreen
* SwitchAbsolute SwitchScreen
*/
#define XkbSA_ClearLocks (1L << 0)
#define XkbSA_LatchToLock (1L << 1)
#define XkbSA_LockNoLock (1L << 0)
#define XkbSA_LockNoUnlock (1L << 1)
#define XkbSA_UseModMapMods (1L << 2)
#define XkbSA_GroupAbsolute (1L << 2)
#define XkbSA_UseDfltButton 0
#define XkbSA_NoAcceleration (1L << 0)
#define XkbSA_MoveAbsoluteX (1L << 1)
#define XkbSA_MoveAbsoluteY (1L << 2)
#define XkbSA_ISODfltIsGroup (1L << 7)
#define XkbSA_ISONoAffectMods (1L << 6)
#define XkbSA_ISONoAffectGroup (1L << 5)
#define XkbSA_ISONoAffectPtr (1L << 4)
#define XkbSA_ISONoAffectCtrls (1L << 3)
#define XkbSA_ISOAffectMask (0x78)
#define XkbSA_MessageOnPress (1L << 0)
#define XkbSA_MessageOnRelease (1L << 1)
#define XkbSA_MessageGenKeyEvent (1L << 2)
#define XkbSA_AffectDfltBtn 1
#define XkbSA_DfltBtnAbsolute (1L << 2)
#define XkbSA_SwitchApplication (1L << 0)
#define XkbSA_SwitchAbsolute (1L << 2)
/*
* The following values apply to the SA_DeviceValuator
* action only. Valuator operations specify the action
* to be taken. Values specified in the action are
* multiplied by 2^scale before they are applied.
*/
#define XkbSA_IgnoreVal (0x00)
#define XkbSA_SetValMin (0x10)
#define XkbSA_SetValCenter (0x20)
#define XkbSA_SetValMax (0x30)
#define XkbSA_SetValRelative (0x40)
#define XkbSA_SetValAbsolute (0x50)
#define XkbSA_ValOpMask (0x70)
#define XkbSA_ValScaleMask (0x07)
#define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
#define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
/*
* Action types: specifies the type of a key action. Reported in the
* type field of all key actions.
*/
#define XkbSA_NoAction 0x00
#define XkbSA_SetMods 0x01
#define XkbSA_LatchMods 0x02
#define XkbSA_LockMods 0x03
#define XkbSA_SetGroup 0x04
#define XkbSA_LatchGroup 0x05
#define XkbSA_LockGroup 0x06
#define XkbSA_MovePtr 0x07
#define XkbSA_PtrBtn 0x08
#define XkbSA_LockPtrBtn 0x09
#define XkbSA_SetPtrDflt 0x0a
#define XkbSA_ISOLock 0x0b
#define XkbSA_Terminate 0x0c
#define XkbSA_SwitchScreen 0x0d
#define XkbSA_SetControls 0x0e
#define XkbSA_LockControls 0x0f
#define XkbSA_ActionMessage 0x10
#define XkbSA_RedirectKey 0x11
#define XkbSA_DeviceBtn 0x12
#define XkbSA_LockDeviceBtn 0x13
#define XkbSA_DeviceValuator 0x14
#define XkbSA_LastAction XkbSA_DeviceValuator
#define XkbSA_NumActions (XkbSA_LastAction+1)
#define XkbSA_XFree86Private 0x86
/*
* Specifies the key actions that clear latched groups or modifiers.
*/
#define XkbSA_BreakLatch \
((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
(1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
(1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\
(1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
/*
* Macros to classify key actions
*/
#define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
#define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
#define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
/*
* Key Behavior Qualifier:
* KB_Permanent indicates that the behavior describes an unalterable
* characteristic of the keyboard, not an XKB software-simulation of
* the listed behavior.
* Key Behavior Types:
* Specifies the behavior of the underlying key.
*/
#define XkbKB_Permanent 0x80
#define XkbKB_OpMask 0x7f
#define XkbKB_Default 0x00
#define XkbKB_Lock 0x01
#define XkbKB_RadioGroup 0x02
#define XkbKB_Overlay1 0x03
#define XkbKB_Overlay2 0x04
#define XkbKB_RGAllowNone 0x80
/*
* Various macros which describe the range of legal keycodes.
*/
#define XkbMinLegalKeyCode 8
#define XkbMaxLegalKeyCode 255
#define XkbMaxKeyCount (XkbMaxLegalKeyCode-XkbMinLegalKeyCode+1)
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
/* Seems kinda silly to check that an unsigned char is <= 255... */
#define XkbIsLegalKeycode(k) ((k)>=XkbMinLegalKeyCode)
/*
* Assorted constants and limits.
*/
#define XkbNumModifiers 8
#define XkbNumVirtualMods 16
#define XkbNumIndicators 32
#define XkbAllIndicatorsMask (0xffffffff)
#define XkbMaxRadioGroups 32
#define XkbAllRadioGroupsMask (0xffffffff)
#define XkbMaxShiftLevel 63
#define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups)
#define XkbRGMaxMembers 12
#define XkbActionMessageLength 6
#define XkbKeyNameLength 4
#define XkbMaxRedirectCount 8
#define XkbGeomPtsPerMM 10
#define XkbGeomMaxColors 32
#define XkbGeomMaxLabelColors 3
#define XkbGeomMaxPriority 255
/*
* Key Type index and mask for the four standard key types.
*/
#define XkbOneLevelIndex 0
#define XkbTwoLevelIndex 1
#define XkbAlphabeticIndex 2
#define XkbKeypadIndex 3
#define XkbLastRequiredType XkbKeypadIndex
#define XkbNumRequiredTypes (XkbLastRequiredType+1)
#define XkbMaxKeyTypes 255
#define XkbOneLevelMask (1<<0)
#define XkbTwoLevelMask (1<<1)
#define XkbAlphabeticMask (1<<2)
#define XkbKeypadMask (1<<3)
#define XkbAllRequiredTypes (0xf)
#define XkbShiftLevel(n) ((n)-1)
#define XkbShiftLevelMask(n) (1<<((n)-1))
/*
* Extension name and version information
*/
#define XkbName "XKEYBOARD"
#define XkbMajorVersion 1
#define XkbMinorVersion 0
/*
* Explicit map components:
* - Used in the 'explicit' field of an XkbServerMap. Specifies
* the keyboard components that should _not_ be updated automatically
* in response to core protocol keyboard mapping requests.
*/
#define XkbExplicitKeyTypesMask (0x0f)
#define XkbExplicitKeyType1Mask (1<<0)
#define XkbExplicitKeyType2Mask (1<<1)
#define XkbExplicitKeyType3Mask (1<<2)
#define XkbExplicitKeyType4Mask (1<<3)
#define XkbExplicitInterpretMask (1<<4)
#define XkbExplicitAutoRepeatMask (1<<5)
#define XkbExplicitBehaviorMask (1<<6)
#define XkbExplicitVModMapMask (1<<7)
#define XkbAllExplicitMask (0xff)
/*
* Map components masks:
* Those in AllMapComponentsMask:
* - Specifies the individual fields to be loaded or changed for the
* GetMap and SetMap requests.
* Those in ClientInfoMask:
* - Specifies the components to be allocated by XkbAllocClientMap.
* Those in ServerInfoMask:
* - Specifies the components to be allocated by XkbAllocServerMap.
*/
#define XkbKeyTypesMask (1<<0)
#define XkbKeySymsMask (1<<1)
#define XkbModifierMapMask (1<<2)
#define XkbExplicitComponentsMask (1<<3)
#define XkbKeyActionsMask (1<<4)
#define XkbKeyBehaviorsMask (1<<5)
#define XkbVirtualModsMask (1<<6)
#define XkbVirtualModMapMask (1<<7)
#define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask)
#define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask)
#define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask)
/*
* Symbol interpretations flags:
* - Used in the flags field of a symbol interpretation
*/
#define XkbSI_AutoRepeat (1<<0)
#define XkbSI_LockingKey (1<<1)
/*
* Symbol interpretations match specification:
* - Used in the match field of a symbol interpretation to specify
* the conditions under which an interpretation is used.
*/
#define XkbSI_LevelOneOnly (0x80)
#define XkbSI_OpMask (0x7f)
#define XkbSI_NoneOf (0)
#define XkbSI_AnyOfOrNone (1)
#define XkbSI_AnyOf (2)
#define XkbSI_AllOf (3)
#define XkbSI_Exactly (4)
/*
* Indicator map flags:
* - Used in the flags field of an indicator map to indicate the
* conditions under which and indicator can be changed and the
* effects of changing the indicator.
*/
#define XkbIM_NoExplicit (1L << 7)
#define XkbIM_NoAutomatic (1L << 6)
#define XkbIM_LEDDrivesKB (1L << 5)
/*
* Indicator map component specifications:
* - Used by the 'which_groups' and 'which_mods' fields of an indicator
* map to specify which keyboard components should be used to drive
* the indicator.
*/
#define XkbIM_UseBase (1L << 0)
#define XkbIM_UseLatched (1L << 1)
#define XkbIM_UseLocked (1L << 2)
#define XkbIM_UseEffective (1L << 3)
#define XkbIM_UseCompat (1L << 4)
#define XkbIM_UseNone 0
#define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked\
|XkbIM_UseEffective)
#define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat)
/*
* Compatibility Map Compontents:
* - Specifies the components to be allocated in XkbAllocCompatMap.
*/
#define XkbSymInterpMask (1<<0)
#define XkbGroupCompatMask (1<<1)
#define XkbAllCompatMask (0x3)
/*
* Names component mask:
* - Specifies the names to be loaded or changed for the GetNames and
* SetNames requests.
* - Specifies the names that have changed in a NamesNotify event.
* - Specifies the names components to be allocated by XkbAllocNames.
*/
#define XkbKeycodesNameMask (1<<0)
#define XkbGeometryNameMask (1<<1)
#define XkbSymbolsNameMask (1<<2)
#define XkbPhysSymbolsNameMask (1<<3)
#define XkbTypesNameMask (1<<4)
#define XkbCompatNameMask (1<<5)
#define XkbKeyTypeNamesMask (1<<6)
#define XkbKTLevelNamesMask (1<<7)
#define XkbIndicatorNamesMask (1<<8)
#define XkbKeyNamesMask (1<<9)
#define XkbKeyAliasesMask (1<<10)
#define XkbVirtualModNamesMask (1<<11)
#define XkbGroupNamesMask (1<<12)
#define XkbRGNamesMask (1<<13)
#define XkbComponentNamesMask (0x3f)
#define XkbAllNamesMask (0x3fff)
/*
* GetByName components:
* - Specifies desired or necessary components to GetKbdByName request.
* - Reports the components that were found in a GetKbdByNameReply
*/
#define XkbGBN_TypesMask (1L << 0)
#define XkbGBN_CompatMapMask (1L << 1)
#define XkbGBN_ClientSymbolsMask (1L << 2)
#define XkbGBN_ServerSymbolsMask (1L << 3)
#define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask)
#define XkbGBN_IndicatorMapMask (1L << 4)
#define XkbGBN_KeyNamesMask (1L << 5)
#define XkbGBN_GeometryMask (1L << 6)
#define XkbGBN_OtherNamesMask (1L << 7)
#define XkbGBN_AllComponentsMask (0xff)
/*
* ListComponents flags
*/
#define XkbLC_Hidden (1L << 0)
#define XkbLC_Default (1L << 1)
#define XkbLC_Partial (1L << 2)
#define XkbLC_AlphanumericKeys (1L << 8)
#define XkbLC_ModifierKeys (1L << 9)
#define XkbLC_KeypadKeys (1L << 10)
#define XkbLC_FunctionKeys (1L << 11)
#define XkbLC_AlternateGroup (1L << 12)
/*
* X Input Extension Interactions
* - Specifies the possible interactions between XKB and the X input
* extension
* - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
* XKB information about an extension device.
* - Reports the list of supported optional features in the reply to
* XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
* XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
* events to indicate an attempt to use an unsupported feature.
*/
#define XkbXI_KeyboardsMask (1L << 0)
#define XkbXI_ButtonActionsMask (1L << 1)
#define XkbXI_IndicatorNamesMask (1L << 2)
#define XkbXI_IndicatorMapsMask (1L << 3)
#define XkbXI_IndicatorStateMask (1L << 4)
#define XkbXI_UnsupportedFeatureMask (1L << 15)
#define XkbXI_AllFeaturesMask (0x001f)
#define XkbXI_AllDeviceFeaturesMask (0x001e)
#define XkbXI_IndicatorsMask (0x001c)
#define XkbAllExtensionDeviceEventsMask (0x801f)
/*
* Per-Client Flags:
* - Specifies flags to be changed by the PerClientFlags request.
*/
#define XkbPCF_DetectableAutoRepeatMask (1L << 0)
#define XkbPCF_GrabsUseXKBStateMask (1L << 1)
#define XkbPCF_AutoResetControlsMask (1L << 2)
#define XkbPCF_LookupStateWhenGrabbed (1L << 3)
#define XkbPCF_SendEventUsesXKBState (1L << 4)
#define XkbPCF_AllFlagsMask (0x1F)
/*
* Debugging flags and controls
*/
#define XkbDF_DisableLocks (1<<0)
#endif /* _XKB_H_ */

View File

@@ -0,0 +1,662 @@
/************************************************************
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _XKBGEOM_H_
#define _XKBGEOM_H_
#include <X11/extensions/XKBstr.h>
#ifdef XKB_IN_SERVER
#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias
#define XkbAddGeomColor SrvXkbAddGeomColor
#define XkbAddGeomDoodad SrvXkbAddGeomDoodad
#define XkbAddGeomKey SrvXkbAddGeomKey
#define XkbAddGeomOutline SrvXkbAddGeomOutline
#define XkbAddGeomOverlay SrvXkbAddGeomOverlay
#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow
#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey
#define XkbAddGeomProperty SrvXkbAddGeomProperty
#define XkbAddGeomRow SrvXkbAddGeomRow
#define XkbAddGeomSection SrvXkbAddGeomSection
#define XkbAddGeomShape SrvXkbAddGeomShape
#define XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases
#define XkbAllocGeomColors SrvXkbAllocGeomColors
#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads
#define XkbAllocGeomKeys SrvXkbAllocGeomKeys
#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines
#define XkbAllocGeomPoints SrvXkbAllocGeomPoints
#define XkbAllocGeomProps SrvXkbAllocGeomProps
#define XkbAllocGeomRows SrvXkbAllocGeomRows
#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads
#define XkbAllocGeomSections SrvXkbAllocGeomSections
#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays
#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows
#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys
#define XkbAllocGeomShapes SrvXkbAllocGeomShapes
#define XkbAllocGeometry SrvXkbAllocGeometry
#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases
#define XkbFreeGeomColors SrvXkbFreeGeomColors
#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads
#define XkbFreeGeomProperties SrvXkbFreeGeomProperties
#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys
#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows
#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays
#define XkbFreeGeomKeys SrvXkbFreeGeomKeys
#define XkbFreeGeomRows SrvXkbFreeGeomRows
#define XkbFreeGeomSections SrvXkbFreeGeomSections
#define XkbFreeGeomPoints SrvXkbFreeGeomPoints
#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines
#define XkbFreeGeomShapes SrvXkbFreeGeomShapes
#define XkbFreeGeometry SrvXkbFreeGeometry
#endif
typedef struct _XkbProperty {
char *name;
char *value;
} XkbPropertyRec,*XkbPropertyPtr;
typedef struct _XkbColor {
unsigned int pixel;
char * spec;
} XkbColorRec,*XkbColorPtr;
typedef struct _XkbPoint {
short x;
short y;
} XkbPointRec, *XkbPointPtr;
typedef struct _XkbBounds {
short x1,y1;
short x2,y2;
} XkbBoundsRec, *XkbBoundsPtr;
#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
/*
* In the following structs, this pattern is used for dynamically sized arrays:
* foo is an array for which sz_foo entries are allocated & num_foo are used
*/
typedef struct _XkbOutline {
unsigned short num_points;
unsigned short sz_points;
unsigned short corner_radius;
XkbPointPtr points;
} XkbOutlineRec, *XkbOutlinePtr;
typedef struct _XkbShape {
Atom name;
unsigned short num_outlines;
unsigned short sz_outlines;
XkbOutlinePtr outlines;
XkbOutlinePtr approx;
XkbOutlinePtr primary;
XkbBoundsRec bounds;
} XkbShapeRec, *XkbShapePtr;
#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
typedef struct _XkbShapeDoodad {
Atom name;
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short color_ndx;
unsigned short shape_ndx;
} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
typedef struct _XkbTextDoodad {
Atom name;
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
short width;
short height;
unsigned short color_ndx;
char * text;
char * font;
} XkbTextDoodadRec, *XkbTextDoodadPtr;
#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
typedef struct _XkbIndicatorDoodad {
Atom name;
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short shape_ndx;
unsigned short on_color_ndx;
unsigned short off_color_ndx;
} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
#define XkbSetIndicatorDoodadOnColor(g,d,c) \
((d)->on_color_ndx= (c)-&(g)->colors[0])
#define XkbSetIndicatorDoodadOffColor(g,d,c) \
((d)->off_color_ndx= (c)-&(g)->colors[0])
#define XkbSetIndicatorDoodadShape(g,d,s) \
((d)->shape_ndx= (s)-&(g)->shapes[0])
typedef struct _XkbLogoDoodad {
Atom name;
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short color_ndx;
unsigned short shape_ndx;
char * logo_name;
} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
typedef struct _XkbAnyDoodad {
Atom name;
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
typedef union _XkbDoodad {
XkbAnyDoodadRec any;
XkbShapeDoodadRec shape;
XkbTextDoodadRec text;
XkbIndicatorDoodadRec indicator;
XkbLogoDoodadRec logo;
} XkbDoodadRec, *XkbDoodadPtr;
#define XkbUnknownDoodad 0
#define XkbOutlineDoodad 1
#define XkbSolidDoodad 2
#define XkbTextDoodad 3
#define XkbIndicatorDoodad 4
#define XkbLogoDoodad 5
typedef struct _XkbKey {
XkbKeyNameRec name;
short gap;
unsigned char shape_ndx;
unsigned char color_ndx;
} XkbKeyRec, *XkbKeyPtr;
#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
typedef struct _XkbRow {
short top;
short left;
unsigned short num_keys;
unsigned short sz_keys;
int vertical;
XkbKeyPtr keys;
XkbBoundsRec bounds;
} XkbRowRec, *XkbRowPtr;
typedef struct _XkbSection {
Atom name;
unsigned char priority;
short top;
short left;
unsigned short width;
unsigned short height;
short angle;
unsigned short num_rows;
unsigned short num_doodads;
unsigned short num_overlays;
unsigned short sz_rows;
unsigned short sz_doodads;
unsigned short sz_overlays;
XkbRowPtr rows;
XkbDoodadPtr doodads;
XkbBoundsRec bounds;
struct _XkbOverlay *overlays;
} XkbSectionRec, *XkbSectionPtr;
typedef struct _XkbOverlayKey {
XkbKeyNameRec over;
XkbKeyNameRec under;
} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
typedef struct _XkbOverlayRow {
unsigned short row_under;
unsigned short num_keys;
unsigned short sz_keys;
XkbOverlayKeyPtr keys;
} XkbOverlayRowRec,*XkbOverlayRowPtr;
typedef struct _XkbOverlay {
Atom name;
XkbSectionPtr section_under;
unsigned short num_rows;
unsigned short sz_rows;
XkbOverlayRowPtr rows;
XkbBoundsPtr bounds;
} XkbOverlayRec,*XkbOverlayPtr;
typedef struct _XkbGeometry {
Atom name;
unsigned short width_mm;
unsigned short height_mm;
char * label_font;
XkbColorPtr label_color;
XkbColorPtr base_color;
unsigned short sz_properties;
unsigned short sz_colors;
unsigned short sz_shapes;
unsigned short sz_sections;
unsigned short sz_doodads;
unsigned short sz_key_aliases;
unsigned short num_properties;
unsigned short num_colors;
unsigned short num_shapes;
unsigned short num_sections;
unsigned short num_doodads;
unsigned short num_key_aliases;
XkbPropertyPtr properties;
XkbColorPtr colors;
XkbShapePtr shapes;
XkbSectionPtr sections;
XkbDoodadPtr doodads;
XkbKeyAliasPtr key_aliases;
} XkbGeometryRec;
#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
#define XkbGeomPropertiesMask (1<<0)
#define XkbGeomColorsMask (1<<1)
#define XkbGeomShapesMask (1<<2)
#define XkbGeomSectionsMask (1<<3)
#define XkbGeomDoodadsMask (1<<4)
#define XkbGeomKeyAliasesMask (1<<5)
#define XkbGeomAllMask (0x3f)
typedef struct _XkbGeometrySizes {
unsigned int which;
unsigned short num_properties;
unsigned short num_colors;
unsigned short num_shapes;
unsigned short num_sections;
unsigned short num_doodads;
unsigned short num_key_aliases;
} XkbGeometrySizesRec,*XkbGeometrySizesPtr;
_XFUNCPROTOBEGIN
extern XkbPropertyPtr
XkbAddGeomProperty(
XkbGeometryPtr /* geom */,
char * /* name */,
char * /* value */
);
extern XkbKeyAliasPtr
XkbAddGeomKeyAlias(
XkbGeometryPtr /* geom */,
char * /* alias */,
char * /* real */
);
extern XkbColorPtr
XkbAddGeomColor(
XkbGeometryPtr /* geom */,
char * /* spec */,
unsigned int /* pixel */
);
extern XkbOutlinePtr
XkbAddGeomOutline(
XkbShapePtr /* shape */,
int /* sz_points */
);
extern XkbShapePtr
XkbAddGeomShape(
XkbGeometryPtr /* geom */,
Atom /* name */,
int /* sz_outlines */
);
extern XkbKeyPtr
XkbAddGeomKey(
XkbRowPtr /* row */
);
extern XkbRowPtr
XkbAddGeomRow(
XkbSectionPtr /* section */,
int /* sz_keys */
);
extern XkbSectionPtr
XkbAddGeomSection(
XkbGeometryPtr /* geom */,
Atom /* name */,
int /* sz_rows */,
int /* sz_doodads */,
int /* sz_overlays */
);
extern XkbOverlayPtr
XkbAddGeomOverlay(
XkbSectionPtr /* section */,
Atom /* name */,
int /* sz_rows */
);
extern XkbOverlayRowPtr
XkbAddGeomOverlayRow(
XkbOverlayPtr /* overlay */,
int /* row_under */,
int /* sz_keys */
);
extern XkbOverlayKeyPtr
XkbAddGeomOverlayKey(
XkbOverlayPtr /* overlay */,
XkbOverlayRowPtr /* row */,
char * /* over */,
char * /* under */
);
extern XkbDoodadPtr
XkbAddGeomDoodad(
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */,
Atom /* name */
);
extern void
XkbFreeGeomKeyAliases(
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomColors(
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomDoodads(
XkbDoodadPtr /* doodads */,
int /* nDoodads */,
Bool /* freeAll */
);
extern void
XkbFreeGeomProperties(
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomOverlayKeys(
XkbOverlayRowPtr /* row */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomOverlayRows(
XkbOverlayPtr /* overlay */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomOverlays(
XkbSectionPtr /* section */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomKeys(
XkbRowPtr /* row */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomRows(
XkbSectionPtr /* section */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomSections(
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomPoints(
XkbOutlinePtr /* outline */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomOutlines(
XkbShapePtr /* shape */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeomShapes(
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbFreeGeometry(
XkbGeometryPtr /* geom */,
unsigned int /* which */,
Bool /* freeMap */
);
extern Status
XkbAllocGeomProps(
XkbGeometryPtr /* geom */,
int /* nProps */
);
extern Status
XkbAllocGeomKeyAliases(
XkbGeometryPtr /* geom */,
int /* nAliases */
);
extern Status
XkbAllocGeomColors(
XkbGeometryPtr /* geom */,
int /* nColors */
);
extern Status
XkbAllocGeomShapes(
XkbGeometryPtr /* geom */,
int /* nShapes */
);
extern Status
XkbAllocGeomSections(
XkbGeometryPtr /* geom */,
int /* nSections */
);
extern Status
XkbAllocGeomOverlays(
XkbSectionPtr /* section */,
int /* num_needed */
);
extern Status
XkbAllocGeomOverlayRows(
XkbOverlayPtr /* overlay */,
int /* num_needed */
);
extern Status
XkbAllocGeomOverlayKeys(
XkbOverlayRowPtr /* row */,
int /* num_needed */
);
extern Status
XkbAllocGeomDoodads(
XkbGeometryPtr /* geom */,
int /* nDoodads */
);
extern Status
XkbAllocGeomSectionDoodads(
XkbSectionPtr /* section */,
int /* nDoodads */
);
extern Status
XkbAllocGeomOutlines(
XkbShapePtr /* shape */,
int /* nOL */
);
extern Status
XkbAllocGeomRows(
XkbSectionPtr /* section */,
int /* nRows */
);
extern Status
XkbAllocGeomPoints(
XkbOutlinePtr /* ol */,
int /* nPts */
);
extern Status
XkbAllocGeomKeys(
XkbRowPtr /* row */,
int /* nKeys */
);
extern Status
XkbAllocGeometry(
XkbDescPtr /* xkb */,
XkbGeometrySizesPtr /* sizes */
);
extern Status
XkbSetGeometry(
Display * /* dpy */,
unsigned /* deviceSpec */,
XkbGeometryPtr /* geom */
);
extern Bool
XkbComputeShapeTop(
XkbShapePtr /* shape */,
XkbBoundsPtr /* bounds */
);
extern Bool
XkbComputeShapeBounds(
XkbShapePtr /* shape */
);
extern Bool
XkbComputeRowBounds(
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */,
XkbRowPtr /* row */
);
extern Bool
XkbComputeSectionBounds(
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */
);
extern char *
XkbFindOverlayForKey(
XkbGeometryPtr /* geom */,
XkbSectionPtr /* wanted */,
char * /* under */
);
extern Status
XkbGetGeometry(
Display * /* dpy */,
XkbDescPtr /* xkb */
);
extern Status
XkbGetNamedGeometry(
Display * /* dpy */,
XkbDescPtr /* xkb */,
Atom /* name */
);
_XFUNCPROTOEND
#endif /* _XKBSTR_H_ */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,642 @@
/************************************************************
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _XKBSTR_H_
#define _XKBSTR_H_
#include <X11/extensions/XKB.h>
#define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
#define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
#define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l)))
/*
* The Xkb structs are full of implicit padding to properly align members.
* We can't clean that up without breaking ABI, so tell clang not to bother
* complaining about it.
*/
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpadded"
#endif
/*
* Common data structures and access macros
*/
typedef struct _XkbStateRec {
unsigned char group;
unsigned char locked_group;
unsigned short base_group;
unsigned short latched_group;
unsigned char mods;
unsigned char base_mods;
unsigned char latched_mods;
unsigned char locked_mods;
unsigned char compat_state;
unsigned char grab_mods;
unsigned char compat_grab_mods;
unsigned char lookup_mods;
unsigned char compat_lookup_mods;
unsigned short ptr_buttons;
} XkbStateRec,*XkbStatePtr;
#define XkbModLocks(s) ((s)->locked_mods)
#define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
#define XkbGroupLock(s) ((s)->locked_group)
#define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
#define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
#define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)
typedef struct _XkbMods {
unsigned char mask; /* effective mods */
unsigned char real_mods;
unsigned short vmods;
} XkbModsRec,*XkbModsPtr;
typedef struct _XkbKTMapEntry {
Bool active;
unsigned char level;
XkbModsRec mods;
} XkbKTMapEntryRec,*XkbKTMapEntryPtr;
typedef struct _XkbKeyType {
XkbModsRec mods;
unsigned char num_levels;
unsigned char map_count;
/* map is an array of map_count XkbKTMapEntryRec structs */
XkbKTMapEntryPtr map;
/* preserve is an array of map_count XkbModsRec structs */
XkbModsPtr preserve;
Atom name;
/* level_names is an array of num_levels Atoms */
Atom * level_names;
} XkbKeyTypeRec, *XkbKeyTypePtr;
#define XkbNumGroups(g) ((g)&0x0f)
#define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)
#define XkbOutOfRangeGroupAction(g) ((g)&0xc0)
#define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)
#define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
#define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))
/*
* Structures and access macros used primarily by the server
*/
typedef struct _XkbBehavior {
unsigned char type;
unsigned char data;
} XkbBehavior;
#define XkbAnyActionDataSize 7
typedef struct _XkbAnyAction {
unsigned char type;
unsigned char data[XkbAnyActionDataSize];
} XkbAnyAction;
typedef struct _XkbModAction {
unsigned char type;
unsigned char flags;
unsigned char mask;
unsigned char real_mods;
unsigned char vmods1;
unsigned char vmods2;
} XkbModAction;
#define XkbModActionVMods(a) \
((short)(((a)->vmods1<<8)|((a)->vmods2)))
#define XkbSetModActionVMods(a,v) \
(((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
typedef struct _XkbGroupAction {
unsigned char type;
unsigned char flags;
char group_XXX;
} XkbGroupAction;
#define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX))
#define XkbSASetGroup(a,g) ((a)->group_XXX=(g))
typedef struct _XkbISOAction {
unsigned char type;
unsigned char flags;
unsigned char mask;
unsigned char real_mods;
char group_XXX;
unsigned char affect;
unsigned char vmods1;
unsigned char vmods2;
} XkbISOAction;
typedef struct _XkbPtrAction {
unsigned char type;
unsigned char flags;
unsigned char high_XXX;
unsigned char low_XXX;
unsigned char high_YYY;
unsigned char low_YYY;
} XkbPtrAction;
#define XkbPtrActionX(a) (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
#define XkbPtrActionY(a) (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
#define XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
#define XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
typedef struct _XkbPtrBtnAction {
unsigned char type;
unsigned char flags;
unsigned char count;
unsigned char button;
} XkbPtrBtnAction;
typedef struct _XkbPtrDfltAction {
unsigned char type;
unsigned char flags;
unsigned char affect;
char valueXXX;
} XkbPtrDfltAction;
#define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX))
#define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))
typedef struct _XkbSwitchScreenAction {
unsigned char type;
unsigned char flags;
char screenXXX;
} XkbSwitchScreenAction;
#define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX))
#define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))
typedef struct _XkbCtrlsAction {
unsigned char type;
unsigned char flags;
unsigned char ctrls3;
unsigned char ctrls2;
unsigned char ctrls1;
unsigned char ctrls0;
} XkbCtrlsAction;
#define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),\
((a)->ctrls2=(((c)>>16)&0xff)),\
((a)->ctrls1=(((c)>>8)&0xff)),\
((a)->ctrls0=((c)&0xff)))
#define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\
(((unsigned int)(a)->ctrls2)<<16)|\
(((unsigned int)(a)->ctrls1)<<8)|\
((unsigned int)((a)->ctrls0)))
typedef struct _XkbMessageAction {
unsigned char type;
unsigned char flags;
unsigned char message[6];
} XkbMessageAction;
typedef struct _XkbRedirectKeyAction {
unsigned char type;
unsigned char new_key;
unsigned char mods_mask;
unsigned char mods;
unsigned char vmods_mask0;
unsigned char vmods_mask1;
unsigned char vmods0;
unsigned char vmods1;
} XkbRedirectKeyAction;
#define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|\
((unsigned int)(a)->vmods0))
#define XkbSARedirectSetVMods(a,m) (((a)->vmods1=(((m)>>8)&0xff)),\
((a)->vmods0=((m)&0xff)))
#define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|\
((unsigned int)(a)->vmods_mask0))
#define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),\
((a)->vmods_mask0=((m)&0xff)))
typedef struct _XkbDeviceBtnAction {
unsigned char type;
unsigned char flags;
unsigned char count;
unsigned char button;
unsigned char device;
} XkbDeviceBtnAction;
typedef struct _XkbDeviceValuatorAction {
unsigned char type;
unsigned char device;
unsigned char v1_what;
unsigned char v1_ndx;
unsigned char v1_value;
unsigned char v2_what;
unsigned char v2_ndx;
unsigned char v2_value;
} XkbDeviceValuatorAction;
typedef union _XkbAction {
XkbAnyAction any;
XkbModAction mods;
XkbGroupAction group;
XkbISOAction iso;
XkbPtrAction ptr;
XkbPtrBtnAction btn;
XkbPtrDfltAction dflt;
XkbSwitchScreenAction screen;
XkbCtrlsAction ctrls;
XkbMessageAction msg;
XkbRedirectKeyAction redirect;
XkbDeviceBtnAction devbtn;
XkbDeviceValuatorAction devval;
unsigned char type;
} XkbAction;
typedef struct _XkbControls {
unsigned char mk_dflt_btn;
unsigned char num_groups;
unsigned char groups_wrap;
XkbModsRec internal;
XkbModsRec ignore_lock;
unsigned int enabled_ctrls;
unsigned short repeat_delay;
unsigned short repeat_interval;
unsigned short slow_keys_delay;
unsigned short debounce_delay;
unsigned short mk_delay;
unsigned short mk_interval;
unsigned short mk_time_to_max;
unsigned short mk_max_speed;
short mk_curve;
unsigned short ax_options;
unsigned short ax_timeout;
unsigned short axt_opts_mask;
unsigned short axt_opts_values;
unsigned int axt_ctrls_mask;
unsigned int axt_ctrls_values;
unsigned char per_key_repeat[XkbPerKeyBitArraySize];
} XkbControlsRec, *XkbControlsPtr;
#define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
#define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))
#define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
typedef struct _XkbServerMapRec {
/* acts is an array of XkbActions structs, with size_acts entries
allocated, and num_acts entries used. */
unsigned short num_acts;
unsigned short size_acts;
XkbAction *acts;
/* behaviors, key_acts, explicit, & vmodmap are all arrays with
(xkb->max_key_code + 1) entries allocated for each. */
XkbBehavior *behaviors;
unsigned short *key_acts;
#if defined(__cplusplus) || defined(c_plusplus)
/* explicit is a C++ reserved word */
unsigned char *c_explicit;
#else
unsigned char *explicit;
#endif
unsigned char vmods[XkbNumVirtualMods];
unsigned short *vmodmap;
} XkbServerMapRec, *XkbServerMapPtr;
#define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
/*
* Structures and access macros used primarily by clients
*/
typedef struct _XkbSymMapRec {
unsigned char kt_index[XkbNumKbdGroups];
unsigned char group_info;
unsigned char width;
unsigned short offset;
} XkbSymMapRec, *XkbSymMapPtr;
typedef struct _XkbClientMapRec {
/* types is an array of XkbKeyTypeRec structs, with size_types entries
allocated, and num_types entries used. */
unsigned char size_types;
unsigned char num_types;
XkbKeyTypePtr types;
/* syms is an array of size_syms KeySyms, in which num_syms are used */
unsigned short size_syms;
unsigned short num_syms;
KeySym *syms;
/* key_sym_map is an array of (max_key_code + 1) XkbSymMapRec structs */
XkbSymMapPtr key_sym_map;
/* modmap is an array of (max_key_code + 1) unsigned chars */
unsigned char *modmap;
} XkbClientMapRec, *XkbClientMapPtr;
#define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)
#define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))
#define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
#define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
#define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
#define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
#define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
#define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
#define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])
/*
* Compatibility structures and access macros
*/
typedef struct _XkbSymInterpretRec {
KeySym sym;
unsigned char flags;
unsigned char match;
unsigned char mods;
unsigned char virtual_mod;
XkbAnyAction act;
} XkbSymInterpretRec,*XkbSymInterpretPtr;
typedef struct _XkbCompatMapRec {
/* sym_interpret is an array of XkbSymInterpretRec structs,
in which size_si are allocated & num_si are used. */
XkbSymInterpretPtr sym_interpret;
XkbModsRec groups[XkbNumKbdGroups];
unsigned short num_si;
unsigned short size_si;
} XkbCompatMapRec, *XkbCompatMapPtr;
typedef struct _XkbIndicatorMapRec {
unsigned char flags;
unsigned char which_groups;
unsigned char groups;
unsigned char which_mods;
XkbModsRec mods;
unsigned int ctrls;
} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
#define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&\
(((i)->which_groups&&(i)->groups)||\
((i)->which_mods&&(i)->mods.mask)||\
((i)->ctrls)))
#define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||\
((i)->which_mods)||((i)->ctrls))
typedef struct _XkbIndicatorRec {
unsigned long phys_indicators;
XkbIndicatorMapRec maps[XkbNumIndicators];
} XkbIndicatorRec,*XkbIndicatorPtr;
typedef struct _XkbKeyNameRec {
char name[XkbKeyNameLength];
} XkbKeyNameRec,*XkbKeyNamePtr;
typedef struct _XkbKeyAliasRec {
char real[XkbKeyNameLength];
char alias[XkbKeyNameLength];
} XkbKeyAliasRec,*XkbKeyAliasPtr;
/*
* Names for everything
*/
typedef struct _XkbNamesRec {
Atom keycodes;
Atom geometry;
Atom symbols;
Atom types;
Atom compat;
Atom vmods[XkbNumVirtualMods];
Atom indicators[XkbNumIndicators];
Atom groups[XkbNumKbdGroups];
/* keys is an array of (xkb->max_key_code + 1) XkbKeyNameRec entries */
XkbKeyNamePtr keys;
/* key_aliases is an array of num_key_aliases XkbKeyAliasRec entries */
XkbKeyAliasPtr key_aliases;
/* radio_groups is an array of num_rg Atoms */
Atom *radio_groups;
Atom phys_symbols;
/* num_keys seems to be unused in libX11 */
unsigned char num_keys;
unsigned char num_key_aliases;
unsigned short num_rg;
} XkbNamesRec,*XkbNamesPtr;
typedef struct _XkbGeometry *XkbGeometryPtr;
/*
* Tie it all together into one big keyboard description
*/
typedef struct _XkbDesc {
struct _XDisplay * dpy;
unsigned short flags;
unsigned short device_spec;
KeyCode min_key_code;
KeyCode max_key_code;
XkbControlsPtr ctrls;
XkbServerMapPtr server;
XkbClientMapPtr map;
XkbIndicatorPtr indicators;
XkbNamesPtr names;
XkbCompatMapPtr compat;
XkbGeometryPtr geom;
} XkbDescRec, *XkbDescPtr;
#define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g))
#define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))
#define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))
#define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))
#define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))
#define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))
#define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))
#define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))
#define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])
#define XkbKeySymEntry(d,k,sl,g) \
(XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
#define XkbKeyAction(d,k,n) \
(XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
#define XkbKeyActionEntry(d,k,sl,g) \
(XkbKeyHasActions(d,k)?\
XkbKeyAction(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))):NULL)
#define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)
#define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
#define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))
#define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&&\
((k)<=(d)->max_key_code))
#define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)
/*
* The following structures can be used to track changes
* to a keyboard device
*/
typedef struct _XkbMapChanges {
unsigned short changed;
KeyCode min_key_code;
KeyCode max_key_code;
unsigned char first_type;
unsigned char num_types;
KeyCode first_key_sym;
unsigned char num_key_syms;
KeyCode first_key_act;
unsigned char num_key_acts;
KeyCode first_key_behavior;
unsigned char num_key_behaviors;
KeyCode first_key_explicit;
unsigned char num_key_explicit;
KeyCode first_modmap_key;
unsigned char num_modmap_keys;
KeyCode first_vmodmap_key;
unsigned char num_vmodmap_keys;
unsigned char pad;
unsigned short vmods;
} XkbMapChangesRec,*XkbMapChangesPtr;
typedef struct _XkbControlsChanges {
unsigned int changed_ctrls;
unsigned int enabled_ctrls_changes;
Bool num_groups_changed;
} XkbControlsChangesRec,*XkbControlsChangesPtr;
typedef struct _XkbIndicatorChanges {
unsigned int state_changes;
unsigned int map_changes;
} XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
typedef struct _XkbNameChanges {
unsigned int changed;
unsigned char first_type;
unsigned char num_types;
unsigned char first_lvl;
unsigned char num_lvls;
unsigned char num_aliases;
unsigned char num_rg;
unsigned char first_key;
unsigned char num_keys;
unsigned short changed_vmods;
unsigned long changed_indicators;
unsigned char changed_groups;
} XkbNameChangesRec,*XkbNameChangesPtr;
typedef struct _XkbCompatChanges {
unsigned char changed_groups;
unsigned short first_si;
unsigned short num_si;
} XkbCompatChangesRec,*XkbCompatChangesPtr;
typedef struct _XkbChanges {
unsigned short device_spec;
unsigned short state_changes;
XkbMapChangesRec map;
XkbControlsChangesRec ctrls;
XkbIndicatorChangesRec indicators;
XkbNameChangesRec names;
XkbCompatChangesRec compat;
} XkbChangesRec, *XkbChangesPtr;
/*
* These data structures are used to construct a keymap from
* a set of components or to list components in the server
* database.
*/
typedef struct _XkbComponentNames {
char * keymap;
char * keycodes;
char * types;
char * compat;
char * symbols;
char * geometry;
} XkbComponentNamesRec, *XkbComponentNamesPtr;
typedef struct _XkbComponentName {
unsigned short flags;
char * name;
} XkbComponentNameRec,*XkbComponentNamePtr;
typedef struct _XkbComponentList {
int num_keymaps;
int num_keycodes;
int num_types;
int num_compat;
int num_symbols;
int num_geometry;
XkbComponentNamePtr keymaps;
XkbComponentNamePtr keycodes;
XkbComponentNamePtr types;
XkbComponentNamePtr compat;
XkbComponentNamePtr symbols;
XkbComponentNamePtr geometry;
} XkbComponentListRec, *XkbComponentListPtr;
/*
* The following data structures describe and track changes to a
* non-keyboard extension device
*/
typedef struct _XkbDeviceLedInfo {
unsigned short led_class;
unsigned short led_id;
unsigned int phys_indicators;
unsigned int maps_present;
unsigned int names_present;
unsigned int state;
Atom names[XkbNumIndicators];
XkbIndicatorMapRec maps[XkbNumIndicators];
} XkbDeviceLedInfoRec,*XkbDeviceLedInfoPtr;
typedef struct _XkbDeviceInfo {
char * name;
Atom type;
unsigned short device_spec;
Bool has_own_state;
unsigned short supported;
unsigned short unsupported;
/* btn_acts is an array of num_btn XkbAction entries */
unsigned short num_btns;
XkbAction * btn_acts;
unsigned short sz_leds;
unsigned short num_leds;
unsigned short dflt_kbd_fb;
unsigned short dflt_led_fb;
/* leds is an array of XkbDeviceLedInfoRec in which
sz_leds entries are allocated and num_leds entries are used */
XkbDeviceLedInfoPtr leds;
} XkbDeviceInfoRec,*XkbDeviceInfoPtr;
#define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
#define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
#define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))
typedef struct _XkbDeviceLedChanges {
unsigned short led_class;
unsigned short led_id;
unsigned int defined; /* names or maps changed */
struct _XkbDeviceLedChanges *next;
} XkbDeviceLedChangesRec,*XkbDeviceLedChangesPtr;
typedef struct _XkbDeviceChanges {
unsigned int changed;
unsigned short first_btn;
unsigned short num_btns;
XkbDeviceLedChangesRec leds;
} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
#ifdef __clang__
#pragma clang diagnostic pop
#endif
#endif /* _XKBSTR_H_ */

View File

@@ -0,0 +1,50 @@
/*
* Copyright 1992 Network Computing Devices
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of NCD. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NCD. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#ifndef _XLBX_H_
#define _XLBX_H_
#include <X11/Xfuncproto.h>
#include <X11/Xdefs.h>
#include <X11/Xlib.h>
#include <X11/extensions/lbx.h>
_XFUNCPROTOBEGIN
Bool XLbxQueryExtension(
Display* /* dpy */,
int* /* requestp */,
int* /* event_basep */,
int* /* error_basep */
);
Bool XLbxQueryVersion(
Display* /* dpy */,
int* /* majorVersion */,
int* /* minorVersion */
);
int XLbxGetEventBase(Display *dpy);
_XFUNCPROTOEND
#endif

View File

@@ -0,0 +1,227 @@
/*
Copyright (c) 2002 XFree86 Inc
*/
#ifndef _XRESPROTO_H
#define _XRESPROTO_H
#define XRES_MAJOR_VERSION 1
#define XRES_MINOR_VERSION 2
#define XRES_NAME "X-Resource"
/* v1.0 */
#define X_XResQueryVersion 0
#define X_XResQueryClients 1
#define X_XResQueryClientResources 2
#define X_XResQueryClientPixmapBytes 3
/* Version 1.1 has been accidentally released from the version */
/* control and while it doesn't have differences to version 1.0, the */
/* next version is labeled 1.2 in order to remove the risk of confusion. */
/* v1.2 */
#define X_XResQueryClientIds 4
#define X_XResQueryResourceBytes 5
typedef struct {
CARD32 resource_base;
CARD32 resource_mask;
} xXResClient;
#define sz_xXResClient 8
typedef struct {
CARD32 resource_type;
CARD32 count;
} xXResType;
#define sz_xXResType 8
/* XResQueryVersion */
typedef struct _XResQueryVersion {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
CARD8 client_major;
CARD8 client_minor;
CARD16 unused B16;
} xXResQueryVersionReq;
#define sz_xXResQueryVersionReq 8
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 server_major B16;
CARD16 server_minor B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXResQueryVersionReply;
#define sz_xXResQueryVersionReply 32
/* XResQueryClients */
typedef struct _XResQueryClients {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
} xXResQueryClientsReq;
#define sz_xXResQueryClientsReq 4
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num_clients B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXResQueryClientsReply;
#define sz_xXResQueryClientsReply 32
/* XResQueryClientResources */
typedef struct _XResQueryClientResources {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
CARD32 xid B32;
} xXResQueryClientResourcesReq;
#define sz_xXResQueryClientResourcesReq 8
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num_types B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXResQueryClientResourcesReply;
#define sz_xXResQueryClientResourcesReply 32
/* XResQueryClientPixmapBytes */
typedef struct _XResQueryClientPixmapBytes {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
CARD32 xid B32;
} xXResQueryClientPixmapBytesReq;
#define sz_xXResQueryClientPixmapBytesReq 8
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 bytes B32;
CARD32 bytes_overflow B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xXResQueryClientPixmapBytesReply;
#define sz_xXResQueryClientPixmapBytesReply 32
/* v1.2 XResQueryClientIds */
#define X_XResClientXIDMask 0x01
#define X_XResLocalClientPIDMask 0x02
typedef struct _XResClientIdSpec {
CARD32 client B32;
CARD32 mask B32;
} xXResClientIdSpec;
#define sz_xXResClientIdSpec 8
typedef struct _XResClientIdValue {
xXResClientIdSpec spec;
CARD32 length B32;
// followed by length CARD32s
} xXResClientIdValue;
#define sz_xResClientIdValue (sz_xXResClientIdSpec + 4)
typedef struct _XResQueryClientIds {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
CARD32 numSpecs B32;
// followed by numSpecs times XResClientIdSpec
} xXResQueryClientIdsReq;
#define sz_xXResQueryClientIdsReq 8
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numIds B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
// followed by numIds times XResClientIdValue
} xXResQueryClientIdsReply;
#define sz_xXResQueryClientIdsReply 32
/* v1.2 XResQueryResourceBytes */
typedef struct _XResResourceIdSpec {
CARD32 resource;
CARD32 type;
} xXResResourceIdSpec;
#define sz_xXResResourceIdSpec 8
typedef struct _XResQueryResourceBytes {
CARD8 reqType;
CARD8 XResReqType;
CARD16 length B16;
CARD32 client B32;
CARD32 numSpecs B32;
// followed by numSpecs times XResResourceIdSpec
} xXResQueryResourceBytesReq;
#define sz_xXResQueryResourceBytesReq 12
typedef struct _XResResourceSizeSpec {
xXResResourceIdSpec spec;
CARD32 bytes B32;
CARD32 refCount B32;
CARD32 useCount B32;
} xXResResourceSizeSpec;
#define sz_xXResResourceSizeSpec (sz_xXResResourceIdSpec + 12)
typedef struct _XResResourceSizeValue {
xXResResourceSizeSpec size;
CARD32 numCrossReferences B32;
// followed by numCrossReferences times XResResourceSizeSpec
} xXResResourceSizeValue;
#define sz_xXResResourceSizeValue (sz_xXResResourceSizeSpec + 4)
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numSizes B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
// followed by numSizes times XResResourceSizeValue
} xXResQueryResourceBytesReply;
#define sz_xXResQueryResourceBytesReply 32
#endif /* _XRESPROTO_H */

View File

@@ -0,0 +1,135 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
#ifndef _XSHM_H_
#define _XSHM_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/shm.h>
#ifndef _XSHM_SERVER_
typedef unsigned long ShmSeg;
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Drawable drawable; /* drawable of request */
int major_code; /* ShmReqCode */
int minor_code; /* X_ShmPutImage */
ShmSeg shmseg; /* the ShmSeg used in the request */
unsigned long offset; /* the offset into ShmSeg used in the request */
} XShmCompletionEvent;
typedef struct {
ShmSeg shmseg; /* resource id */
int shmid; /* kernel id */
char *shmaddr; /* address in client */
Bool readOnly; /* how the server should attach it */
} XShmSegmentInfo;
_XFUNCPROTOBEGIN
Bool XShmQueryExtension(
Display* /* dpy */
);
int XShmGetEventBase(
Display* /* dpy */
);
Bool XShmQueryVersion(
Display* /* dpy */,
int* /* majorVersion */,
int* /* minorVersion */,
Bool* /* sharedPixmaps */
);
int XShmPixmapFormat(
Display* /* dpy */
);
Bool XShmAttach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
Bool XShmDetach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
Bool XShmPutImage(
Display* /* dpy */,
Drawable /* d */,
GC /* gc */,
XImage* /* image */,
int /* src_x */,
int /* src_y */,
int /* dst_x */,
int /* dst_y */,
unsigned int /* src_width */,
unsigned int /* src_height */,
Bool /* send_event */
);
Bool XShmGetImage(
Display* /* dpy */,
Drawable /* d */,
XImage* /* image */,
int /* x */,
int /* y */,
unsigned long /* plane_mask */
);
XImage *XShmCreateImage(
Display* /* dpy */,
Visual* /* visual */,
unsigned int /* depth */,
int /* format */,
char* /* data */,
XShmSegmentInfo* /* shminfo */,
unsigned int /* width */,
unsigned int /* height */
);
Pixmap XShmCreatePixmap(
Display* /* dpy */,
Drawable /* d */,
char* /* data */,
XShmSegmentInfo* /* shminfo */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int /* depth */
);
_XFUNCPROTOEND
#endif /* _XSHM_SERVER_ */
#endif

View File

@@ -0,0 +1,90 @@
/*
Copyright 1996, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _XAG_H_
#define _XAG_H_
#include <X11/extensions/ag.h>
#include <X11/Xfuncproto.h>
#include <stdarg.h>
_XFUNCPROTOBEGIN
typedef XID XAppGroup;
Bool XagQueryVersion(
Display* /* dpy */,
int* /* major_version */,
int* /* minor_version */
);
Status XagCreateEmbeddedApplicationGroup(
Display* /* dpy */,
VisualID /* root_visual */,
Colormap /* default_colormap */,
unsigned long /* black_pixel */,
unsigned long /* white_pixel */,
XAppGroup* /* app_group_return */
);
Status XagCreateNonembeddedApplicationGroup(
Display* /* dpy */,
XAppGroup* /* app_group_return */
);
Status XagDestroyApplicationGroup(
Display* /* dpy */,
XAppGroup /* app_group */
);
Status XagGetApplicationGroupAttributes(
Display* /* dpy */,
XAppGroup /* app_group */,
...
);
Status XagQueryApplicationGroup(
Display* /* dpy */,
XID /* resource_base */,
XAppGroup* /* app_group_ret */
);
Status XagCreateAssociation(
Display* /* dpy */,
Window* /* window_ret */,
void* /* system_window */
);
Status XagDestroyAssociation(
Display* /* dpy */,
Window /* window */
);
_XFUNCPROTOEND
#endif /* _XAG_H_ */

View File

@@ -0,0 +1,58 @@
/*
Copyright 1987, 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _XCUP_H_
#define _XCUP_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/cup.h>
_XFUNCPROTOBEGIN
Bool XcupQueryVersion(
Display* /* dpy */,
int* /* major_version */,
int* /* minor_version */
);
Status XcupGetReservedColormapEntries(
Display* /* dpy */,
int /* screen */,
XColor** /* colors_out */,
int* /* ncolors */
);
Status XcupStoreColors(
Display* /* dpy */,
Colormap /* colormap */,
XColor* /* colors */,
int /* ncolors */
);
_XFUNCPROTOEND
#endif /* _XCUP_H_ */

View File

@@ -0,0 +1,138 @@
/******************************************************************************
*
* Copyright (c) 1994, 1995 Hewlett-Packard Company
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the Hewlett-Packard
* Company shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization from the Hewlett-Packard Company.
*
* Header file for Xlib-related DBE
*
*****************************************************************************/
#ifndef XDBE_H
#define XDBE_H
#include <X11/Xfuncproto.h>
#include <X11/extensions/dbe.h>
typedef struct
{
VisualID visual; /* one visual ID that supports double-buffering */
int depth; /* depth of visual in bits */
int perflevel; /* performance level of visual */
}
XdbeVisualInfo;
typedef struct
{
int count; /* number of items in visual_depth */
XdbeVisualInfo *visinfo; /* list of visuals & depths for scrn */
}
XdbeScreenVisualInfo;
typedef Drawable XdbeBackBuffer;
typedef unsigned char XdbeSwapAction;
typedef struct
{
Window swap_window; /* window for which to swap buffers */
XdbeSwapAction swap_action; /* swap action to use for swap_window */
}
XdbeSwapInfo;
typedef struct
{
Window window; /* window that buffer belongs to */
}
XdbeBackBufferAttributes;
typedef struct
{
int type;
Display *display; /* display the event was read from */
XdbeBackBuffer buffer; /* resource id */
unsigned long serial; /* serial number of failed request */
unsigned char error_code; /* error base + XdbeBadBuffer */
unsigned char request_code; /* major opcode of failed request */
unsigned char minor_code; /* minor opcode of failed request */
}
XdbeBufferError;
/* _XFUNCPROTOBEGIN and _XFUNCPROTOEND are defined as noops
* (for non-C++ builds) in X11/Xfuncproto.h.
*/
_XFUNCPROTOBEGIN
extern Status XdbeQueryExtension(
Display* /* dpy */,
int* /* major_version_return */,
int* /* minor_version_return */
);
extern XdbeBackBuffer XdbeAllocateBackBufferName(
Display* /* dpy */,
Window /* window */,
XdbeSwapAction /* swap_action */
);
extern Status XdbeDeallocateBackBufferName(
Display* /* dpy */,
XdbeBackBuffer /* buffer */
);
extern Status XdbeSwapBuffers(
Display* /* dpy */,
XdbeSwapInfo* /* swap_info */,
int /* num_windows */
);
extern Status XdbeBeginIdiom(
Display* /* dpy */
);
extern Status XdbeEndIdiom(
Display* /* dpy */
);
extern XdbeScreenVisualInfo *XdbeGetVisualInfo(
Display* /* dpy */,
Drawable* /* screen_specifiers */,
int* /* num_screens */
);
extern void XdbeFreeVisualInfo(
XdbeScreenVisualInfo* /* visual_info */
);
extern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(
Display* /* dpy */,
XdbeBackBuffer /* buffer */
);
_XFUNCPROTOEND
#endif /* XDBE_H */

View File

@@ -0,0 +1,53 @@
/*
*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _XEXT_H_
#define _XEXT_H_
#include <X11/Xfuncproto.h>
_XFUNCPROTOBEGIN
typedef int (*XextErrorHandler) (
Display * /* dpy */,
_Xconst char* /* ext_name */,
_Xconst char* /* reason */
);
extern XextErrorHandler XSetExtensionErrorHandler(
XextErrorHandler /* handler */
);
extern int XMissingExtension(
Display* /* dpy */,
_Xconst char* /* ext_name */
);
_XFUNCPROTOEND
#define X_EXTENSION_UNKNOWN "unknown"
#define X_EXTENSION_MISSING "missing"
#endif /* _XEXT_H_ */

View File

@@ -0,0 +1,269 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright 2011 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
/*
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _XFIXES_H_
#define _XFIXES_H_
#include <X11/extensions/xfixeswire.h>
#include <X11/Xfuncproto.h>
#include <X11/Xlib.h>
/*
* This revision number also appears in configure.ac, they have
* to be manually synchronized
*/
#define XFIXES_REVISION 1
#define XFIXES_VERSION ((XFIXES_MAJOR * 10000) + (XFIXES_MINOR * 100) + (XFIXES_REVISION))
typedef struct {
int type; /* event base */
unsigned long serial;
Bool send_event;
Display *display;
Window window;
int subtype;
Window owner;
Atom selection;
Time timestamp;
Time selection_timestamp;
} XFixesSelectionNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial;
Bool send_event;
Display *display;
Window window;
int subtype;
unsigned long cursor_serial;
Time timestamp;
Atom cursor_name;
} XFixesCursorNotifyEvent;
typedef struct {
short x, y;
unsigned short width, height;
unsigned short xhot, yhot;
unsigned long cursor_serial;
unsigned long *pixels;
#if XFIXES_MAJOR >= 2
Atom atom; /* Version >= 2 only */
const char *name; /* Version >= 2 only */
#endif
} XFixesCursorImage;
#if XFIXES_MAJOR >= 2
/* Version 2 types */
typedef XID XserverRegion;
typedef struct {
short x, y;
unsigned short width, height;
unsigned short xhot, yhot;
unsigned long cursor_serial;
unsigned long *pixels;
Atom atom;
const char *name;
} XFixesCursorImageAndName;
#endif
_XFUNCPROTOBEGIN
Bool XFixesQueryExtension (Display *dpy,
int *event_base_return,
int *error_base_return);
Status XFixesQueryVersion (Display *dpy,
int *major_version_return,
int *minor_version_return);
int XFixesVersion (void);
void
XFixesChangeSaveSet (Display *dpy,
Window win,
int mode,
int target,
int map);
void
XFixesSelectSelectionInput (Display *dpy,
Window win,
Atom selection,
unsigned long eventMask);
void
XFixesSelectCursorInput (Display *dpy,
Window win,
unsigned long eventMask);
XFixesCursorImage *
XFixesGetCursorImage (Display *dpy);
#if XFIXES_MAJOR >= 2
/* Version 2 functions */
XserverRegion
XFixesCreateRegion (Display *dpy, XRectangle *rectangles, int nrectangles);
XserverRegion
XFixesCreateRegionFromBitmap (Display *dpy, Pixmap bitmap);
XserverRegion
XFixesCreateRegionFromWindow (Display *dpy, Window window, int kind);
XserverRegion
XFixesCreateRegionFromGC (Display *dpy, GC gc);
XserverRegion
XFixesCreateRegionFromPicture (Display *dpy, XID picture);
void
XFixesDestroyRegion (Display *dpy, XserverRegion region);
void
XFixesSetRegion (Display *dpy, XserverRegion region,
XRectangle *rectangles, int nrectangles);
void
XFixesCopyRegion (Display *dpy, XserverRegion dst, XserverRegion src);
void
XFixesUnionRegion (Display *dpy, XserverRegion dst,
XserverRegion src1, XserverRegion src2);
void
XFixesIntersectRegion (Display *dpy, XserverRegion dst,
XserverRegion src1, XserverRegion src2);
void
XFixesSubtractRegion (Display *dpy, XserverRegion dst,
XserverRegion src1, XserverRegion src2);
void
XFixesInvertRegion (Display *dpy, XserverRegion dst,
XRectangle *rect, XserverRegion src);
void
XFixesTranslateRegion (Display *dpy, XserverRegion region, int dx, int dy);
void
XFixesRegionExtents (Display *dpy, XserverRegion dst, XserverRegion src);
XRectangle *
XFixesFetchRegion (Display *dpy, XserverRegion region, int *nrectanglesRet);
XRectangle *
XFixesFetchRegionAndBounds (Display *dpy, XserverRegion region,
int *nrectanglesRet,
XRectangle *bounds);
void
XFixesSetGCClipRegion (Display *dpy, GC gc,
int clip_x_origin, int clip_y_origin,
XserverRegion region);
void
XFixesSetWindowShapeRegion (Display *dpy, Window win, int shape_kind,
int x_off, int y_off, XserverRegion region);
void
XFixesSetPictureClipRegion (Display *dpy, XID picture,
int clip_x_origin, int clip_y_origin,
XserverRegion region);
void
XFixesSetCursorName (Display *dpy, Cursor cursor, const char *name);
const char *
XFixesGetCursorName (Display *dpy, Cursor cursor, Atom *atom);
void
XFixesChangeCursor (Display *dpy, Cursor source, Cursor destination);
void
XFixesChangeCursorByName (Display *dpy, Cursor source, const char *name);
#endif /* XFIXES_MAJOR >= 2 */
#if XFIXES_MAJOR >= 3
void
XFixesExpandRegion (Display *dpy, XserverRegion dst, XserverRegion src,
unsigned left, unsigned right,
unsigned top, unsigned bottom);
#endif /* XFIXES_MAJOR >= 3 */
#if XFIXES_MAJOR >= 4
/* Version 4.0 externs */
void
XFixesHideCursor (Display *dpy, Window win);
void
XFixesShowCursor (Display *dpy, Window win);
#endif /* XFIXES_MAJOR >= 4 */
#if XFIXES_MAJOR >= 5
typedef XID PointerBarrier;
PointerBarrier
XFixesCreatePointerBarrier(Display *dpy, Window w, int x1, int y1,
int x2, int y2, int directions,
int num_devices, int *devices);
void
XFixesDestroyPointerBarrier(Display *dpy, PointerBarrier b);
#endif /* XFIXES_MAJOR >= 5 */
_XFUNCPROTOEND
#endif /* _XFIXES_H_ */

View File

@@ -0,0 +1,57 @@
/*
* Copyright <20> 2007-2008 Peter Hutterer
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Authors: Peter Hutterer, University of South Australia, NICTA
*
*/
/* XGE Client interfaces */
#ifndef _XGE_H_
#define _XGE_H_
#include <X11/Xlib.h>
#include <X11/Xfuncproto.h>
_XFUNCPROTOBEGIN
/**
* Generic Event mask.
* To be used whenever a list of masks per extension has to be provided.
*
* But, don't actually use the CARD{8,16,32} types. We can't get them them
* defined here without polluting the namespace.
*/
typedef struct {
unsigned char extension;
unsigned char pad0;
unsigned short pad1;
unsigned int evmask;
} XGenericEventMask;
Bool XGEQueryExtension(Display* dpy, int *event_basep, int *err_basep);
Bool XGEQueryVersion(Display* dpy, int *major, int* minor);
_XFUNCPROTOEND
#endif /* _XGE_H_ */

View File

@@ -0,0 +1,74 @@
/*
Copyright 2003 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _Xinerama_h
#define _Xinerama_h
#include <X11/Xlib.h>
typedef struct {
int screen_number;
short x_org;
short y_org;
short width;
short height;
} XineramaScreenInfo;
_XFUNCPROTOBEGIN
Bool XineramaQueryExtension (
Display *dpy,
int *event_base,
int *error_base
);
Status XineramaQueryVersion(
Display *dpy,
int *major_versionp,
int *minor_versionp
);
Bool XineramaIsActive(Display *dpy);
/*
Returns the number of heads and a pointer to an array of
structures describing the position and size of the individual
heads. Returns NULL and number = 0 if Xinerama is not active.
Returned array should be freed with XFree().
*/
XineramaScreenInfo *
XineramaQueryScreens(
Display *dpy,
int *number
);
_XFUNCPROTOEND
#endif /* _Xinerama_h */

View File

@@ -0,0 +1,587 @@
/*
* Copyright © 2000 Compaq Computer Corporation, Inc.
* Copyright © 2002 Hewlett-Packard Company, Inc.
* Copyright © 2006 Intel Corporation
* Copyright © 2008 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of the copyright holders not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no representations
* about the suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
* Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
* Keith Packard, Intel Corporation
*/
#ifndef _XRANDR_H_
#define _XRANDR_H_
#include <X11/extensions/randr.h>
#include <X11/extensions/Xrender.h>
#include <X11/Xfuncproto.h>
_XFUNCPROTOBEGIN
typedef XID RROutput;
typedef XID RRCrtc;
typedef XID RRMode;
typedef XID RRProvider;
typedef struct {
int width, height;
int mwidth, mheight;
} XRRScreenSize;
/*
* Events.
*/
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
Window root; /* Root window for changed screen */
Time timestamp; /* when the screen change occurred */
Time config_timestamp; /* when the last configuration change */
SizeID size_index;
SubpixelOrder subpixel_order;
Rotation rotation;
int width;
int height;
int mwidth;
int mheight;
} XRRScreenChangeNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_ subtype */
} XRRNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_OutputChange */
RROutput output; /* affected output */
RRCrtc crtc; /* current crtc (or None) */
RRMode mode; /* current mode (or None) */
Rotation rotation; /* current rotation of associated crtc */
Connection connection; /* current connection status */
SubpixelOrder subpixel_order;
} XRROutputChangeNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_CrtcChange */
RRCrtc crtc; /* current crtc (or None) */
RRMode mode; /* current mode (or None) */
Rotation rotation; /* current rotation of associated crtc */
int x, y; /* position */
unsigned int width, height; /* size */
} XRRCrtcChangeNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_OutputProperty */
RROutput output; /* related output */
Atom property; /* changed property */
Time timestamp; /* time of change */
int state; /* NewValue, Deleted */
} XRROutputPropertyNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_ProviderChange */
RRProvider provider; /* current provider (or None) */
Time timestamp; /* time of change */
unsigned int current_role;
} XRRProviderChangeNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_ProviderProperty */
RRProvider provider; /* related provider */
Atom property; /* changed property */
Time timestamp; /* time of change */
int state; /* NewValue, Deleted */
} XRRProviderPropertyNotifyEvent;
typedef struct {
int type; /* event base */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window which selected for this event */
int subtype; /* RRNotify_ResourceChange */
Time timestamp; /* time of change */
} XRRResourceChangeNotifyEvent;
/* internal representation is private to the library */
typedef struct _XRRScreenConfiguration XRRScreenConfiguration;
Bool XRRQueryExtension (Display *dpy,
int *event_base_return,
int *error_base_return);
Status XRRQueryVersion (Display *dpy,
int *major_version_return,
int *minor_version_return);
XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy,
Window window);
void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config);
/*
* Note that screen configuration changes are only permitted if the client can
* prove it has up to date configuration information. We are trying to
* insist that it become possible for screens to change dynamically, so
* we want to ensure the client knows what it is talking about when requesting
* changes.
*/
Status XRRSetScreenConfig (Display *dpy,
XRRScreenConfiguration *config,
Drawable draw,
int size_index,
Rotation rotation,
Time timestamp);
/* added in v1.1, sorry for the lame name */
Status XRRSetScreenConfigAndRate (Display *dpy,
XRRScreenConfiguration *config,
Drawable draw,
int size_index,
Rotation rotation,
short rate,
Time timestamp);
Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation);
Time XRRConfigTimes (XRRScreenConfiguration *config, Time *config_timestamp);
XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes);
short *XRRConfigRates (XRRScreenConfiguration *config, int sizeID, int *nrates);
SizeID XRRConfigCurrentConfiguration (XRRScreenConfiguration *config,
Rotation *rotation);
short XRRConfigCurrentRate (XRRScreenConfiguration *config);
int XRRRootToScreen(Display *dpy, Window root);
/*
* returns the screen configuration for the specified screen; does a lazy
* evalution to delay getting the information, and caches the result.
* These routines should be used in preference to XRRGetScreenInfo
* to avoid unneeded round trips to the X server. These are new
* in protocol version 0.1.
*/
void XRRSelectInput(Display *dpy, Window window, int mask);
/*
* the following are always safe to call, even if RandR is not implemented
* on a screen
*/
Rotation XRRRotations(Display *dpy, int screen, Rotation *current_rotation);
XRRScreenSize *XRRSizes(Display *dpy, int screen, int *nsizes);
short *XRRRates (Display *dpy, int screen, int sizeID, int *nrates);
Time XRRTimes (Display *dpy, int screen, Time *config_timestamp);
/* Version 1.2 additions */
/* despite returning a Status, this returns 1 for success */
Status
XRRGetScreenSizeRange (Display *dpy, Window window,
int *minWidth, int *minHeight,
int *maxWidth, int *maxHeight);
void
XRRSetScreenSize (Display *dpy, Window window,
int width, int height,
int mmWidth, int mmHeight);
typedef unsigned long XRRModeFlags;
typedef struct _XRRModeInfo {
RRMode id;
unsigned int width;
unsigned int height;
unsigned long dotClock;
unsigned int hSyncStart;
unsigned int hSyncEnd;
unsigned int hTotal;
unsigned int hSkew;
unsigned int vSyncStart;
unsigned int vSyncEnd;
unsigned int vTotal;
char *name;
unsigned int nameLength;
XRRModeFlags modeFlags;
} XRRModeInfo;
typedef struct _XRRScreenResources {
Time timestamp;
Time configTimestamp;
int ncrtc;
RRCrtc *crtcs;
int noutput;
RROutput *outputs;
int nmode;
XRRModeInfo *modes;
} XRRScreenResources;
XRRScreenResources *
XRRGetScreenResources (Display *dpy, Window window);
void
XRRFreeScreenResources (XRRScreenResources *resources);
typedef struct _XRROutputInfo {
Time timestamp;
RRCrtc crtc;
char *name;
int nameLen;
unsigned long mm_width;
unsigned long mm_height;
Connection connection;
SubpixelOrder subpixel_order;
int ncrtc;
RRCrtc *crtcs;
int nclone;
RROutput *clones;
int nmode;
int npreferred;
RRMode *modes;
} XRROutputInfo;
XRROutputInfo *
XRRGetOutputInfo (Display *dpy, XRRScreenResources *resources, RROutput output);
void
XRRFreeOutputInfo (XRROutputInfo *outputInfo);
Atom *
XRRListOutputProperties (Display *dpy, RROutput output, int *nprop);
typedef struct {
Bool pending;
Bool range;
Bool immutable;
int num_values;
long *values;
} XRRPropertyInfo;
XRRPropertyInfo *
XRRQueryOutputProperty (Display *dpy, RROutput output, Atom property);
void
XRRConfigureOutputProperty (Display *dpy, RROutput output, Atom property,
Bool pending, Bool range, int num_values,
long *values);
void
XRRChangeOutputProperty (Display *dpy, RROutput output,
Atom property, Atom type,
int format, int mode,
_Xconst unsigned char *data, int nelements);
void
XRRDeleteOutputProperty (Display *dpy, RROutput output, Atom property);
int
XRRGetOutputProperty (Display *dpy, RROutput output,
Atom property, long offset, long length,
Bool _delete, Bool pending, Atom req_type,
Atom *actual_type, int *actual_format,
unsigned long *nitems, unsigned long *bytes_after,
unsigned char **prop);
XRRModeInfo *
XRRAllocModeInfo (_Xconst char *name, int nameLength);
RRMode
XRRCreateMode (Display *dpy, Window window, XRRModeInfo *modeInfo);
void
XRRDestroyMode (Display *dpy, RRMode mode);
void
XRRAddOutputMode (Display *dpy, RROutput output, RRMode mode);
void
XRRDeleteOutputMode (Display *dpy, RROutput output, RRMode mode);
void
XRRFreeModeInfo (XRRModeInfo *modeInfo);
typedef struct _XRRCrtcInfo {
Time timestamp;
int x, y;
unsigned int width, height;
RRMode mode;
Rotation rotation;
int noutput;
RROutput *outputs;
Rotation rotations;
int npossible;
RROutput *possible;
} XRRCrtcInfo;
XRRCrtcInfo *
XRRGetCrtcInfo (Display *dpy, XRRScreenResources *resources, RRCrtc crtc);
void
XRRFreeCrtcInfo (XRRCrtcInfo *crtcInfo);
Status
XRRSetCrtcConfig (Display *dpy,
XRRScreenResources *resources,
RRCrtc crtc,
Time timestamp,
int x, int y,
RRMode mode,
Rotation rotation,
RROutput *outputs,
int noutputs);
int
XRRGetCrtcGammaSize (Display *dpy, RRCrtc crtc);
typedef struct _XRRCrtcGamma {
int size;
unsigned short *red;
unsigned short *green;
unsigned short *blue;
} XRRCrtcGamma;
XRRCrtcGamma *
XRRGetCrtcGamma (Display *dpy, RRCrtc crtc);
XRRCrtcGamma *
XRRAllocGamma (int size);
void
XRRSetCrtcGamma (Display *dpy, RRCrtc crtc, XRRCrtcGamma *gamma);
void
XRRFreeGamma (XRRCrtcGamma *gamma);
/* Version 1.3 additions */
XRRScreenResources *
XRRGetScreenResourcesCurrent (Display *dpy, Window window);
void
XRRSetCrtcTransform (Display *dpy,
RRCrtc crtc,
XTransform *transform,
_Xconst char *filter,
XFixed *params,
int nparams);
typedef struct _XRRCrtcTransformAttributes {
XTransform pendingTransform;
char *pendingFilter;
int pendingNparams;
XFixed *pendingParams;
XTransform currentTransform;
char *currentFilter;
int currentNparams;
XFixed *currentParams;
} XRRCrtcTransformAttributes;
/*
* Get current crtc transforms and filters.
* Pass *attributes to XFree to free
*/
Status
XRRGetCrtcTransform (Display *dpy,
RRCrtc crtc,
XRRCrtcTransformAttributes **attributes);
/*
* intended to take RRScreenChangeNotify, or
* ConfigureNotify (on the root window)
* returns 1 if it is an event type it understands, 0 if not
*/
int XRRUpdateConfiguration(XEvent *event);
typedef struct _XRRPanning {
Time timestamp;
unsigned int left;
unsigned int top;
unsigned int width;
unsigned int height;
unsigned int track_left;
unsigned int track_top;
unsigned int track_width;
unsigned int track_height;
int border_left;
int border_top;
int border_right;
int border_bottom;
} XRRPanning;
XRRPanning *
XRRGetPanning (Display *dpy, XRRScreenResources *resources, RRCrtc crtc);
void
XRRFreePanning (XRRPanning *panning);
Status
XRRSetPanning (Display *dpy,
XRRScreenResources *resources,
RRCrtc crtc,
XRRPanning *panning);
void
XRRSetOutputPrimary(Display *dpy,
Window window,
RROutput output);
RROutput
XRRGetOutputPrimary(Display *dpy,
Window window);
typedef struct _XRRProviderResources {
Time timestamp;
int nproviders;
RRProvider *providers;
} XRRProviderResources;
XRRProviderResources *
XRRGetProviderResources(Display *dpy, Window window);
void
XRRFreeProviderResources(XRRProviderResources *resources);
typedef struct _XRRProviderInfo {
unsigned int capabilities;
int ncrtcs;
RRCrtc *crtcs;
int noutputs;
RROutput *outputs;
char *name;
int nassociatedproviders;
RRProvider *associated_providers;
unsigned int *associated_capability;
int nameLen;
} XRRProviderInfo;
XRRProviderInfo *
XRRGetProviderInfo(Display *dpy, XRRScreenResources *resources, RRProvider provider);
void
XRRFreeProviderInfo(XRRProviderInfo *provider);
int
XRRSetProviderOutputSource(Display *dpy, XID provider, XID source_provider);
int
XRRSetProviderOffloadSink(Display *dpy, XID provider, XID sink_provider);
Atom *
XRRListProviderProperties (Display *dpy, RRProvider provider, int *nprop);
XRRPropertyInfo *
XRRQueryProviderProperty (Display *dpy, RRProvider provider, Atom property);
void
XRRConfigureProviderProperty (Display *dpy, RRProvider provider, Atom property,
Bool pending, Bool range, int num_values,
long *values);
void
XRRChangeProviderProperty (Display *dpy, RRProvider provider,
Atom property, Atom type,
int format, int mode,
_Xconst unsigned char *data, int nelements);
void
XRRDeleteProviderProperty (Display *dpy, RRProvider provider, Atom property);
int
XRRGetProviderProperty (Display *dpy, RRProvider provider,
Atom property, long offset, long length,
Bool _delete, Bool pending, Atom req_type,
Atom *actual_type, int *actual_format,
unsigned long *nitems, unsigned long *bytes_after,
unsigned char **prop);
typedef struct _XRRMonitorInfo {
Atom name;
Bool primary;
Bool automatic;
int noutput;
int x;
int y;
int width;
int height;
int mwidth;
int mheight;
RROutput *outputs;
} XRRMonitorInfo;
XRRMonitorInfo *
XRRAllocateMonitor(Display *dpy, int noutput);
XRRMonitorInfo *
XRRGetMonitors(Display *dpy, Window window, Bool get_active, int *nmonitors);
void
XRRSetMonitor(Display *dpy, Window window, XRRMonitorInfo *monitor);
void
XRRDeleteMonitor(Display *dpy, Window window, Atom name);
void
XRRFreeMonitors(XRRMonitorInfo *monitors);
_XFUNCPROTOEND
#endif /* _XRANDR_H_ */

View File

@@ -0,0 +1,528 @@
/*
*
* Copyright © 2000 SuSE, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of SuSE not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. SuSE makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Keith Packard, SuSE, Inc.
*/
#ifndef _XRENDER_H_
#define _XRENDER_H_
#include <X11/Xlib.h>
#include <X11/Xfuncproto.h>
#include <X11/Xosdefs.h>
#include <X11/Xutil.h>
#include <X11/extensions/render.h>
typedef struct {
short red;
short redMask;
short green;
short greenMask;
short blue;
short blueMask;
short alpha;
short alphaMask;
} XRenderDirectFormat;
typedef struct {
PictFormat id;
int type;
int depth;
XRenderDirectFormat direct;
Colormap colormap;
} XRenderPictFormat;
#define PictFormatID (1 << 0)
#define PictFormatType (1 << 1)
#define PictFormatDepth (1 << 2)
#define PictFormatRed (1 << 3)
#define PictFormatRedMask (1 << 4)
#define PictFormatGreen (1 << 5)
#define PictFormatGreenMask (1 << 6)
#define PictFormatBlue (1 << 7)
#define PictFormatBlueMask (1 << 8)
#define PictFormatAlpha (1 << 9)
#define PictFormatAlphaMask (1 << 10)
#define PictFormatColormap (1 << 11)
typedef struct _XRenderPictureAttributes {
int repeat;
Picture alpha_map;
int alpha_x_origin;
int alpha_y_origin;
int clip_x_origin;
int clip_y_origin;
Pixmap clip_mask;
Bool graphics_exposures;
int subwindow_mode;
int poly_edge;
int poly_mode;
Atom dither;
Bool component_alpha;
} XRenderPictureAttributes;
typedef struct {
unsigned short red;
unsigned short green;
unsigned short blue;
unsigned short alpha;
} XRenderColor;
typedef struct _XGlyphInfo {
unsigned short width;
unsigned short height;
short x;
short y;
short xOff;
short yOff;
} XGlyphInfo;
typedef struct _XGlyphElt8 {
GlyphSet glyphset;
_Xconst char *chars;
int nchars;
int xOff;
int yOff;
} XGlyphElt8;
typedef struct _XGlyphElt16 {
GlyphSet glyphset;
_Xconst unsigned short *chars;
int nchars;
int xOff;
int yOff;
} XGlyphElt16;
typedef struct _XGlyphElt32 {
GlyphSet glyphset;
_Xconst unsigned int *chars;
int nchars;
int xOff;
int yOff;
} XGlyphElt32;
typedef double XDouble;
typedef struct _XPointDouble {
XDouble x, y;
} XPointDouble;
#define XDoubleToFixed(f) ((XFixed) ((f) * 65536))
#define XFixedToDouble(f) (((XDouble) (f)) / 65536)
typedef int XFixed;
typedef struct _XPointFixed {
XFixed x, y;
} XPointFixed;
typedef struct _XLineFixed {
XPointFixed p1, p2;
} XLineFixed;
typedef struct _XTriangle {
XPointFixed p1, p2, p3;
} XTriangle;
typedef struct _XCircle {
XFixed x;
XFixed y;
XFixed radius;
} XCircle;
typedef struct _XTrapezoid {
XFixed top, bottom;
XLineFixed left, right;
} XTrapezoid;
typedef struct _XTransform {
XFixed matrix[3][3];
} XTransform;
typedef struct _XFilters {
int nfilter;
char **filter;
int nalias;
short *alias;
} XFilters;
typedef struct _XIndexValue {
unsigned long pixel;
unsigned short red, green, blue, alpha;
} XIndexValue;
typedef struct _XAnimCursor {
Cursor cursor;
unsigned long delay;
} XAnimCursor;
typedef struct _XSpanFix {
XFixed left, right, y;
} XSpanFix;
typedef struct _XTrap {
XSpanFix top, bottom;
} XTrap;
typedef struct _XLinearGradient {
XPointFixed p1;
XPointFixed p2;
} XLinearGradient;
typedef struct _XRadialGradient {
XCircle inner;
XCircle outer;
} XRadialGradient;
typedef struct _XConicalGradient {
XPointFixed center;
XFixed angle; /* in degrees */
} XConicalGradient;
_XFUNCPROTOBEGIN
Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
Status XRenderQueryVersion (Display *dpy,
int *major_versionp,
int *minor_versionp);
Status XRenderQueryFormats (Display *dpy);
int XRenderQuerySubpixelOrder (Display *dpy, int screen);
Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
XRenderPictFormat *
XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
XRenderPictFormat *
XRenderFindFormat (Display *dpy,
unsigned long mask,
_Xconst XRenderPictFormat *templ,
int count);
#define PictStandardARGB32 0
#define PictStandardRGB24 1
#define PictStandardA8 2
#define PictStandardA4 3
#define PictStandardA1 4
#define PictStandardNUM 5
XRenderPictFormat *
XRenderFindStandardFormat (Display *dpy,
int format);
XIndexValue *
XRenderQueryPictIndexValues(Display *dpy,
_Xconst XRenderPictFormat *format,
int *num);
Picture
XRenderCreatePicture (Display *dpy,
Drawable drawable,
_Xconst XRenderPictFormat *format,
unsigned long valuemask,
_Xconst XRenderPictureAttributes *attributes);
void
XRenderChangePicture (Display *dpy,
Picture picture,
unsigned long valuemask,
_Xconst XRenderPictureAttributes *attributes);
void
XRenderSetPictureClipRectangles (Display *dpy,
Picture picture,
int xOrigin,
int yOrigin,
_Xconst XRectangle *rects,
int n);
void
XRenderSetPictureClipRegion (Display *dpy,
Picture picture,
Region r);
void
XRenderSetPictureTransform (Display *dpy,
Picture picture,
XTransform *transform);
void
XRenderFreePicture (Display *dpy,
Picture picture);
void
XRenderComposite (Display *dpy,
int op,
Picture src,
Picture mask,
Picture dst,
int src_x,
int src_y,
int mask_x,
int mask_y,
int dst_x,
int dst_y,
unsigned int width,
unsigned int height);
GlyphSet
XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
GlyphSet
XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
void
XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
void
XRenderAddGlyphs (Display *dpy,
GlyphSet glyphset,
_Xconst Glyph *gids,
_Xconst XGlyphInfo *glyphs,
int nglyphs,
_Xconst char *images,
int nbyte_images);
void
XRenderFreeGlyphs (Display *dpy,
GlyphSet glyphset,
_Xconst Glyph *gids,
int nglyphs);
void
XRenderCompositeString8 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
GlyphSet glyphset,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst char *string,
int nchar);
void
XRenderCompositeString16 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
GlyphSet glyphset,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst unsigned short *string,
int nchar);
void
XRenderCompositeString32 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
GlyphSet glyphset,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst unsigned int *string,
int nchar);
void
XRenderCompositeText8 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst XGlyphElt8 *elts,
int nelt);
void
XRenderCompositeText16 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst XGlyphElt16 *elts,
int nelt);
void
XRenderCompositeText32 (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst XGlyphElt32 *elts,
int nelt);
void
XRenderFillRectangle (Display *dpy,
int op,
Picture dst,
_Xconst XRenderColor *color,
int x,
int y,
unsigned int width,
unsigned int height);
void
XRenderFillRectangles (Display *dpy,
int op,
Picture dst,
_Xconst XRenderColor *color,
_Xconst XRectangle *rectangles,
int n_rects);
void
XRenderCompositeTrapezoids (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
_Xconst XTrapezoid *traps,
int ntrap);
void
XRenderCompositeTriangles (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
_Xconst XTriangle *triangles,
int ntriangle);
void
XRenderCompositeTriStrip (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
_Xconst XPointFixed *points,
int npoint);
void
XRenderCompositeTriFan (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
_Xconst XPointFixed *points,
int npoint);
void
XRenderCompositeDoublePoly (Display *dpy,
int op,
Picture src,
Picture dst,
_Xconst XRenderPictFormat *maskFormat,
int xSrc,
int ySrc,
int xDst,
int yDst,
_Xconst XPointDouble *fpoints,
int npoints,
int winding);
Status
XRenderParseColor(Display *dpy,
char *spec,
XRenderColor *def);
Cursor
XRenderCreateCursor (Display *dpy,
Picture source,
unsigned int x,
unsigned int y);
XFilters *
XRenderQueryFilters (Display *dpy, Drawable drawable);
void
XRenderSetPictureFilter (Display *dpy,
Picture picture,
const char *filter,
XFixed *params,
int nparams);
Cursor
XRenderCreateAnimCursor (Display *dpy,
int ncursor,
XAnimCursor *cursors);
void
XRenderAddTraps (Display *dpy,
Picture picture,
int xOff,
int yOff,
_Xconst XTrap *traps,
int ntrap);
Picture XRenderCreateSolidFill (Display *dpy,
const XRenderColor *color);
Picture XRenderCreateLinearGradient (Display *dpy,
const XLinearGradient *gradient,
const XFixed *stops,
const XRenderColor *colors,
int nstops);
Picture XRenderCreateRadialGradient (Display *dpy,
const XRadialGradient *gradient,
const XFixed *stops,
const XRenderColor *colors,
int nstops);
Picture XRenderCreateConicalGradient (Display *dpy,
const XConicalGradient *gradient,
const XFixed *stops,
const XRenderColor *colors,
int nstops);
_XFUNCPROTOEND
#endif /* _XRENDER_H_ */

View File

@@ -0,0 +1,128 @@
/***********************************************************
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or MIT not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
#ifndef XV_H
#define XV_H
/*
** File:
**
** Xv.h --- Xv shared library and server header file
**
** Author:
**
** David Carver (Digital Workstation Engineering/Project Athena)
**
** Revisions:
**
** 05.15.91 Carver
** - version 2.0 upgrade
**
** 01.24.91 Carver
** - version 1.4 upgrade
**
*/
#include <X11/X.h>
#define XvName "XVideo"
#define XvVersion 2
#define XvRevision 2
/* Symbols */
typedef XID XvPortID;
typedef XID XvEncodingID;
#define XvNone 0
#define XvInput 0
#define XvOutput 1
#define XvInputMask (1<<XvInput)
#define XvOutputMask (1<<XvOutput)
#define XvVideoMask 0x00000004
#define XvStillMask 0x00000008
#define XvImageMask 0x00000010
/* These two are not client viewable */
#define XvPixmapMask 0x00010000
#define XvWindowMask 0x00020000
#define XvGettable 0x01
#define XvSettable 0x02
#define XvRGB 0
#define XvYUV 1
#define XvPacked 0
#define XvPlanar 1
#define XvTopToBottom 0
#define XvBottomToTop 1
/* Events */
#define XvVideoNotify 0
#define XvPortNotify 1
#define XvNumEvents 2
/* Video Notify Reasons */
#define XvStarted 0
#define XvStopped 1
#define XvBusy 2
#define XvPreempted 3
#define XvHardError 4
#define XvLastReason 4
#define XvNumReasons (XvLastReason + 1)
#define XvStartedMask (1<<XvStarted)
#define XvStoppedMask (1<<XvStopped)
#define XvBusyMask (1<<XvBusy)
#define XvPreemptedMask (1<<XvPreempted)
#define XvHardErrorMask (1<<XvHardError)
#define XvAnyReasonMask ((1<<XvNumReasons) - 1)
#define XvNoReasonMask 0
/* Errors */
#define XvBadPort 0
#define XvBadEncoding 1
#define XvBadControl 2
#define XvNumErrors 3
/* Status */
#define XvBadExtension 1
#define XvAlreadyGrabbed 2
#define XvInvalidTime 3
#define XvBadReply 4
#define XvBadAlloc 5
#endif /* XV_H */

View File

@@ -0,0 +1,138 @@
#ifndef _XVMC_H_
#define _XVMC_H_
#include <X11/X.h>
#include <X11/extensions/Xv.h>
#define XvMCName "XVideo-MotionCompensation"
#define XvMCNumEvents 0
#define XvMCNumErrors 3
#define XvMCVersion 1
#define XvMCRevision 1
#define XvMCBadContext 0
#define XvMCBadSurface 1
#define XvMCBadSubpicture 2
/* Chroma formats */
#define XVMC_CHROMA_FORMAT_420 0x00000001
#define XVMC_CHROMA_FORMAT_422 0x00000002
#define XVMC_CHROMA_FORMAT_444 0x00000003
/* XvMCSurfaceInfo Flags */
#define XVMC_OVERLAID_SURFACE 0x00000001
#define XVMC_BACKEND_SUBPICTURE 0x00000002
#define XVMC_SUBPICTURE_INDEPENDENT_SCALING 0x00000004
#define XVMC_INTRA_UNSIGNED 0x00000008
/* Motion Compensation types */
#define XVMC_MOCOMP 0x00000000
#define XVMC_IDCT 0x00010000
#define XVMC_MPEG_1 0x00000001
#define XVMC_MPEG_2 0x00000002
#define XVMC_H263 0x00000003
#define XVMC_MPEG_4 0x00000004
#define XVMC_MB_TYPE_MOTION_FORWARD 0x02
#define XVMC_MB_TYPE_MOTION_BACKWARD 0x04
#define XVMC_MB_TYPE_PATTERN 0x08
#define XVMC_MB_TYPE_INTRA 0x10
#define XVMC_PREDICTION_FIELD 0x01
#define XVMC_PREDICTION_FRAME 0x02
#define XVMC_PREDICTION_DUAL_PRIME 0x03
#define XVMC_PREDICTION_16x8 0x02
#define XVMC_PREDICTION_4MV 0x04
#define XVMC_SELECT_FIRST_FORWARD 0x01
#define XVMC_SELECT_FIRST_BACKWARD 0x02
#define XVMC_SELECT_SECOND_FORWARD 0x04
#define XVMC_SELECT_SECOND_BACKWARD 0x08
#define XVMC_DCT_TYPE_FRAME 0x00
#define XVMC_DCT_TYPE_FIELD 0x01
#define XVMC_TOP_FIELD 0x00000001
#define XVMC_BOTTOM_FIELD 0x00000002
#define XVMC_FRAME_PICTURE (XVMC_TOP_FIELD | XVMC_BOTTOM_FIELD)
#define XVMC_SECOND_FIELD 0x00000004
#define XVMC_DIRECT 0x00000001
#define XVMC_RENDERING 0x00000001
#define XVMC_DISPLAYING 0x00000002
typedef struct {
int surface_type_id;
int chroma_format;
unsigned short max_width;
unsigned short max_height;
unsigned short subpicture_max_width;
unsigned short subpicture_max_height;
int mc_type;
int flags;
} XvMCSurfaceInfo;
typedef struct {
XID context_id;
int surface_type_id;
unsigned short width;
unsigned short height;
XvPortID port;
int flags;
void * privData; /* private to the library */
} XvMCContext;
typedef struct {
XID surface_id;
XID context_id;
int surface_type_id;
unsigned short width;
unsigned short height;
void *privData; /* private to the library */
} XvMCSurface;
typedef struct {
XID subpicture_id;
XID context_id;
int xvimage_id;
unsigned short width;
unsigned short height;
int num_palette_entries;
int entry_bytes;
char component_order[4];
void *privData; /* private to the library */
} XvMCSubpicture;
typedef struct {
unsigned int num_blocks;
XID context_id;
void *privData;
short *blocks;
} XvMCBlockArray;
typedef struct {
unsigned short x;
unsigned short y;
unsigned char macroblock_type;
unsigned char motion_type;
unsigned char motion_vertical_field_select;
unsigned char dct_type;
short PMV[2][2][2];
unsigned int index;
unsigned short coded_block_pattern;
unsigned short pad0;
} XvMCMacroBlock;
typedef struct {
unsigned int num_blocks;
XID context_id;
void *privData;
XvMCMacroBlock *macro_blocks;
} XvMCMacroBlockArray;
#endif

View File

@@ -0,0 +1,226 @@
#ifndef _XVMCPROTO_H_
#define _XVMCPROTO_H_
#define xvmc_QueryVersion 0
#define xvmc_ListSurfaceTypes 1
#define xvmc_CreateContext 2
#define xvmc_DestroyContext 3
#define xvmc_CreateSurface 4
#define xvmc_DestroySurface 5
#define xvmc_CreateSubpicture 6
#define xvmc_DestroySubpicture 7
#define xvmc_ListSubpictureTypes 8
#define xvmc_GetDRInfo 9
#define xvmc_LastRequest xvmc_GetDRInfo
#define xvmcNumRequest (xvmc_LastRequest + 1)
typedef struct {
CARD32 surface_type_id B32;
CARD16 chroma_format B16;
CARD16 pad0 B16;
CARD16 max_width B16;
CARD16 max_height B16;
CARD16 subpicture_max_width B16;
CARD16 subpicture_max_height B16;
CARD32 mc_type B32;
CARD32 flags B32;
} xvmcSurfaceInfo;
#define sz_xvmcSurfaceInfo 24;
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
} xvmcQueryVersionReq;
#define sz_xvmcQueryVersionReq 4;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 major B32;
CARD32 minor B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
} xvmcQueryVersionReply;
#define sz_xvmcQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 port B32;
} xvmcListSurfaceTypesReq;
#define sz_xvmcListSurfaceTypesReq 8;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num B32;
CARD32 padl3 B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
} xvmcListSurfaceTypesReply;
#define sz_xvmcListSurfaceTypesReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 context_id B32;
CARD32 port B32;
CARD32 surface_type_id B32;
CARD16 width B16;
CARD16 height B16;
CARD32 flags B32;
} xvmcCreateContextReq;
#define sz_xvmcCreateContextReq 24;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 width_actual B16;
CARD16 height_actual B16;
CARD32 flags_return B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
} xvmcCreateContextReply;
#define sz_xvmcCreateContextReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 context_id B32;
} xvmcDestroyContextReq;
#define sz_xvmcDestroyContextReq 8;
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 surface_id B32;
CARD32 context_id B32;
} xvmcCreateSurfaceReq;
#define sz_xvmcCreateSurfaceReq 12;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 padl2 B32;
CARD32 padl3 B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
} xvmcCreateSurfaceReply;
#define sz_xvmcCreateSurfaceReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 surface_id B32;
} xvmcDestroySurfaceReq;
#define sz_xvmcDestroySurfaceReq 8;
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 subpicture_id B32;
CARD32 context_id B32;
CARD32 xvimage_id B32;
CARD16 width B16;
CARD16 height B16;
} xvmcCreateSubpictureReq;
#define sz_xvmcCreateSubpictureReq 20;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 width_actual B16;
CARD16 height_actual B16;
CARD16 num_palette_entries B16;
CARD16 entry_bytes B16;
CARD8 component_order[4];
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
} xvmcCreateSubpictureReply;
#define sz_xvmcCreateSubpictureReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 subpicture_id B32;
} xvmcDestroySubpictureReq;
#define sz_xvmcDestroySubpictureReq 8;
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 port B32;
CARD32 surface_type_id B32;
} xvmcListSubpictureTypesReq;
#define sz_xvmcListSubpictureTypesReq 12;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num B32;
CARD32 padl2 B32;
CARD32 padl3 B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
} xvmcListSubpictureTypesReply;
#define sz_xvmcListSubpictureTypesReply 32
typedef struct {
CARD8 reqType;
CARD8 xvmcReqType;
CARD16 length B16;
CARD32 port B32;
CARD32 shmKey B32;
CARD32 magic B32;
} xvmcGetDRInfoReq;
#define sz_xvmcGetDRInfoReq 16;
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 major B32;
CARD32 minor B32;
CARD32 patchLevel B32;
CARD32 nameLen B32;
CARD32 busIDLen B32;
CARD32 isLocal B32;
} xvmcGetDRInfoReply;
#define sz_xvmcGetDRInfoReply 32
#endif

View File

@@ -0,0 +1,603 @@
/***********************************************************
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or MIT not be
used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
#ifndef XVPROTO_H
#define XVPROTO_H
/*
** File:
**
** Xvproto.h --- Xv protocol header file
**
** Author:
**
** David Carver (Digital Workstation Engineering/Project Athena)
**
** Revisions:
**
** 11.06.91 Carver
** - changed SetPortControl to SetPortAttribute
** - changed GetPortControl to GetPortAttribute
** - changed QueryBestSize
**
** 15.05.91 Carver
** - version 2.0 upgrade
**
** 24.01.91 Carver
** - version 1.4 upgrade
**
*/
#include <X11/Xmd.h>
/* Symbols: These are undefined at the end of this file to restore the
values they have in Xv.h */
#define XvPortID CARD32
#define XvEncodingID CARD32
#define ShmSeg CARD32
#define VisualID CARD32
#define Drawable CARD32
#define GContext CARD32
#define Time CARD32
#define Atom CARD32
/* Structures */
typedef struct {
INT32 numerator B32;
INT32 denominator B32;
} xvRational;
#define sz_xvRational 8
typedef struct {
XvPortID base_id B32;
CARD16 name_size B16;
CARD16 num_ports B16;
CARD16 num_formats B16;
CARD8 type;
CARD8 pad;
} xvAdaptorInfo;
#define sz_xvAdaptorInfo 12
typedef struct {
XvEncodingID encoding B32;
CARD16 name_size B16;
CARD16 width B16, height B16;
CARD16 pad B16;
xvRational rate;
} xvEncodingInfo;
#define sz_xvEncodingInfo (12 + sz_xvRational)
typedef struct {
VisualID visual B32;
CARD8 depth;
CARD8 pad1;
CARD16 pad2 B16;
} xvFormat;
#define sz_xvFormat 8
typedef struct {
CARD32 flags B32;
INT32 min B32;
INT32 max B32;
CARD32 size B32;
} xvAttributeInfo;
#define sz_xvAttributeInfo 16
typedef struct {
CARD32 id B32;
CARD8 type;
CARD8 byte_order;
CARD16 pad1 B16;
CARD8 guid[16];
CARD8 bpp;
CARD8 num_planes;
CARD16 pad2 B16;
CARD8 depth;
CARD8 pad3;
CARD16 pad4 B16;
CARD32 red_mask B32;
CARD32 green_mask B32;
CARD32 blue_mask B32;
CARD8 format;
CARD8 pad5;
CARD16 pad6 B16;
CARD32 y_sample_bits B32;
CARD32 u_sample_bits B32;
CARD32 v_sample_bits B32;
CARD32 horz_y_period B32;
CARD32 horz_u_period B32;
CARD32 horz_v_period B32;
CARD32 vert_y_period B32;
CARD32 vert_u_period B32;
CARD32 vert_v_period B32;
CARD8 comp_order[32];
CARD8 scanline_order;
CARD8 pad7;
CARD16 pad8 B16;
CARD32 pad9 B32;
CARD32 pad10 B32;
} xvImageFormatInfo;
#define sz_xvImageFormatInfo 128
/* Requests */
#define xv_QueryExtension 0
#define xv_QueryAdaptors 1
#define xv_QueryEncodings 2
#define xv_GrabPort 3
#define xv_UngrabPort 4
#define xv_PutVideo 5
#define xv_PutStill 6
#define xv_GetVideo 7
#define xv_GetStill 8
#define xv_StopVideo 9
#define xv_SelectVideoNotify 10
#define xv_SelectPortNotify 11
#define xv_QueryBestSize 12
#define xv_SetPortAttribute 13
#define xv_GetPortAttribute 14
#define xv_QueryPortAttributes 15
#define xv_ListImageFormats 16
#define xv_QueryImageAttributes 17
#define xv_PutImage 18
#define xv_ShmPutImage 19
#define xv_LastRequest xv_ShmPutImage
#define xvNumRequests (xv_LastRequest + 1)
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
} xvQueryExtensionReq;
#define sz_xvQueryExtensionReq 4
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
CARD32 window B32;
} xvQueryAdaptorsReq;
#define sz_xvQueryAdaptorsReq 8
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
CARD32 port B32;
} xvQueryEncodingsReq;
#define sz_xvQueryEncodingsReq 8
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
INT16 vid_x B16;
INT16 vid_y B16;
CARD16 vid_w B16;
CARD16 vid_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
} xvPutVideoReq;
#define sz_xvPutVideoReq 32
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
INT16 vid_x B16;
INT16 vid_y B16;
CARD16 vid_w B16;
CARD16 vid_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
} xvPutStillReq;
#define sz_xvPutStillReq 32
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
INT16 vid_x B16;
INT16 vid_y B16;
CARD16 vid_w B16;
CARD16 vid_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
} xvGetVideoReq;
#define sz_xvGetVideoReq 32
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
INT16 vid_x B16;
INT16 vid_y B16;
CARD16 vid_w B16;
CARD16 vid_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
} xvGetStillReq;
#define sz_xvGetStillReq 32
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Time time B32;
} xvGrabPortReq;
#define sz_xvGrabPortReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Time time B32;
} xvUngrabPortReq;
#define sz_xvUngrabPortReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
Drawable drawable B32;
BOOL onoff;
CARD8 pad1;
CARD16 pad2;
} xvSelectVideoNotifyReq;
#define sz_xvSelectVideoNotifyReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
BOOL onoff;
CARD8 pad1;
CARD16 pad2;
} xvSelectPortNotifyReq;
#define sz_xvSelectPortNotifyReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
} xvStopVideoReq;
#define sz_xvStopVideoReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Atom attribute B32;
INT32 value B32;
} xvSetPortAttributeReq;
#define sz_xvSetPortAttributeReq 16
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Atom attribute B32;
} xvGetPortAttributeReq;
#define sz_xvGetPortAttributeReq 12
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
CARD16 vid_w B16;
CARD16 vid_h B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
CARD8 motion;
CARD8 pad1;
CARD16 pad2 B16;
} xvQueryBestSizeReq;
#define sz_xvQueryBestSizeReq 20
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
} xvQueryPortAttributesReq;
#define sz_xvQueryPortAttributesReq 8
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
CARD32 id B32;
INT16 src_x B16;
INT16 src_y B16;
CARD16 src_w B16;
CARD16 src_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
CARD16 width B16;
CARD16 height B16;
} xvPutImageReq;
#define sz_xvPutImageReq 40
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
Drawable drawable B32;
GContext gc B32;
ShmSeg shmseg B32;
CARD32 id B32;
CARD32 offset B32;
INT16 src_x B16;
INT16 src_y B16;
CARD16 src_w B16;
CARD16 src_h B16;
INT16 drw_x B16;
INT16 drw_y B16;
CARD16 drw_w B16;
CARD16 drw_h B16;
CARD16 width B16;
CARD16 height B16;
CARD8 send_event;
CARD8 pad1;
CARD16 pad2 B16;
} xvShmPutImageReq;
#define sz_xvShmPutImageReq 52
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
XvPortID port B32;
} xvListImageFormatsReq;
#define sz_xvListImageFormatsReq 8
typedef struct {
CARD8 reqType;
CARD8 xvReqType;
CARD16 length B16;
CARD32 port B32;
CARD32 id B32;
CARD16 width B16;
CARD16 height B16;
} xvQueryImageAttributesReq;
#define sz_xvQueryImageAttributesReq 16
/* Replies */
typedef struct _QueryExtensionReply {
BYTE type; /* X_Reply */
CARD8 padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 version B16;
CARD16 revision B16;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryExtensionReply;
#define sz_xvQueryExtensionReply 32
typedef struct _QueryAdaptorsReply {
BYTE type; /* X_Reply */
CARD8 padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 num_adaptors B16;
CARD16 pads3 B16;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryAdaptorsReply;
#define sz_xvQueryAdaptorsReply 32
typedef struct _QueryEncodingsReply {
BYTE type; /* X_Reply */
CARD8 padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 num_encodings B16;
CARD16 padl3 B16;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryEncodingsReply;
#define sz_xvQueryEncodingsReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE result;
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
CARD32 padl3 B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvGrabPortReply;
#define sz_xvGrabPortReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
INT32 value B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvGetPortAttributeReply;
#define sz_xvGetPortAttributeReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
CARD16 actual_width B16;
CARD16 actual_height B16;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryBestSizeReply;
#define sz_xvQueryBestSizeReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
CARD32 num_attributes B32;
CARD32 text_size B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryPortAttributesReply;
#define sz_xvQueryPortAttributesReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num_formats B32;
CARD32 padl4 B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvListImageFormatsReply;
#define sz_xvListImageFormatsReply 32
typedef struct {
BYTE type; /* X_Reply */
BYTE padb1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 num_planes B32;
CARD32 data_size B32;
CARD16 width B16;
CARD16 height B16;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} xvQueryImageAttributesReply;
#define sz_xvQueryImageAttributesReply 32
/* DEFINE EVENT STRUCTURE */
typedef struct {
union {
struct {
BYTE type;
BYTE detail;
CARD16 sequenceNumber B16;
} u;
struct {
BYTE type;
BYTE reason;
CARD16 sequenceNumber B16;
Time time B32;
Drawable drawable B32;
XvPortID port B32;
CARD32 padl5 B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} videoNotify;
struct {
BYTE type;
BYTE padb1;
CARD16 sequenceNumber B16;
Time time B32;
XvPortID port B32;
Atom attribute B32;
INT32 value B32;
CARD32 padl6 B32;
CARD32 padl7 B32;
CARD32 padl8 B32;
} portNotify;
} u;
} xvEvent;
#undef XvPortID
#undef XvEncodingID
#undef ShmSeg
#undef VisualID
#undef Drawable
#undef GContext
#undef Time
#undef Atom
#endif /* XVPROTO_H */

View File

@@ -0,0 +1,52 @@
/*
Copyright 1996, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _AG_H_
#define _AG_H_
#define XAGNAME "XC-APPGROUP"
#define XAG_MAJOR_VERSION 1 /* current version numbers */
#define XAG_MINOR_VERSION 0
#define XagWindowTypeX11 0
#define XagWindowTypeMacintosh 1
#define XagWindowTypeWin32 2
#define XagWindowTypeWin16 3
#define XagBadAppGroup 0
#define XagNumberErrors (XagBadAppGroup + 1)
#define XagNsingleScreen 7
#define XagNdefaultRoot 1
#define XagNrootVisual 2
#define XagNdefaultColormap 3
#define XagNblackPixel 4
#define XagNwhitePixel 5
#define XagNappGroupLeader 6
#endif /* _AG_H_ */

View File

@@ -0,0 +1,178 @@
/*
Copyright 1996, 1998, 2001 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _AGPROTO_H_ /* { */
#define _AGPROTO_H_
#include <X11/extensions/ag.h>
#define X_XagQueryVersion 0
#define X_XagCreate 1
#define X_XagDestroy 2
#define X_XagGetAttr 3
#define X_XagQuery 4
#define X_XagCreateAssoc 5
#define X_XagDestroyAssoc 6
#define XAppGroup CARD32
/*
* Redefine some basic types used by structures defined herein. This allows
* both the library and server to view communicated data as 32-bit entities,
* thus preventing problems on 64-bit architectures where libXext sees this
* data as 64 bits and the server sees it as 32 bits.
*/
#define Colormap CARD32
#define VisualID CARD32
#define Window CARD32
typedef struct _XagQueryVersion {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagQueryVersion */
CARD16 length B16;
CARD16 client_major_version B16;
CARD16 client_minor_version B16;
} xXagQueryVersionReq;
#define sz_xXagQueryVersionReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
CARD16 server_major_version B16;
CARD16 server_minor_version B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXagQueryVersionReply;
#define sz_xXagQueryVersionReply 32
/* Set AppGroup Attributes masks */
#define XagSingleScreenMask 1 << 0
#define XagDefaultRootMask 1 << XagNdefaultRoot
#define XagRootVisualMask 1 << XagNrootVisual
#define XagDefaultColormapMask 1 << XagNdefaultColormap
#define XagBlackPixelMask 1 << XagNblackPixel
#define XagWhitePixelMask 1 << XagNwhitePixel
#define XagAppGroupLeaderMask 1 << XagNappGroupLeader
typedef struct _XagCreate {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagCreate */
CARD16 length B16;
XAppGroup app_group B32;
CARD32 attrib_mask B32; /* LISTofVALUE follows */
} xXagCreateReq;
#define sz_xXagCreateReq 12
typedef struct _XagDestroy {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagDestroy */
CARD16 length B16;
XAppGroup app_group B32;
} xXagDestroyReq;
#define sz_xXagDestroyReq 8
typedef struct _XagGetAttr {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagGetAttr */
CARD16 length B16;
XAppGroup app_group B32;
} xXagGetAttrReq;
#define sz_xXagGetAttrReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
Window default_root B32;
VisualID root_visual B32;
Colormap default_colormap B32;
CARD32 black_pixel B32;
CARD32 white_pixel B32;
BOOL single_screen;
BOOL app_group_leader;
CARD16 pad2 B16;
} xXagGetAttrReply;
#define sz_xXagGetAttrReply 32
typedef struct _XagQuery {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagQuery */
CARD16 length B16;
CARD32 resource B32;
} xXagQueryReq;
#define sz_xXagQueryReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
XAppGroup app_group B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXagQueryReply;
#define sz_xXagQueryReply 32
typedef struct _XagCreateAssoc {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagCreateAssoc */
CARD16 length B16;
Window window B32;
CARD16 window_type B16;
CARD16 system_window_len B16; /* LISTofCARD8 follows */
} xXagCreateAssocReq;
#define sz_xXagCreateAssocReq 12
typedef struct _XagDestroyAssoc {
CARD8 reqType; /* always XagReqCode */
CARD8 xagReqType; /* always X_XagDestroyAssoc */
CARD16 length B16;
Window window B32;
} xXagDestroyAssocReq;
#define sz_xXagDestroyAssocReq 8
#undef XAppGroup
/*
* Cancel the previous redefinition of the basic types, thus restoring their
* X.h definitions.
*/
#undef Window
#undef Colormap
#undef VisualID
#endif /* } _AGPROTO_H_ */

View File

@@ -0,0 +1,84 @@
/**************************************************************************
Copyright (c) 2002 Apple Computer, Inc.
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sub license, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
#ifndef _APPLEWMCONST_H_
#define _APPLEWMCONST_H_
/* Events */
#define AppleWMControllerNotify 0
#define AppleWMActivationNotify 1
#define AppleWMPasteboardNotify 2
#define AppleWMNumberEvents 3
#define AppleWMControllerNotifyMask (1L << 0)
#define AppleWMActivationNotifyMask (1L << 1)
#define AppleWMPasteboardNotifyMask (1L << 2)
/* "Kinds" of ControllerNotify events */
#define AppleWMMinimizeWindow 0
#define AppleWMZoomWindow 1
#define AppleWMCloseWindow 2
#define AppleWMBringAllToFront 3
#define AppleWMHideWindow 4
#define AppleWMHideAll 5
#define AppleWMShowAll 6
#define AppleWMWindowMenuItem 9
#define AppleWMWindowMenuNotify 10
#define AppleWMNextWindow 11
#define AppleWMPreviousWindow 12
/* "Kinds" of ActivationNotify events */
#define AppleWMIsActive 0
#define AppleWMIsInactive 1
#define AppleWMReloadPreferences 2
/* "Kinds" of PasteboardNotify events */
#define AppleWMCopyToPasteboard 0
/* Errors */
#define AppleWMClientNotLocal 0
#define AppleWMOperationNotSupported 1
#define AppleWMNumberErrors (AppleWMOperationNotSupported + 1)
/* Window level ids */
#define AppleWMWindowLevelNormal 0
#define AppleWMWindowLevelFloating 1
#define AppleWMWindowLevelTornOff 2
#define AppleWMWindowLevelDock 3
#define AppleWMWindowLevelDesktop 4
#define AppleWMNumWindowLevels 5
/* Possible value for frame_rect argument to XAppleWMFrameGetRect() */
/* Use xp_frame_rect_enum from <Xplugin.h> */
/* Window frame classes */
/* Use xp_frame_class_enum from <Xplugin.h> */
/* Window frame attributes */
/* Use xp_frame_attr_enum from <Xplugin.h> */
#endif /* _APPLEWMCONST_H_ */

View File

@@ -0,0 +1,293 @@
/**************************************************************************
Copyright (c) 2002 Apple Computer, Inc.
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sub license, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
#ifndef _APPLEWMPROTO_H_
#define _APPLEWMPROTO_H_
#include <X11/extensions/applewmconst.h>
#include <X11/X.h>
#include <X11/Xmd.h>
#define APPLEWMNAME "Apple-WM"
#define APPLE_WM_MAJOR_VERSION 1 /* current version numbers */
#define APPLE_WM_MINOR_VERSION 3
#define APPLE_WM_PATCH_VERSION 0
#define X_AppleWMQueryVersion 0
#define X_AppleWMFrameGetRect 1
#define X_AppleWMFrameHitTest 2
#define X_AppleWMFrameDraw 3
#define X_AppleWMDisableUpdate 4
#define X_AppleWMReenableUpdate 5
#define X_AppleWMSelectInput 6
#define X_AppleWMSetWindowMenuCheck 7
#define X_AppleWMSetFrontProcess 8
#define X_AppleWMSetWindowLevel 9
#define X_AppleWMSetCanQuit 10
#define X_AppleWMSetWindowMenu 11
#define X_AppleWMSendPSN 12
#define X_AppleWMAttachTransient 13
/* For the purpose of the structure definitions in this file,
we must redefine the following types in terms of Xmd.h's types, which may
include bit fields. All of these are #undef'd at the end of this file,
restoring the definitions in X.h. */
#define Window CARD32
#define Drawable CARD32
#define Font CARD32
#define Pixmap CARD32
#define Cursor CARD32
#define Colormap CARD32
#define GContext CARD32
#define Atom CARD32
#define VisualID CARD32
#define Time CARD32
#define KeyCode CARD8
#define KeySym CARD32
typedef struct _AppleWMQueryVersion {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMQueryVersion */
CARD16 length B16;
} xAppleWMQueryVersionReq;
#define sz_xAppleWMQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of WM protocol */
CARD16 minorVersion B16; /* minor version of WM protocol */
CARD32 patchVersion B32; /* patch version of WM protocol */
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xAppleWMQueryVersionReply;
#define sz_xAppleWMQueryVersionReply 32
typedef struct _AppleWMDisableUpdate {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMDisableUpdate */
CARD16 length B16;
CARD32 screen B32;
} xAppleWMDisableUpdateReq;
#define sz_xAppleWMDisableUpdateReq 8
typedef struct _AppleWMReenableUpdate {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMReenableUpdate */
CARD16 length B16;
CARD32 screen B32;
} xAppleWMReenableUpdateReq;
#define sz_xAppleWMReenableUpdateReq 8
typedef struct _AppleWMSelectInput {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSelectInput */
CARD16 length B16;
CARD32 mask B32;
} xAppleWMSelectInputReq;
#define sz_xAppleWMSelectInputReq 8
typedef struct _AppleWMNotify {
BYTE type; /* always eventBase + event type */
BYTE kind;
CARD16 sequenceNumber B16;
Time time B32; /* time of change */
CARD16 pad1 B16;
CARD32 arg B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xAppleWMNotifyEvent;
#define sz_xAppleWMNotifyEvent 32
typedef struct _AppleWMSetWindowMenu {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSetWindowMenu */
CARD16 length B16;
CARD16 nitems B16;
CARD16 pad1 B16;
} xAppleWMSetWindowMenuReq;
#define sz_xAppleWMSetWindowMenuReq 8
typedef struct _AppleWMSetWindowMenuCheck {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSetWindowMenuCheck */
CARD16 length B16;
CARD32 index;
} xAppleWMSetWindowMenuCheckReq;
#define sz_xAppleWMSetWindowMenuCheckReq 8
typedef struct _AppleWMSetFrontProcess {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSetFrontProcess */
CARD16 length B16;
} xAppleWMSetFrontProcessReq;
#define sz_xAppleWMSetFrontProcessReq 4
typedef struct _AppleWMSetWindowLevel {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSetWindowLevel */
CARD16 length B16;
CARD32 window;
CARD32 level;
} xAppleWMSetWindowLevelReq;
#define sz_xAppleWMSetWindowLevelReq 12
typedef struct _AppleWMSendPSN {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSendPSN */
CARD16 length B16;
CARD32 psn_hi;
CARD32 psn_lo;
} xAppleWMSendPSNReq;
#define sz_xAppleWMSendPSNReq 12
typedef struct _AppleWMAttachTransient {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMAttachTransient */
CARD16 length B16;
CARD32 child;
CARD32 parent;
} xAppleWMAttachTransientReq;
#define sz_xAppleWMAttachTransientReq 12
typedef struct _AppleWMSetCanQuit {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMSetCanQuit */
CARD16 length B16;
CARD32 state;
} xAppleWMSetCanQuitReq;
#define sz_xAppleWMSetCanQuitReq 8
typedef struct _AppleWMFrameGetRect {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMFrameGetRect */
CARD16 length B16;
CARD16 frame_class B16;
CARD16 frame_rect B16;
CARD16 ix B16;
CARD16 iy B16;
CARD16 iw B16;
CARD16 ih B16;
CARD16 ox B16;
CARD16 oy B16;
CARD16 ow B16;
CARD16 oh B16;
} xAppleWMFrameGetRectReq;
#define sz_xAppleWMFrameGetRectReq 24
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 x B16;
CARD16 y B16;
CARD16 w B16;
CARD16 h B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xAppleWMFrameGetRectReply;
#define sz_xAppleWMFrameGetRectReply 32
typedef struct _AppleWMFrameHitTest {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMFrameHitTest */
CARD16 length B16;
CARD16 frame_class B16;
CARD16 pad1 B16;
CARD16 px B16;
CARD16 py B16;
CARD16 ix B16;
CARD16 iy B16;
CARD16 iw B16;
CARD16 ih B16;
CARD16 ox B16;
CARD16 oy B16;
CARD16 ow B16;
CARD16 oh B16;
} xAppleWMFrameHitTestReq;
#define sz_xAppleWMFrameHitTestReq 28
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 ret B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xAppleWMFrameHitTestReply;
#define sz_xAppleWMFrameHitTestReply 32
typedef struct _AppleWMFrameDraw {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_AppleWMFrameDraw */
CARD16 length B16;
CARD32 screen B32;
CARD32 window B32;
CARD16 frame_class B16;
CARD16 frame_attr B16;
CARD16 ix B16;
CARD16 iy B16;
CARD16 iw B16;
CARD16 ih B16;
CARD16 ox B16;
CARD16 oy B16;
CARD16 ow B16;
CARD16 oh B16;
CARD32 title_length B32;
} xAppleWMFrameDrawReq;
#define sz_xAppleWMFrameDrawReq 36
/* restore these definitions back to the typedefs in X.h */
#undef Window
#undef Drawable
#undef Font
#undef Pixmap
#undef Cursor
#undef Colormap
#undef GContext
#undef Atom
#undef VisualID
#undef Time
#undef KeyCode
#undef KeySym
#endif /* _APPLEWMPROTO_H_ */

View File

@@ -0,0 +1,67 @@
/*
Copyright 1992, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _BIGREQSPROTO_H_
#define _BIGREQSPROTO_H_
#define X_BigReqEnable 0
#define XBigReqNumberEvents 0
#define XBigReqNumberErrors 0
#define XBigReqExtensionName "BIG-REQUESTS"
typedef struct {
CARD8 reqType; /* always XBigReqCode */
CARD8 brReqType; /* always X_BigReqEnable */
CARD16 length B16;
} xBigReqEnableReq;
#define sz_xBigReqEnableReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 max_request_size B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xBigReqEnableReply;
#define sz_xBigReqEnableReply 32
typedef struct {
CARD8 reqType;
CARD8 data;
CARD16 zero B16;
CARD32 length B32;
} xBigReq;
#endif /* _BIGREQSPROTO_H_ */

View File

@@ -0,0 +1,3 @@
#warning "bigreqstr.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/bigreqsproto.h> for the protocol defines."
#include <X11/extensions/bigreqsproto.h>

View File

@@ -0,0 +1,71 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
/*
* Copyright © 2003 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _COMPOSITE_H_
#define _COMPOSITE_H_
#include <X11/extensions/xfixeswire.h>
#define COMPOSITE_NAME "Composite"
#define COMPOSITE_MAJOR 0
#define COMPOSITE_MINOR 4
#define CompositeRedirectAutomatic 0
#define CompositeRedirectManual 1
#define X_CompositeQueryVersion 0
#define X_CompositeRedirectWindow 1
#define X_CompositeRedirectSubwindows 2
#define X_CompositeUnredirectWindow 3
#define X_CompositeUnredirectSubwindows 4
#define X_CompositeCreateRegionFromBorderClip 5
#define X_CompositeNameWindowPixmap 6
#define X_CompositeGetOverlayWindow 7
#define X_CompositeReleaseOverlayWindow 8
#define CompositeNumberRequests (X_CompositeReleaseOverlayWindow + 1)
#define CompositeNumberEvents 0
#endif /* _COMPOSITE_H_ */

View File

@@ -0,0 +1,192 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
/*
* Copyright © 2003 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _COMPOSITEPROTO_H_
#define _COMPOSITEPROTO_H_
#include <X11/Xmd.h>
#include <X11/extensions/composite.h>
#define Window CARD32
#define Region CARD32
#define Pixmap CARD32
/*
* requests and replies
*/
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xCompositeQueryVersionReq;
#define sz_xCompositeQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xCompositeQueryVersionReply;
#define sz_xCompositeQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
} xCompositeRedirectWindowReq;
#define sz_xCompositeRedirectWindowReq 12
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
} xCompositeRedirectSubwindowsReq;
#define sz_xCompositeRedirectSubwindowsReq 12
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
} xCompositeUnredirectWindowReq;
#define sz_xCompositeUnredirectWindowReq 12
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
} xCompositeUnredirectSubwindowsReq;
#define sz_xCompositeUnredirectSubwindowsReq 12
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Region region B32;
Window window B32;
} xCompositeCreateRegionFromBorderClipReq;
#define sz_xCompositeCreateRegionFromBorderClipReq 12
/* Version 0.2 additions */
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length;
Window window B32;
Pixmap pixmap B32;
} xCompositeNameWindowPixmapReq;
#define sz_xCompositeNameWindowPixmapReq 12
/* Version 0.3 additions */
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
} xCompositeGetOverlayWindowReq;
#define sz_xCompositeGetOverlayWindowReq sizeof(xCompositeGetOverlayWindowReq)
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
Window overlayWin B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xCompositeGetOverlayWindowReply;
#define sz_xCompositeGetOverlayWindowReply sizeof(xCompositeGetOverlayWindowReply)
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
} xCompositeReleaseOverlayWindowReq;
#define sz_xCompositeReleaseOverlayWindowReq sizeof(xCompositeReleaseOverlayWindowReq)
#undef Window
#undef Region
#undef Pixmap
#endif /* _COMPOSITEPROTO_H_ */

View File

@@ -0,0 +1,38 @@
/*
Copyright 1987, 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _CUP_H_
#define _CUP_H_
#define XCUPNAME "TOG-CUP"
#define XCUP_MAJOR_VERSION 1 /* current version numbers */
#define XCUP_MINOR_VERSION 0
#define XcupNumberErrors 0
#endif /* _CUP_H_ */

View File

@@ -0,0 +1,105 @@
/*
Copyright 1987, 1988, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _XCUPPROTO_H_ /* { */
#define _XCUPPROTO_H_
#include <X11/extensions/cup.h>
#define X_XcupQueryVersion 0
#define X_XcupGetReservedColormapEntries 1
#define X_XcupStoreColors 2
typedef struct _XcupQueryVersion {
CARD8 reqType; /* always XcupReqCode */
CARD8 xcupReqType; /* always X_XcupQueryVersion */
CARD16 length B16;
CARD16 client_major_version B16;
CARD16 client_minor_version B16;
} xXcupQueryVersionReq;
#define sz_xXcupQueryVersionReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
CARD16 server_major_version B16;
CARD16 server_minor_version B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXcupQueryVersionReply;
#define sz_xXcupQueryVersionReply 32
typedef struct _XcupGetReservedColormapEntries {
CARD8 reqType; /* always XcupReqCode */
CARD8 xcupReqType; /* always X_XcupGetReservedColormapEntries */
CARD16 length B16;
CARD32 screen B32;
} xXcupGetReservedColormapEntriesReq;
#define sz_xXcupGetReservedColormapEntriesReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xXcupGetReservedColormapEntriesReply;
#define sz_xXcupGetReservedColormapEntriesReply 32
typedef struct _XcupStoreColors {
CARD8 reqType; /* always XcupReqCode */
CARD8 xcupReqType; /* always X_XcupStoreColors */
CARD16 length B16;
CARD32 cmap B32;
} xXcupStoreColorsReq;
#define sz_xXcupStoreColorsReq 8
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequence_number B16;
CARD32 length B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xXcupStoreColorsReply;
#define sz_xXcupStoreColorsReply 32
#endif /* } _XCUPPROTO_H_ */

View File

@@ -0,0 +1,158 @@
/*
* Copyright © 2003 Keith Packard
* Copyright © 2007 Eric Anholt
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _DAMAGEPROTO_H_
#define _DAMAGEPROTO_H_
#include <X11/Xmd.h>
#include <X11/extensions/xfixesproto.h>
#include <X11/extensions/damagewire.h>
#define Window CARD32
#define Drawable CARD32
#define Font CARD32
#define Pixmap CARD32
#define Cursor CARD32
#define Colormap CARD32
#define GContext CARD32
#define Atom CARD32
#define VisualID CARD32
#define Time CARD32
#define KeyCode CARD8
#define KeySym CARD32
#define Picture CARD32
#define Region CARD32
#define Damage CARD32
/************** Version 0 ******************/
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
} xDamageReq;
/*
* requests and replies
*/
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xDamageQueryVersionReq;
#define sz_xDamageQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDamageQueryVersionReply;
#define sz_xDamageQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
Damage damage B32;
Drawable drawable B32;
CARD8 level;
CARD8 pad1;
CARD16 pad2 B16;
} xDamageCreateReq;
#define sz_xDamageCreateReq 16
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
Damage damage B32;
} xDamageDestroyReq;
#define sz_xDamageDestroyReq 8
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
Damage damage B32;
Region repair B32;
Region parts B32;
} xDamageSubtractReq;
#define sz_xDamageSubtractReq 16
typedef struct {
CARD8 reqType;
CARD8 damageReqType;
CARD16 length B16;
Drawable drawable B32;
Region region B32;
} xDamageAddReq;
#define sz_xDamageAddReq 12
/* Events */
#define DamageNotifyMore 0x80
typedef struct {
CARD8 type;
CARD8 level;
CARD16 sequenceNumber B16;
Drawable drawable B32;
Damage damage B32;
Time timestamp B32;
xRectangle area;
xRectangle geometry;
} xDamageNotifyEvent;
#undef Damage
#undef Region
#undef Picture
#undef Window
#undef Drawable
#undef Font
#undef Pixmap
#undef Cursor
#undef Colormap
#undef GContext
#undef Atom
#undef VisualID
#undef Time
#undef KeyCode
#undef KeySym
#endif /* _DAMAGEPROTO_H_ */

View File

@@ -0,0 +1,56 @@
/*
* Copyright © 2003 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _DAMAGEWIRE_H_
#define _DAMAGEWIRE_H_
#define DAMAGE_NAME "DAMAGE"
#define DAMAGE_MAJOR 1
#define DAMAGE_MINOR 1
/************* Version 1 ****************/
/* Constants */
#define XDamageReportRawRectangles 0
#define XDamageReportDeltaRectangles 1
#define XDamageReportBoundingBox 2
#define XDamageReportNonEmpty 3
/* Requests */
#define X_DamageQueryVersion 0
#define X_DamageCreate 1
#define X_DamageDestroy 2
#define X_DamageSubtract 3
#define X_DamageAdd 4
#define XDamageNumberRequests (X_DamageAdd + 1)
/* Events */
#define XDamageNotify 0
#define XDamageNumberEvents (XDamageNotify + 1)
/* Errors */
#define BadDamage 0
#define XDamageNumberErrors (BadDamage + 1)
#endif /* _DAMAGEWIRE_H_ */

View File

@@ -0,0 +1,57 @@
/******************************************************************************
*
* Copyright (c) 1994, 1995 Hewlett-Packard Company
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the Hewlett-Packard
* Company shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization from the Hewlett-Packard Company.
*
* Header file for Xlib-related DBE
*
*****************************************************************************/
#ifndef DBE_H
#define DBE_H
/* Values for swap_action field of XdbeSwapInfo structure */
#define XdbeUndefined 0
#define XdbeBackground 1
#define XdbeUntouched 2
#define XdbeCopied 3
/* Errors */
#define XdbeBadBuffer 0
#define DBE_PROTOCOL_NAME "DOUBLE-BUFFER"
/* Current version numbers */
#define DBE_MAJOR_VERSION 1
#define DBE_MINOR_VERSION 0
/* Used when adding extension; also used in Xdbe macros */
#define DbeNumberEvents 0
#define DbeBadBuffer 0
#define DbeNumberErrors (DbeBadBuffer + 1)
#endif /* DBE_H */

View File

@@ -0,0 +1,224 @@
/******************************************************************************
*
* Copyright (c) 1994, 1995 Hewlett-Packard Company
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the Hewlett-Packard
* Company shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization from the Hewlett-Packard Company.
*
* Header file for Xlib-related DBE
*
*****************************************************************************/
#ifndef DBE_PROTO_H
#define DBE_PROTO_H
#include <X11/extensions/dbe.h>
/* Request values used in (S)ProcDbeDispatch() */
#define X_DbeGetVersion 0
#define X_DbeAllocateBackBufferName 1
#define X_DbeDeallocateBackBufferName 2
#define X_DbeSwapBuffers 3
#define X_DbeBeginIdiom 4
#define X_DbeEndIdiom 5
#define X_DbeGetVisualInfo 6
#define X_DbeGetBackBufferAttributes 7
typedef CARD8 xDbeSwapAction;
typedef CARD32 xDbeBackBuffer;
/* TYPEDEFS */
/* Protocol data types */
typedef struct
{
CARD32 window B32; /* window */
xDbeSwapAction swapAction; /* swap action */
CARD8 pad1; /* unused */
CARD16 pad2 B16;
} xDbeSwapInfo;
typedef struct
{
CARD32 visualID B32; /* associated visual */
CARD8 depth; /* depth of visual */
CARD8 perfLevel; /* performance level hint */
CARD16 pad1 B16;
} xDbeVisInfo;
#define sz_xDbeVisInfo 8
typedef struct
{
CARD32 n B32; /* number of visual info items in list */
} xDbeScreenVisInfo; /* followed by n xDbeVisInfo items */
typedef struct
{
CARD32 window B32; /* window */
} xDbeBufferAttributes;
/* Requests and replies */
typedef struct
{
CARD8 reqType; /* major-opcode: always codes->major_opcode */
CARD8 dbeReqType; /* minor-opcode: always X_DbeGetVersion (0) */
CARD16 length B16; /* request length: (2) */
CARD8 majorVersion; /* client-major-version */
CARD8 minorVersion; /* client-minor-version */
CARD16 unused B16; /* unused */
} xDbeGetVersionReq;
#define sz_xDbeGetVersionReq 8
typedef struct
{
BYTE type; /* Reply: X_Reply (1) */
CARD8 unused; /* unused */
CARD16 sequenceNumber B16; /* sequence number */
CARD32 length B32; /* reply length: (0) */
CARD8 majorVersion; /* server-major-version */
CARD8 minorVersion; /* server-minor-version */
CARD16 pad1 B16; /* unused */
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xDbeGetVersionReply;
#define sz_xDbeGetVersionReply 32
typedef struct
{
CARD8 reqType; /* major-opcode: codes->major_opcode */
CARD8 dbeReqType; /* X_DbeAllocateBackBufferName (1) */
CARD16 length B16; /* request length: (4) */
CARD32 window B32; /* window */
xDbeBackBuffer buffer B32; /* back buffer name */
xDbeSwapAction swapAction; /* swap action hint */
CARD8 pad1; /* unused */
CARD16 pad2 B16;
} xDbeAllocateBackBufferNameReq;
#define sz_xDbeAllocateBackBufferNameReq 16
typedef struct
{
CARD8 reqType; /* major-opcode: codes->major_opcode */
CARD8 dbeReqType; /* X_DbeDeallocateBackBufferName (2) */
CARD16 length B16; /* request length: (2) */
xDbeBackBuffer buffer B32; /* back buffer name */
} xDbeDeallocateBackBufferNameReq;
#define sz_xDbeDeallocateBackBufferNameReq 8
typedef struct
{
CARD8 reqType; /* major-opcode: always codes->major_opcode */
CARD8 dbeReqType; /* minor-opcode: always X_DbeSwapBuffers (3) */
CARD16 length B16; /* request length: (2+2n) */
CARD32 n B32; /* n, number of window/swap action pairs */
} xDbeSwapBuffersReq; /* followed by n window/swap action pairs */
#define sz_xDbeSwapBuffersReq 8
typedef struct
{
CARD8 reqType; /* major-opcode: always codes->major_opcode */
CARD8 dbeReqType; /* minor-opcode: always X_DbeBeginIdom (4) */
CARD16 length B16; /* request length: (1) */
} xDbeBeginIdiomReq;
#define sz_xDbeBeginIdiomReq 4
typedef struct
{
CARD8 reqType; /* major-opcode: always codes->major_opcode */
CARD8 dbeReqType; /* minor-opcode: always X_DbeEndIdom (5) */
CARD16 length B16; /* request length: (1) */
} xDbeEndIdiomReq;
#define sz_xDbeEndIdiomReq 4
typedef struct
{
CARD8 reqType; /* always codes->major_opcode */
CARD8 dbeReqType; /* always X_DbeGetVisualInfo (6) */
CARD16 length B16; /* request length: (2+n) */
CARD32 n B32; /* n, number of drawables in list */
} xDbeGetVisualInfoReq; /* followed by n drawables */
#define sz_xDbeGetVisualInfoReq 8
typedef struct
{
BYTE type; /* Reply: X_Reply (1) */
CARD8 unused; /* unused */
CARD16 sequenceNumber B16; /* sequence number */
CARD32 length B32; /* reply length */
CARD32 m; /* m, number of visual infos in list */
CARD32 pad1 B32; /* unused */
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDbeGetVisualInfoReply; /* followed by m visual infos */
#define sz_xDbeGetVisualInfoReply 32
typedef struct
{
CARD8 reqType; /* always codes->major_opcode */
CARD8 dbeReqType; /* X_DbeGetBackBufferAttributes (7) */
CARD16 length B16; /* request length: (2) */
xDbeBackBuffer buffer B32; /* back buffer name */
} xDbeGetBackBufferAttributesReq;
#define sz_xDbeGetBackBufferAttributesReq 8
typedef struct
{
BYTE type; /* Reply: X_Reply (1) */
CARD8 unused; /* unused */
CARD16 sequenceNumber B16; /* sequence number */
CARD32 length B32; /* reply length: (0) */
CARD32 attributes; /* attributes */
CARD32 pad1 B32; /* unused */
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDbeGetBackBufferAttributesReply;
#define sz_xDbeGetBackBufferAttributesReply 32
#endif /* DBE_PROTO_H */

View File

@@ -0,0 +1,68 @@
/*
* Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation on the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* Authors:
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* This file describes the interface to the client-side libdmx.a
* library. All DMX-aware client-side applications should include this
* file. */
#ifndef _DMX_H_
#define _DMX_H_
/* These values must be larger than LastExtensionError.
The values in dmxext.h and dmxproto.h *MUST* match. */
#define DmxBadXinerama 1001
#define DmxBadValue 1002
#define DmxBadReply 1003
#define DMXScreenWindowWidth (1L<<0)
#define DMXScreenWindowHeight (1L<<1)
#define DMXScreenWindowXoffset (1L<<2)
#define DMXScreenWindowYoffset (1L<<3)
#define DMXRootWindowWidth (1L<<4)
#define DMXRootWindowHeight (1L<<5)
#define DMXRootWindowXoffset (1L<<6)
#define DMXRootWindowYoffset (1L<<7)
#define DMXRootWindowXorigin (1L<<8)
#define DMXRootWindowYorigin (1L<<9)
#define DMXDesktopWidth (1L<<0)
#define DMXDesktopHeight (1L<<1)
#define DMXDesktopShiftX (1L<<2)
#define DMXDesktopShiftY (1L<<3)
#define DMXInputType (1L<<0)
#define DMXInputPhysicalScreen (1L<<1)
#define DMXInputSendsCore (1L<<2)
#endif

View File

@@ -0,0 +1,445 @@
/*
* Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation on the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* Authors:
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* This file describes the structures necessary to implement the wire
* protocol for the DMX protocol extension. It should be included only
* in files that implement the client-side (or server-side) part of the
* protocol (i.e., client-side applications should \b not include this
* file). */
#ifndef _DMXSTR_H_
#define _DMXSTR_H_
#define DMX_EXTENSION_NAME "DMX"
#define DMX_EXTENSION_MAJOR 2
#define DMX_EXTENSION_MINOR 2
#define DMX_EXTENSION_PATCH 20040604
/* These values must be larger than LastExtensionError.
The values in dmxext.h and dmxproto.h *MUST* match. */
#define DMX_BAD_XINERAMA 1001
#define DMX_BAD_VALUE 1002
#define X_DMXQueryVersion 0
#define X_DMXGetScreenCount 1
#define X_DMXGetScreenInformationDEPRECATED 2
#define X_DMXGetWindowAttributes 3
#define X_DMXGetInputCount 4
#define X_DMXGetInputAttributes 5
#define X_DMXForceWindowCreationDEPRECATED 6
#define X_DMXReconfigureScreenDEPRECATED 7
#define X_DMXSync 8
#define X_DMXForceWindowCreation 9
#define X_DMXGetScreenAttributes 10
#define X_DMXChangeScreensAttributes 11
#define X_DMXAddScreen 12
#define X_DMXRemoveScreen 13
#define X_DMXGetDesktopAttributes 14
#define X_DMXChangeDesktopAttributes 15
#define X_DMXAddInput 16
#define X_DMXRemoveInput 17
/** Wire-level description of DMXQueryVersion protocol request. */
typedef struct {
CARD8 reqType; /* dmxcode */
CARD8 dmxReqType; /* X_DMXQueryVersion */
CARD16 length B16;
} xDMXQueryVersionReq;
#define sz_xDMXQueryVersionReq 4
/** Wire-level description of DMXQueryVersion protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 ununsed;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 patchVersion B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
} xDMXQueryVersionReply;
#define sz_xDMXQueryVersionReply 32
/** Wire-level description of DMXSync protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXSync */
CARD16 length B16;
} xDMXSyncReq;
#define sz_xDMXSyncReq 4
/** Wire-level description of DMXSync protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXSyncReply;
#define sz_xDMXSyncReply 32
/** Wire-level description of DMXForceWindowCreation protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXForceWindowCreation */
CARD16 length B16;
CARD32 window B32;
} xDMXForceWindowCreationReq;
#define sz_xDMXForceWindowCreationReq 8
/** Wire-level description of DMXForceWindowCreation protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXForceWindowCreationReply;
#define sz_xDMXForceWindowCreationReply 32
/** Wire-level description of DMXGetScreenCount protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetScreenCount */
CARD16 length B16;
} xDMXGetScreenCountReq;
#define sz_xDMXGetScreenCountReq 4
/** Wire-level description of DMXGetScreenCount protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 screenCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetScreenCountReply;
#define sz_xDMXGetScreenCountReply 32
/** Wire-level description of DMXGetScreenAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetScreenAttributes */
CARD16 length B16;
CARD32 physicalScreen B32;
} xDMXGetScreenAttributesReq;
#define sz_xDMXGetScreenAttributesReq 8
/** Wire-level description of DMXGetScreenAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 displayNameLength B32;
CARD32 logicalScreen B32;
CARD16 screenWindowWidth B16;
CARD16 screenWindowHeight B16;
INT16 screenWindowXoffset B16;
INT16 screenWindowYoffset B16;
CARD16 rootWindowWidth B16;
CARD16 rootWindowHeight B16;
INT16 rootWindowXoffset B16;
INT16 rootWindowYoffset B16;
INT16 rootWindowXorigin B16;
INT16 rootWindowYorigin B16;
} xDMXGetScreenAttributesReply;
#define sz_xDMXGetScreenAttributesReply 36
/** Wire-level description of DMXChangeScreensAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXChangeScreensAttributes */
CARD16 length B16;
CARD32 screenCount B32;
CARD32 maskCount B32;
} xDMXChangeScreensAttributesReq;
#define sz_xDMXChangeScreensAttributesReq 12
/** Wire-level description of DMXChangeScreensAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 errorScreen B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXChangeScreensAttributesReply;
#define sz_xDMXChangeScreensAttributesReply 32
/** Wire-level description of DMXAddScreen protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXAddScreen */
CARD16 length B16;
CARD32 displayNameLength B32;
CARD32 physicalScreen B32;
CARD32 valueMask B32;
} xDMXAddScreenReq;
#define sz_xDMXAddScreenReq 16
/** Wire-level description of DMXAddScreen protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 physicalScreen B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXAddScreenReply;
#define sz_xDMXAddScreenReply 32
/** Wire-level description of DMXRemoveScreen protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXRemoveScreen */
CARD16 length B16;
CARD32 physicalScreen B32;
} xDMXRemoveScreenReq;
#define sz_xDMXRemoveScreenReq 8
/** Wire-level description of DMXRemoveScreen protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXRemoveScreenReply;
#define sz_xDMXRemoveScreenReply 32
/** Wire-level description of DMXGetWindowAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetWindowAttributes */
CARD16 length B16;
CARD32 window B32;
} xDMXGetWindowAttributesReq;
#define sz_xDMXGetWindowAttributesReq 8
/** Wire-level description of DMXGetWindowAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 screenCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetWindowAttributesReply;
#define sz_xDMXGetWindowAttributesReply 32
/** Wire-level description of DMXGetDesktopAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetDesktopAttributes */
CARD16 length B16;
} xDMXGetDesktopAttributesReq;
#define sz_xDMXGetDesktopAttributesReq 4
/** Wire-level description of DMXGetDesktopAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 width;
INT16 height;
INT16 shiftX;
INT16 shiftY;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXGetDesktopAttributesReply;
#define sz_xDMXGetDesktopAttributesReply 32
/** Wire-level description of DMXChangeDesktopAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXChangeDesktopAttributes */
CARD16 length B16;
CARD32 valueMask B32;
} xDMXChangeDesktopAttributesReq;
#define sz_xDMXChangeDesktopAttributesReq 8
/** Wire-level description of DMXChangeDesktopAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXChangeDesktopAttributesReply;
#define sz_xDMXChangeDesktopAttributesReply 32
/** Wire-level description of DMXGetInputCount protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetInputCount */
CARD16 length B16;
} xDMXGetInputCountReq;
#define sz_xDMXGetInputCountReq 4
/** Wire-level description of DMXGetInputCount protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 inputCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetInputCountReply;
#define sz_xDMXGetInputCountReply 32
/** Wire-level description of DMXGetInputAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetInputAttributes */
CARD16 length B16;
CARD32 deviceId B32;
} xDMXGetInputAttributesReq;
#define sz_xDMXGetInputAttributesReq 8
/** Wire-level description of DMXGetInputAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 inputType B32;
CARD32 physicalScreen B32;
CARD32 physicalId B32;
CARD32 nameLength B32;
BOOL isCore;
BOOL sendsCore;
BOOL detached;
CARD8 pad0;
CARD32 pad1 B32;
} xDMXGetInputAttributesReply;
#define sz_xDMXGetInputAttributesReply 32
/** Wire-level description of DMXAddInput protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXAddInput */
CARD16 length B16;
CARD32 displayNameLength B32;
CARD32 valueMask;
} xDMXAddInputReq;
#define sz_xDMXAddInputReq 12
/** Wire-level description of DMXAddInput protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 physicalId B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXAddInputReply;
#define sz_xDMXAddInputReply 32
/** Wire-level description of DMXRemoveInput protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXRemoveInput */
CARD16 length B16;
CARD32 physicalId B32;
} xDMXRemoveInputReq;
#define sz_xDMXRemoveInputReq 8
/** Wire-level description of DMXRemoveInput protocol reply. */
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXRemoveInputReply;
#define sz_xDMXRemoveInputReply 32
#endif

View File

@@ -0,0 +1,53 @@
/*****************************************************************
Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
#ifndef _X11_EXTENSIONS_DPMS_H
#define _X11_EXTENSIONS_DPMS_H 1
#include <X11/X.h>
#include <X11/Xmd.h>
#include <X11/extensions/dpmsconst.h>
#ifndef DPMS_SERVER
_XFUNCPROTOBEGIN
extern Bool DPMSQueryExtension(Display *, int *, int *);
extern Status DPMSGetVersion(Display *, int *, int *);
extern Bool DPMSCapable(Display *);
extern Status DPMSSetTimeouts(Display *, CARD16, CARD16, CARD16);
extern Bool DPMSGetTimeouts(Display *, CARD16 *, CARD16 *, CARD16 *);
extern Status DPMSEnable(Display *);
extern Status DPMSDisable(Display *);
extern Status DPMSForceLevel(Display *, CARD16);
extern Status DPMSInfo(Display *, CARD16 *, BOOL *);
_XFUNCPROTOEND
#endif
#endif /* !_X11_EXTENSIONS_DPMS_H */

View File

@@ -0,0 +1,43 @@
/*****************************************************************
Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
#ifndef _DPMSCONST_H
#define _DPMSCONST_H 1
#define DPMSMajorVersion 1
#define DPMSMinorVersion 1
#define DPMSExtensionName "DPMS"
#define DPMSModeOn 0
#define DPMSModeStandby 1
#define DPMSModeSuspend 2
#define DPMSModeOff 3
#endif /* !_DPMSCONST_H */

View File

@@ -0,0 +1,175 @@
/*****************************************************************
Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
#ifndef _DPMSPROTO_H_
#define _DPMSPROTO_H_
#include <X11/extensions/dpmsconst.h>
#define X_DPMSGetVersion 0
#define X_DPMSCapable 1
#define X_DPMSGetTimeouts 2
#define X_DPMSSetTimeouts 3
#define X_DPMSEnable 4
#define X_DPMSDisable 5
#define X_DPMSForceLevel 6
#define X_DPMSInfo 7
#define DPMSNumberEvents 0
#define DPMSNumberErrors 0
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSGetVersion */
CARD16 length B16;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
} xDPMSGetVersionReq;
#define sz_xDPMSGetVersionReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDPMSGetVersionReply;
#define sz_xDPMSGetVersionReply 32
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSCapable */
CARD16 length B16;
} xDPMSCapableReq;
#define sz_xDPMSCapableReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
BOOL capable;
CARD8 pad1;
CARD16 pad2 B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xDPMSCapableReply;
#define sz_xDPMSCapableReply 32
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSGetTimeouts */
CARD16 length B16;
} xDPMSGetTimeoutsReq;
#define sz_xDPMSGetTimeoutsReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 standby B16;
CARD16 suspend B16;
CARD16 off B16;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDPMSGetTimeoutsReply;
#define sz_xDPMSGetTimeoutsReply 32
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSSetTimeouts */
CARD16 length B16;
CARD16 standby B16;
CARD16 suspend B16;
CARD16 off B16;
CARD16 pad0 B16;
} xDPMSSetTimeoutsReq;
#define sz_xDPMSSetTimeoutsReq 12
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSEnable */
CARD16 length B16;
} xDPMSEnableReq;
#define sz_xDPMSEnableReq 4
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSDisable */
CARD16 length B16;
} xDPMSDisableReq;
#define sz_xDPMSDisableReq 4
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSForceLevel */
CARD16 length B16;
CARD16 level B16; /* power level requested */
CARD16 pad0 B16;
} xDPMSForceLevelReq;
#define sz_xDPMSForceLevelReq 8
typedef struct {
CARD8 reqType; /* always DPMSCode */
CARD8 dpmsReqType; /* always X_DPMSInfo */
CARD16 length B16;
} xDPMSInfoReq;
#define sz_xDPMSInfoReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 power_level B16;
BOOL state;
CARD8 pad1;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xDPMSInfoReply;
#define sz_xDPMSInfoReply 32
#endif /* _DPMSPROTO_H_ */

View File

@@ -0,0 +1,357 @@
/*
* Copyright © 2008 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Soft-
* ware"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, provided that the above copyright
* notice(s) and this permission notice appear in all copies of the Soft-
* ware and that both the above copyright notice(s) and this permission
* notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
* ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
* RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
* THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
* QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
* MANCE OF THIS SOFTWARE.
*
* Except as contained in this notice, the name of a copyright holder shall
* not be used in advertising or otherwise to promote the sale, use or
* other dealings in this Software without prior written authorization of
* the copyright holder.
*
* Authors:
* Kristian Høgsberg (krh@redhat.com)
*/
#ifndef _DRI2_PROTO_H_
#define _DRI2_PROTO_H_
#define DRI2_NAME "DRI2"
#define DRI2_MAJOR 1
#define DRI2_MINOR 4
#define DRI2NumberErrors 0
#define DRI2NumberEvents 2
#define DRI2NumberRequests 14
#define X_DRI2QueryVersion 0
#define X_DRI2Connect 1
#define X_DRI2Authenticate 2
#define X_DRI2CreateDrawable 3
#define X_DRI2DestroyDrawable 4
#define X_DRI2GetBuffers 5
#define X_DRI2CopyRegion 6
#define X_DRI2GetBuffersWithFormat 7
#define X_DRI2SwapBuffers 8
#define X_DRI2GetMSC 9
#define X_DRI2WaitMSC 10
#define X_DRI2WaitSBC 11
#define X_DRI2SwapInterval 12
#define X_DRI2GetParam 13
/*
* Events
*/
#define DRI2_BufferSwapComplete 0
#define DRI2_InvalidateBuffers 1
typedef struct {
CARD32 attachment B32;
CARD32 name B32;
CARD32 pitch B32;
CARD32 cpp B32;
CARD32 flags B32;
} xDRI2Buffer;
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xDRI2QueryVersionReq;
#define sz_xDRI2QueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDRI2QueryVersionReply;
#define sz_xDRI2QueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 window B32;
CARD32 driverType B32;
} xDRI2ConnectReq;
#define sz_xDRI2ConnectReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 driverNameLength B32;
CARD32 deviceNameLength B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDRI2ConnectReply;
#define sz_xDRI2ConnectReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 window B32;
CARD32 magic B32;
} xDRI2AuthenticateReq;
#define sz_xDRI2AuthenticateReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 authenticated B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xDRI2AuthenticateReply;
#define sz_xDRI2AuthenticateReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
} xDRI2CreateDrawableReq;
#define sz_xDRI2CreateDrawableReq 8
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
} xDRI2DestroyDrawableReq;
#define sz_xDRI2DestroyDrawableReq 8
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 count B32;
} xDRI2GetBuffersReq;
#define sz_xDRI2GetBuffersReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 width B32;
CARD32 height B32;
CARD32 count B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDRI2GetBuffersReply;
#define sz_xDRI2GetBuffersReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 region B32;
CARD32 dest B32;
CARD32 src B32;
} xDRI2CopyRegionReq;
#define sz_xDRI2CopyRegionReq 20
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xDRI2CopyRegionReply;
#define sz_xDRI2CopyRegionReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 target_msc_hi B32;
CARD32 target_msc_lo B32;
CARD32 divisor_hi B32;
CARD32 divisor_lo B32;
CARD32 remainder_hi B32;
CARD32 remainder_lo B32;
} xDRI2SwapBuffersReq;
#define sz_xDRI2SwapBuffersReq 32
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 swap_hi B32;
CARD32 swap_lo B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDRI2SwapBuffersReply;
#define sz_xDRI2SwapBuffersReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
} xDRI2GetMSCReq;
#define sz_xDRI2GetMSCReq 8
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 target_msc_hi B32;
CARD32 target_msc_lo B32;
CARD32 divisor_hi B32;
CARD32 divisor_lo B32;
CARD32 remainder_hi B32;
CARD32 remainder_lo B32;
} xDRI2WaitMSCReq;
#define sz_xDRI2WaitMSCReq 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 target_sbc_hi B32;
CARD32 target_sbc_lo B32;
} xDRI2WaitSBCReq;
#define sz_xDRI2WaitSBCReq 16
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 ust_hi B32;
CARD32 ust_lo B32;
CARD32 msc_hi B32;
CARD32 msc_lo B32;
CARD32 sbc_hi B32;
CARD32 sbc_lo B32;
} xDRI2MSCReply;
#define sz_xDRI2MSCReply 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 interval B32;
} xDRI2SwapIntervalReq;
#define sz_xDRI2SwapIntervalReq 12
typedef struct {
CARD8 type;
CARD8 pad;
CARD16 sequenceNumber B16;
CARD16 event_type B16;
CARD16 pad2;
CARD32 drawable B32;
CARD32 ust_hi B32;
CARD32 ust_lo B32;
CARD32 msc_hi B32;
CARD32 msc_lo B32;
CARD32 sbc_hi B32;
CARD32 sbc_lo B32;
} xDRI2BufferSwapComplete;
#define sz_xDRI2BufferSwapComplete 32
typedef struct {
CARD8 type;
CARD8 pad;
CARD16 sequenceNumber B16;
CARD16 event_type B16;
CARD16 pad2;
CARD32 drawable B32;
CARD32 ust_hi B32;
CARD32 ust_lo B32;
CARD32 msc_hi B32;
CARD32 msc_lo B32;
CARD32 sbc B32;
} xDRI2BufferSwapComplete2;
#define sz_xDRI2BufferSwapComplete2 32
typedef struct {
CARD8 type;
CARD8 pad;
CARD16 sequenceNumber B16;
CARD32 drawable B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xDRI2InvalidateBuffers;
#define sz_xDRI2InvalidateBuffers 32
typedef struct {
CARD8 reqType;
CARD8 dri2ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 param B32;
} xDRI2GetParamReq;
#define sz_xDRI2GetParamReq 12
typedef struct {
BYTE type; /*X_Reply*/
BOOL is_param_recognized;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 value_hi B32;
CARD32 value_lo B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDRI2GetParamReply;
#define sz_xDRI2GetParamReply 32
#endif

View File

@@ -0,0 +1,61 @@
/*
* Copyright © 2008 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Soft-
* ware"), to deal in the Software without restriction, including without
* limitation the rights to use, copy, modify, merge, publish, distribute,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, provided that the above copyright
* notice(s) and this permission notice appear in all copies of the Soft-
* ware and that both the above copyright notice(s) and this permission
* notice appear in supporting documentation.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
* ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
* RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
* THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
* QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
* MANCE OF THIS SOFTWARE.
*
* Except as contained in this notice, the name of a copyright holder shall
* not be used in advertising or otherwise to promote the sale, use or
* other dealings in this Software without prior written authorization of
* the copyright holder.
*
* Authors:
* Kristian Høgsberg (krh@redhat.com)
*/
#ifndef _DRI2_TOKENS_H_
#define _DRI2_TOKENS_H_
#define DRI2BufferFrontLeft 0
#define DRI2BufferBackLeft 1
#define DRI2BufferFrontRight 2
#define DRI2BufferBackRight 3
#define DRI2BufferDepth 4
#define DRI2BufferStencil 5
#define DRI2BufferAccum 6
#define DRI2BufferFakeFrontLeft 7
#define DRI2BufferFakeFrontRight 8
#define DRI2BufferDepthStencil 9
#define DRI2BufferHiz 10
/* keep bits 16 and above for prime IDs */
#define DRI2DriverPrimeMask 7 /* 0 - 7 - allows for 6 devices*/
#define DRI2DriverPrimeShift 16
#define DRI2DriverPrimeId(x) (((x) >> DRI2DriverPrimeShift) & (DRI2DriverPrimeMask))
#define DRI2DriverDRI 0
#define DRI2DriverVDPAU 1
/* Event sub-types for the swap complete event */
#define DRI2_EXCHANGE_COMPLETE 0x1
#define DRI2_BLIT_COMPLETE 0x2
#define DRI2_FLIP_COMPLETE 0x3
#endif

View File

@@ -0,0 +1,249 @@
/*
* Copyright © 2013 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of the copyright holders not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no representations
* about the suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
#ifndef _DRI3_PROTO_H_
#define _DRI3_PROTO_H_
#define DRI3_NAME "DRI3"
#define DRI3_MAJOR 1
#define DRI3_MINOR 2
#define DRI3NumberErrors 0
#define DRI3NumberEvents 0
#define X_DRI3QueryVersion 0
#define X_DRI3Open 1
#define X_DRI3PixmapFromBuffer 2
#define X_DRI3BufferFromPixmap 3
#define X_DRI3FenceFromFD 4
#define X_DRI3FDFromFence 5
/* v1.2 */
#define xDRI3GetSupportedModifiers 6
#define xDRI3PixmapFromBuffers 7
#define xDRI3BuffersFromPixmap 8
#define DRI3NumberRequests 9
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xDRI3QueryVersionReq;
#define sz_xDRI3QueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xDRI3QueryVersionReply;
#define sz_xDRI3QueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 provider B32;
} xDRI3OpenReq;
#define sz_xDRI3OpenReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 nfd;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xDRI3OpenReply;
#define sz_xDRI3OpenReply 32
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 pixmap B32;
CARD32 drawable B32;
CARD32 size B32;
CARD16 width B16;
CARD16 height B16;
CARD16 stride B16;
CARD8 depth;
CARD8 bpp;
} xDRI3PixmapFromBufferReq;
#define sz_xDRI3PixmapFromBufferReq 24
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 pixmap B32;
} xDRI3BufferFromPixmapReq;
#define sz_xDRI3BufferFromPixmapReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 nfd; /* Number of file descriptors returned (1) */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 size B32;
CARD16 width B16;
CARD16 height B16;
CARD16 stride B16;
CARD8 depth;
CARD8 bpp;
CARD32 pad20 B32;
CARD32 pad24 B32;
CARD32 pad28 B32;
} xDRI3BufferFromPixmapReply;
#define sz_xDRI3BufferFromPixmapReply 32
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 fence B32;
BOOL initially_triggered;
CARD8 pad13;
CARD16 pad14 B16;
} xDRI3FenceFromFDReq;
#define sz_xDRI3FenceFromFDReq 16
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 drawable B32;
CARD32 fence B32;
} xDRI3FDFromFenceReq;
#define sz_xDRI3FDFromFenceReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 nfd; /* Number of file descriptors returned (1) */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad08 B32;
CARD32 pad12 B32;
CARD32 pad16 B32;
CARD32 pad20 B32;
CARD32 pad24 B32;
CARD32 pad28 B32;
} xDRI3FDFromFenceReply;
#define sz_xDRI3FDFromFenceReply 32
/* v1.2 */
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 window B32;
CARD8 depth;
CARD8 bpp;
CARD16 pad10 B16;
} xDRI3GetSupportedModifiersReq;
#define sz_xDRI3GetSupportedModifiersReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numWindowModifiers B32;
CARD32 numScreenModifiers B32;
CARD32 pad16 B32;
CARD32 pad20 B32;
CARD32 pad24 B32;
CARD32 pad28 B32;
} xDRI3GetSupportedModifiersReply;
#define sz_xDRI3GetSupportedModifiersReply 32
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 pixmap B32;
CARD32 window B32;
CARD8 num_buffers; /* Number of file descriptors passed */
CARD8 pad13;
CARD16 pad14 B16;
CARD16 width B16;
CARD16 height B16;
CARD32 stride0 B32;
CARD32 offset0 B32;
CARD32 stride1 B32;
CARD32 offset1 B32;
CARD32 stride2 B32;
CARD32 offset2 B32;
CARD32 stride3 B32;
CARD32 offset3 B32;
CARD8 depth;
CARD8 bpp;
CARD16 pad54 B16;
CARD64 modifier;
} xDRI3PixmapFromBuffersReq;
#define sz_xDRI3PixmapFromBuffersReq 64
typedef struct {
CARD8 reqType;
CARD8 dri3ReqType;
CARD16 length B16;
CARD32 pixmap B32;
} xDRI3BuffersFromPixmapReq;
#define sz_xDRI3BuffersFromPixmapReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 nfd; /* Number of file descriptors returned */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 width B16;
CARD16 height B16;
CARD32 pad12 B32;
CARD64 modifier;
CARD8 depth;
CARD8 bpp;
CARD16 pad26 B16;
CARD32 pad28 B32;
} xDRI3BuffersFromPixmapReply;
#define sz_xDRI3BuffersFromPixmapReply 32
#endif

View File

@@ -0,0 +1,190 @@
/*
*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*
* Author: Jim Fulton, MIT The Open Group
*
* Xlib Extension-Writing Utilities
*
* This package contains utilities for writing the client API for various
* protocol extensions. THESE INTERFACES ARE NOT PART OF THE X STANDARD AND
* ARE SUBJECT TO CHANGE!
*/
#ifndef _EXTUTIL_H_
#define _EXTUTIL_H_
#include <X11/extensions/Xext.h>
/*
* We need to keep a list of open displays since the Xlib display list isn't
* public. We also have to per-display info in a separate block since it isn't
* stored directly in the Display structure.
*/
typedef struct _XExtDisplayInfo {
struct _XExtDisplayInfo *next; /* keep a linked list */
Display *display; /* which display this is */
XExtCodes *codes; /* the extension protocol codes */
XPointer data; /* extra data for extension to use */
} XExtDisplayInfo;
typedef struct _XExtensionInfo {
XExtDisplayInfo *head; /* start of list */
XExtDisplayInfo *cur; /* most recently used */
int ndisplays; /* number of displays */
} XExtensionInfo;
typedef struct _XExtensionHooks {
int (*create_gc)(
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
);
int (*copy_gc)(
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
);
int (*flush_gc)(
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
);
int (*free_gc)(
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
);
int (*create_font)(
Display* /* display */,
XFontStruct* /* fs */,
XExtCodes* /* codes */
);
int (*free_font)(
Display* /* display */,
XFontStruct* /* fs */,
XExtCodes* /* codes */
);
int (*close_display)(
Display* /* display */,
XExtCodes* /* codes */
);
Bool (*wire_to_event)(
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
);
Status (*event_to_wire)(
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
);
int (*error)(
Display* /* display */,
xError* /* err */,
XExtCodes* /* codes */,
int* /* ret_code */
);
char *(*error_string)(
Display* /* display */,
int /* code */,
XExtCodes* /* codes */,
char* /* buffer */,
int /* nbytes */
);
} XExtensionHooks;
extern XExtensionInfo *XextCreateExtension(
void
);
extern void XextDestroyExtension(
XExtensionInfo* /* info */
);
extern XExtDisplayInfo *XextAddDisplay(
XExtensionInfo* /* extinfo */,
Display* /* dpy */,
_Xconst char* /* ext_name */,
XExtensionHooks* /* hooks */,
int /* nevents */,
XPointer /* data */
);
extern int XextRemoveDisplay(
XExtensionInfo* /* extinfo */,
Display* /* dpy */
);
extern XExtDisplayInfo *XextFindDisplay(
XExtensionInfo* /* extinfo */,
Display* /* dpy */
);
#define XextHasExtension(i) ((i) && ((i)->codes))
#define XextCheckExtension(dpy,i,name,val) \
if (!XextHasExtension(i)) { XMissingExtension (dpy, name); return val; }
#define XextSimpleCheckExtension(dpy,i,name) \
if (!XextHasExtension(i)) { XMissingExtension (dpy, name); return; }
/*
* helper macros to generate code that is common to all extensions; caller
* should prefix it with static if extension source is in one file; this
* could be a utility function, but have to stack 6 unused arguments for
* something that is called many, many times would be bad.
*/
#define XEXT_GENERATE_FIND_DISPLAY(proc,extinfo,extname,hooks,nev,data) \
XExtDisplayInfo *proc (Display *dpy) \
{ \
XExtDisplayInfo *dpyinfo; \
if (!extinfo) { if (!(extinfo = XextCreateExtension())) return NULL; } \
if (!(dpyinfo = XextFindDisplay (extinfo, dpy))) \
dpyinfo = XextAddDisplay (extinfo,dpy,extname,hooks,nev,data); \
return dpyinfo; \
}
#define XEXT_FIND_DISPLAY_PROTO(proc) \
XExtDisplayInfo *proc(Display *dpy)
#define XEXT_GENERATE_CLOSE_DISPLAY(proc,extinfo) \
int proc (Display *dpy, XExtCodes *codes) \
{ \
return XextRemoveDisplay (extinfo, dpy); \
}
#define XEXT_CLOSE_DISPLAY_PROTO(proc) \
int proc(Display *dpy, XExtCodes *codes)
#define XEXT_GENERATE_ERROR_STRING(proc,extname,nerr,errl) \
char *proc (Display *dpy, int code, XExtCodes *codes, char *buf, int n) \
{ \
code -= codes->first_error; \
if (code >= 0 && code < nerr) { \
char tmp[256]; \
snprintf (tmp, sizeof(tmp), "%s.%d", extname, code); \
XGetErrorDatabaseText (dpy, "XProtoError", tmp, errl[code], buf, n); \
return buf; \
} \
return (char *)0; \
}
#define XEXT_ERROR_STRING_PROTO(proc) \
char *proc(Display *dpy, int code, XExtCodes *codes, char *buf, int n)
#endif

View File

@@ -0,0 +1,60 @@
/*
* Copyright © 2007-2008 Peter Hutterer
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Authors: Peter Hutterer, University of South Australia, NICTA
*
*/
#ifndef _GE_H_
#define _GE_H_
#define GE_NAME "Generic Event Extension"
#define GE_MAJOR 1
#define GE_MINOR 0
/*********************************************************
*
* Requests
*
*/
#define X_GEQueryVersion 0
#define GENumberRequests (X_GEQueryVersion + 1)
/*********************************************************
*
* Events
*
*/
#define GENumberEvents 0
/*********************************************************
*
* Errors
*
*/
#define GENumberErrors 0
#endif /* _GE_H_ */

View File

@@ -0,0 +1,85 @@
/*
* Copyright © 2007-2008 Peter Hutterer
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Authors: Peter Hutterer, University of South Australia, NICTA
*
*/
#ifndef _GEPROTO_H_
#define _GEPROTO_H_
#include<X11/Xproto.h>
#include<X11/X.h>
#include<X11/extensions/ge.h>
/*********************************************************
*
* Protocol request constants
*
*/
#define X_GEGetExtensionVersion 1
/*********************************************************
*
* XGE protocol requests/replies
*
*/
/* generic request */
typedef struct {
CARD8 reqType;
CARD8 ReqType;
CARD16 length B16;
} xGEReq;
/* QueryVersion */
typedef struct {
CARD8 reqType; /* input extension major code */
CARD8 ReqType; /* always X_GEQueryVersion */
CARD16 length B16;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
} xGEQueryVersionReq;
#define sz_xGEQueryVersionReq 8
typedef struct {
CARD8 repType; /* X_Reply */
CARD8 RepType; /* always X_GEQueryVersion */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad00 B32;
CARD32 pad01 B32;
CARD32 pad02 B32;
CARD32 pad03 B32;
CARD32 pad04 B32;
} xGEQueryVersionReply;
#define sz_xGEQueryVersionReply 32
#endif /* _GEPROTO_H_ */

View File

@@ -0,0 +1,73 @@
/*
* Copyright 1992 Network Computing Devices
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of NCD. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NCD. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#ifndef _LBX_H_
#define _LBX_H_
#define LBXNAME "LBX"
#define LBX_MAJOR_VERSION 1
#define LBX_MINOR_VERSION 0
#define LbxNumberReqs 44
#define LbxEvent 0
#define LbxQuickMotionDeltaEvent 1
#define LbxNumberEvents 2
/* This is always the master client */
#define LbxMasterClientIndex 0
/* LbxEvent lbxType sub-fields */
#define LbxSwitchEvent 0
#define LbxCloseEvent 1
#define LbxDeltaEvent 2
#define LbxInvalidateTagEvent 3
#define LbxSendTagDataEvent 4
#define LbxListenToOne 5
#define LbxListenToAll 6
#define LbxMotionDeltaEvent 7
#define LbxReleaseCmapEvent 8
#define LbxFreeCellsEvent 9
/*
* Lbx image compression methods
*
* No compression is always assigned the value of 0.
*
* The rest of the compression method opcodes are assigned dynamically
* at option negotiation time.
*/
#define LbxImageCompressNone 0
#define BadLbxClient 0
#define LbxNumberErrors (BadLbxClient + 1)
/* tagged data types */
#define LbxTagTypeModmap 1
#define LbxTagTypeKeymap 2
#define LbxTagTypeProperty 3
#define LbxTagTypeFont 4
#define LbxTagTypeConnInfo 5
#endif

View File

@@ -0,0 +1,975 @@
/*
* Copyright 1992 Network Computing Devices
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of NCD. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. NCD. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#ifndef _LBXPROTO_H_
#define _LBXPROTO_H_
#include <X11/extensions/lbx.h>
/*
* NOTE: any changes or additions to the opcodes needs to be reflected
* in the lbxCacheable array in Xserver/lbx/lbxmain.c
*/
#define X_LbxQueryVersion 0
#define X_LbxStartProxy 1
#define X_LbxStopProxy 2
#define X_LbxSwitch 3
#define X_LbxNewClient 4
#define X_LbxCloseClient 5
#define X_LbxModifySequence 6
#define X_LbxAllowMotion 7
#define X_LbxIncrementPixel 8
#define X_LbxDelta 9
#define X_LbxGetModifierMapping 10
#define X_LbxInvalidateTag 12
#define X_LbxPolyPoint 13
#define X_LbxPolyLine 14
#define X_LbxPolySegment 15
#define X_LbxPolyRectangle 16
#define X_LbxPolyArc 17
#define X_LbxFillPoly 18
#define X_LbxPolyFillRectangle 19
#define X_LbxPolyFillArc 20
#define X_LbxGetKeyboardMapping 21
#define X_LbxQueryFont 22
#define X_LbxChangeProperty 23
#define X_LbxGetProperty 24
#define X_LbxTagData 25
#define X_LbxCopyArea 26
#define X_LbxCopyPlane 27
#define X_LbxPolyText8 28
#define X_LbxPolyText16 29
#define X_LbxImageText8 30
#define X_LbxImageText16 31
#define X_LbxQueryExtension 32
#define X_LbxPutImage 33
#define X_LbxGetImage 34
#define X_LbxBeginLargeRequest 35
#define X_LbxLargeRequestData 36
#define X_LbxEndLargeRequest 37
#define X_LbxInternAtoms 38
#define X_LbxGetWinAttrAndGeom 39
#define X_LbxGrabCmap 40
#define X_LbxReleaseCmap 41
#define X_LbxAllocColor 42
#define X_LbxSync 43
/*
* Redefine some basic types used by structures defined herein. This removes
* any possibility on 64-bit architectures of one entity viewing communicated
* data as 32-bit quantities and another entity viewing the same data as 64-bit
* quantities.
*/
#define XID CARD32
#define Atom CARD32
#define Colormap CARD32
#define Drawable CARD32
#define VisualID CARD32
#define Window CARD32
typedef struct {
BOOL success; /* TRUE */
BOOL changeType;
CARD16 majorVersion B16,
minorVersion B16;
CARD16 length B16; /* 1/4 additional bytes in setup info */
CARD32 tag B32;
} xLbxConnSetupPrefix;
typedef struct _LbxQueryVersion {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxQueryVersion */
CARD16 length B16;
} xLbxQueryVersionReq;
#define sz_xLbxQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of LBX protocol */
CARD16 minorVersion B16; /* minor version of LBX protocol */
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxQueryVersionReply;
#define sz_xLbxQueryVersionReply 32
typedef struct _LbxStartProxy {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxStartProxy */
CARD16 length B16;
} xLbxStartProxyReq;
#define sz_xLbxStartProxyReq 4
typedef struct _LbxStopProxy {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxStopProxy */
CARD16 length B16;
} xLbxStopProxyReq;
#define sz_xLbxStopProxyReq 4
typedef struct _LbxSwitch {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxSwitch */
CARD16 length B16;
CARD32 client B32; /* new client */
} xLbxSwitchReq;
#define sz_xLbxSwitchReq 8
typedef struct _LbxNewClient {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxNewClient */
CARD16 length B16;
CARD32 client B32; /* new client */
} xLbxNewClientReq;
#define sz_xLbxNewClientReq 8
typedef struct _LbxCloseClient {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxCloseClient */
CARD16 length B16;
CARD32 client B32; /* new client */
} xLbxCloseClientReq;
#define sz_xLbxCloseClientReq 8
typedef struct _LbxModifySequence {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxModifySequence */
CARD16 length B16;
CARD32 adjust B32;
} xLbxModifySequenceReq;
#define sz_xLbxModifySequenceReq 8
typedef struct _LbxAllowMotion {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxAllowMotion */
CARD16 length B16;
CARD32 num B32;
} xLbxAllowMotionReq;
#define sz_xLbxAllowMotionReq 8
typedef struct {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGrabCmap */
CARD16 length B16;
Colormap cmap B32;
} xLbxGrabCmapReq;
#define sz_xLbxGrabCmapReq 8
#define LBX_SMART_GRAB 0x80
#define LBX_AUTO_RELEASE 0x40
#define LBX_3CHANNELS 0x20
#define LBX_2BYTE_PIXELS 0x10
#define LBX_RGB_BITS_MASK 0x0f
#define LBX_LIST_END 0
#define LBX_PIXEL_PRIVATE 1
#define LBX_PIXEL_SHARED 2
#define LBX_PIXEL_RANGE_PRIVATE 3
#define LBX_PIXEL_RANGE_SHARED 4
#define LBX_NEXT_CHANNEL 5
typedef struct {
BYTE type; /* X_Reply */
CARD8 flags;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad0 B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B16;
} xLbxGrabCmapReply;
#define sz_xLbxGrabCmapReply 32
#define sz_xLbxGrabCmapReplyHdr 8
typedef struct {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxReleaseCmap */
CARD16 length B16;
Colormap cmap B32;
} xLbxReleaseCmapReq;
#define sz_xLbxReleaseCmapReq 8
typedef struct {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxAllocColor */
CARD16 length B16;
Colormap cmap B32;
CARD32 pixel B32;
CARD16 red B16, green B16, blue B16;
CARD16 pad B16;
} xLbxAllocColorReq;
#define sz_xLbxAllocColorReq 20
typedef struct _LbxIncrementPixel {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxIncrementPixel */
CARD16 length B16;
CARD32 cmap B32;
CARD32 pixel B32;
} xLbxIncrementPixelReq;
#define sz_xLbxIncrementPixelReq 12
typedef struct _LbxDelta {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxDelta */
CARD16 length B16;
CARD8 diffs; /* number of diffs */
CARD8 cindex; /* cache index */
/* list of diffs follows */
} xLbxDeltaReq;
#define sz_xLbxDeltaReq 6
typedef struct _LbxGetModifierMapping {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGetModifierMapping */
CARD16 length B16;
} xLbxGetModifierMappingReq;
#define sz_xLbxGetModifierMappingReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 keyspermod;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 tag B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxGetModifierMappingReply;
#define sz_xLbxGetModifierMappingReply 32
typedef struct _LbxGetKeyboardMapping {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */
CARD16 length B16;
KeyCode firstKeyCode;
CARD8 count;
CARD16 pad1 B16;
} xLbxGetKeyboardMappingReq;
#define sz_xLbxGetKeyboardMappingReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 keysperkeycode;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 tag B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxGetKeyboardMappingReply;
#define sz_xLbxGetKeyboardMappingReply 32
typedef struct _LbxQueryFont {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxQueryFont */
CARD16 length B16;
CARD32 fid B32;
} xLbxQueryFontReq;
#define sz_xLbxQueryFontReq 8
typedef struct _LbxInternAtoms {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxInternAtoms */
CARD16 length B16;
CARD16 num B16;
} xLbxInternAtomsReq;
#define sz_xLbxInternAtomsReq 6
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 atomsStart B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxInternAtomsReply;
#define sz_xLbxInternAtomsReply 32
#define sz_xLbxInternAtomsReplyHdr 8
typedef struct _LbxGetWinAttrAndGeom {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */
CARD16 length B16;
CARD32 id B32; /* window id */
} xLbxGetWinAttrAndGeomReq;
#define sz_xLbxGetWinAttrAndGeomReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 backingStore;
CARD16 sequenceNumber B16;
CARD32 length B32; /* NOT 0; this is an extra-large reply */
VisualID visualID B32;
#if defined(__cplusplus) || defined(c_plusplus)
CARD16 c_class B16;
#else
CARD16 class B16;
#endif
CARD8 bitGravity;
CARD8 winGravity;
CARD32 backingBitPlanes B32;
CARD32 backingPixel B32;
BOOL saveUnder;
BOOL mapInstalled;
CARD8 mapState;
BOOL override;
Colormap colormap B32;
CARD32 allEventMasks B32;
CARD32 yourEventMask B32;
CARD16 doNotPropagateMask B16;
CARD16 pad1 B16;
Window root B32;
INT16 x B16, y B16;
CARD16 width B16, height B16;
CARD16 borderWidth B16;
CARD8 depth;
CARD8 pad2;
} xLbxGetWinAttrAndGeomReply;
#define sz_xLbxGetWinAttrAndGeomReply 60
typedef struct {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxSync */
CARD16 length B16;
} xLbxSyncReq;
#define sz_xLbxSyncReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xLbxSyncReply;
#define sz_xLbxSyncReply 32
/* an LBX squished charinfo packs the data in a CARD32 as follows */
#define LBX_WIDTH_SHIFT 26
#define LBX_LEFT_SHIFT 20
#define LBX_RIGHT_SHIFT 13
#define LBX_ASCENT_SHIFT 7
#define LBX_DESCENT_SHIFT 0
#define LBX_WIDTH_BITS 6
#define LBX_LEFT_BITS 6
#define LBX_RIGHT_BITS 7
#define LBX_ASCENT_BITS 6
#define LBX_DESCENT_BITS 7
#define LBX_WIDTH_MASK 0xfc000000
#define LBX_LEFT_MASK 0x03f00000
#define LBX_RIGHT_MASK 0x000fe000
#define LBX_ASCENT_MASK 0x00001f80
#define LBX_DESCENT_MASK 0x0000007f
#define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1)))
typedef struct {
CARD32 metrics B32;
} xLbxCharInfo;
/* note that this is identical to xQueryFontReply except for missing
* first 2 words
*/
typedef struct {
xCharInfo minBounds;
/* XXX do we need to leave this gunk? */
#ifndef WORD64
CARD32 walign1 B32;
#endif
xCharInfo maxBounds;
#ifndef WORD64
CARD32 walign2 B32;
#endif
CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
CARD16 defaultChar B16;
CARD16 nFontProps B16; /* followed by this many xFontProp structures */
CARD8 drawDirection;
CARD8 minByte1, maxByte1;
BOOL allCharsExist;
INT16 fontAscent B16, fontDescent B16;
CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */
} xLbxFontInfo;
typedef struct {
BYTE type; /* X_Reply */
CARD8 compression;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 tag B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
/* X_QueryFont sticks much of the data in the base reply packet,
* but we hope that it won't be needed, (and it won't fit in 32 bytes
* with the tag anyways)
*
* if any additional data is needed, its sent in a xLbxFontInfo
*/
} xLbxQueryFontReply;
#define sz_xLbxQueryFontReply 32
typedef struct _LbxChangeProperty {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxChangeProperty */
CARD16 length B16;
Window window B32;
Atom property B32;
Atom type B32;
CARD8 format;
CARD8 mode;
BYTE pad[2];
CARD32 nUnits B32;
} xLbxChangePropertyReq;
#define sz_xLbxChangePropertyReq 24
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 tag B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxChangePropertyReply;
#define sz_xLbxChangePropertyReply 32
typedef struct _LbxGetProperty {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGetProperty */
CARD16 length B16;
Window window B32;
Atom property B32;
Atom type B32;
CARD8 delete;
BYTE pad[3];
CARD32 longOffset B32;
CARD32 longLength B32;
} xLbxGetPropertyReq;
#define sz_xLbxGetPropertyReq 28
typedef struct {
BYTE type; /* X_Reply */
CARD8 format;
CARD16 sequenceNumber B16;
CARD32 length B32;
Atom propertyType B32;
CARD32 bytesAfter B32;
CARD32 nItems B32;
CARD32 tag B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
} xLbxGetPropertyReply;
#define sz_xLbxGetPropertyReply 32
typedef struct _LbxTagData {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxTagData */
CARD16 length B16;
XID tag B32;
CARD32 real_length B32;
/* data */
} xLbxTagDataReq;
#define sz_xLbxTagDataReq 12
typedef struct _LbxInvalidateTag {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxInvalidateTag */
CARD16 length B16;
CARD32 tag B32;
} xLbxInvalidateTagReq;
#define sz_xLbxInvalidateTagReq 8
typedef struct _LbxPutImage {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxPutImage */
CARD16 length B16;
CARD8 compressionMethod;
CARD8 cacheEnts;
CARD8 bitPacked;
/* rest is variable */
} xLbxPutImageReq;
#define sz_xLbxPutImageReq 7
typedef struct {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxGetImage */
CARD16 length B16;
Drawable drawable B32;
INT16 x B16, y B16;
CARD16 width B16, height B16;
CARD32 planeMask B32;
CARD8 format;
CARD8 pad1;
CARD16 pad2 B16;
} xLbxGetImageReq;
#define sz_xLbxGetImageReq 24
typedef struct {
BYTE type; /* X_Reply */
CARD8 depth;
CARD16 sequenceNumber B16;
CARD32 lbxLength B32;
CARD32 xLength B32;
VisualID visual B32;
CARD8 compressionMethod;
CARD8 pad1;
CARD16 pad2 B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xLbxGetImageReply;
#define sz_xLbxGetImageReply 32
/* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
#define GFX_CACHE_SIZE 15
#define GFXdCacheEnt(e) ((e) & 0xf)
#define GFXgCacheEnt(e) (((e) >> 4) & 0xf)
#define GFXCacheEnts(d,g) (((d) & 0xf) | (((g) & 0xf) << 4))
#define GFXCacheNone 0xf
typedef struct _LbxPolyPoint {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD8 cacheEnts;
CARD8 padBytes;
} xLbxPolyPointReq;
#define sz_xLbxPolyPointReq 6
typedef xLbxPolyPointReq xLbxPolyLineReq;
typedef xLbxPolyPointReq xLbxPolySegmentReq;
typedef xLbxPolyPointReq xLbxPolyRectangleReq;
typedef xLbxPolyPointReq xLbxPolyArcReq;
typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
typedef xLbxPolyPointReq xLbxPolyFillArcReq;
#define sz_xLbxPolyLineReq sz_xLbxPolyPointReq
#define sz_xLbxPolySegmentReq sz_xLbxPolyPointReq
#define sz_xLbxPolyRectangleReq sz_xLbxPolyPointReq
#define sz_xLbxPolyArcReq sz_xLbxPolyPointReq
#define sz_xLbxPolyFillRectangleReq sz_xLbxPolyPointReq
#define sz_xLbxPolyFillArc sz_xLbxPolyPointReq
typedef struct _LbxFillPoly {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD8 cacheEnts;
BYTE shape;
CARD8 padBytes;
} xLbxFillPolyReq;
#define sz_xLbxFillPolyReq 7
typedef struct _LbxCopyArea {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD8 srcCache; /* source drawable */
CARD8 cacheEnts; /* dest drawable and gc */
/* followed by encoded src x, src y, dst x, dst y, width, height */
} xLbxCopyAreaReq;
#define sz_xLbxCopyAreaReq 6
typedef struct _LbxCopyPlane {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD32 bitPlane B32;
CARD8 srcCache; /* source drawable */
CARD8 cacheEnts; /* dest drawable and gc */
/* followed by encoded src x, src y, dst x, dst y, width, height */
} xLbxCopyPlaneReq;
#define sz_xLbxCopyPlaneReq 10
typedef struct _LbxPolyText {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD8 cacheEnts;
/* followed by encoded src x, src y coordinates and text elts */
} xLbxPolyTextReq;
#define sz_xLbxPolyTextReq 5
typedef xLbxPolyTextReq xLbxPolyText8Req;
typedef xLbxPolyTextReq xLbxPolyText16Req;
#define sz_xLbxPolyTextReq 5
#define sz_xLbxPolyText8Req 5
#define sz_xLbxPolyText16Req 5
typedef struct _LbxImageText {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType;
CARD16 length B16;
CARD8 cacheEnts;
CARD8 nChars;
/* followed by encoded src x, src y coordinates and string */
} xLbxImageTextReq;
typedef xLbxImageTextReq xLbxImageText8Req;
typedef xLbxImageTextReq xLbxImageText16Req;
#define sz_xLbxImageTextReq 6
#define sz_xLbxImageText8Req 6
#define sz_xLbxImageText16Req 6
typedef struct {
CARD8 offset;
CARD8 diff;
} xLbxDiffItem;
#define sz_xLbxDiffItem 2
typedef struct {
BYTE type; /* X_Reply */
CARD8 nOpts;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 optDataStart B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxStartReply;
#define sz_xLbxStartReply 32
#define sz_xLbxStartReplyHdr 8
typedef struct _LbxQueryExtension {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxQueryExtension */
CARD16 length B16;
CARD32 nbytes B32;
} xLbxQueryExtensionReq;
#define sz_xLbxQueryExtensionReq 8
typedef struct _LbxQueryExtensionReply {
BYTE type; /* X_Reply */
CARD8 numReqs;
CARD16 sequenceNumber B16;
CARD32 length B32;
BOOL present;
CARD8 major_opcode;
CARD8 first_event;
CARD8 first_error;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
/* reply & event generating requests */
} xLbxQueryExtensionReply;
#define sz_xLbxQueryExtensionReply 32
typedef struct _LbxBeginLargeRequest {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxBeginLargeRequest */
CARD16 length B16;
CARD32 largeReqLength B32;
} xLbxBeginLargeRequestReq;
#define sz_BeginLargeRequestReq 8
typedef struct _LbxLargeRequestData {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxLargeRequestData */
CARD16 length B16;
/* followed by LISTofCARD8 data */
} xLbxLargeRequestDataReq;
#define sz_LargeRequestDataReq 4
typedef struct _LbxEndLargeRequest {
CARD8 reqType; /* always LbxReqCode */
CARD8 lbxReqType; /* always X_LbxEndLargeRequest */
CARD16 length B16;
} xLbxEndLargeRequestReq;
#define sz_EndLargeRequestReq 4
typedef struct _LbxSwitchEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxSwitchEvent */
CARD16 pad B16;
CARD32 client B32;
} xLbxSwitchEvent;
#define sz_xLbxSwitchEvent 8
typedef struct _LbxCloseEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxCloseEvent */
CARD16 sequenceNumber B16;
CARD32 client B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xLbxCloseEvent;
#define sz_xLbxCloseEvent 32
typedef struct _LbxInvalidateTagEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxInvalidateTagEvent */
CARD16 sequenceNumber B16;
CARD32 tag B32;
CARD32 tagType B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xLbxInvalidateTagEvent;
#define sz_xLbxInvalidateTagEvent 32
typedef struct _LbxSendTagDataEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxSendTagDataEvent */
CARD16 sequenceNumber B16;
CARD32 tag B32;
CARD32 tagType B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xLbxSendTagDataEvent;
#define sz_xLbxSendTagDataEvent 32
typedef struct _LbxListenToOneEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxListenToOneEvent */
CARD16 sequenceNumber B16;
CARD32 client B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xLbxListenToOneEvent;
#define sz_xLbxListenToOneEvent 32
typedef struct _LbxListenToAllEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxListenToAllEvent */
CARD16 sequenceNumber B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xLbxListenToAllEvent;
#define sz_xLbxListenToOneEvent 32
typedef struct _LbxReleaseCmapEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxReleaseCmapEvent */
CARD16 sequenceNumber B16;
Colormap colormap B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xLbxReleaseCmapEvent;
#define sz_xLbxReleaseCmapEvent 32
typedef struct _LbxFreeCellsEvent {
BYTE type; /* always eventBase + LbxEvent */
BYTE lbxType; /* LbxFreeCellsEvent */
CARD16 sequenceNumber B16;
Colormap colormap B32;
CARD32 pixelStart B32;
CARD32 pixelEnd B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xLbxFreeCellsEvent;
#define sz_xLbxFreeCellsEvent 32
/*
* squished X event sizes. If these change, be sure to update lbxquish.c
* and unsquish.c appropriately
*
* lbxsz_* is the padded squished length
* lbxupsz_* is the unpadded squished length
*/
#define lbxsz_KeyButtonEvent 32
#define lbxupsz_KeyButtonEvent 31
#define lbxsz_EnterLeaveEvent 32
#define lbxupsz_EnterLeaveEvent 32
#define lbxsz_FocusEvent 12
#define lbxupsz_FocusEvent 9
#define lbxsz_KeymapEvent 32
#define lbxupsz_KeymapEvent 32
#define lbxsz_ExposeEvent 20
#define lbxupsz_ExposeEvent 18
#define lbxsz_GfxExposeEvent 24
#define lbxupsz_GfxExposeEvent 21
#define lbxsz_NoExposeEvent 12
#define lbxupsz_NoExposeEvent 11
#define lbxsz_VisibilityEvent 12
#define lbxupsz_VisibilityEvent 9
#define lbxsz_CreateNotifyEvent 24
#define lbxupsz_CreateNotifyEvent 23
#define lbxsz_DestroyNotifyEvent 12
#define lbxupsz_DestroyNotifyEvent 12
#define lbxsz_UnmapNotifyEvent 16
#define lbxupsz_UnmapNotifyEvent 13
#define lbxsz_MapNotifyEvent 16
#define lbxupsz_MapNotifyEvent 13
#define lbxsz_MapRequestEvent 12
#define lbxupsz_MapRequestEvent 12
#define lbxsz_ReparentEvent 24
#define lbxupsz_ReparentEvent 21
#define lbxsz_ConfigureNotifyEvent 28
#define lbxupsz_ConfigureNotifyEvent 27
#define lbxsz_ConfigureRequestEvent 28
#define lbxupsz_ConfigureRequestEvent 28
#define lbxsz_GravityEvent 16
#define lbxupsz_GravityEvent 16
#define lbxsz_ResizeRequestEvent 12
#define lbxupsz_ResizeRequestEvent 12
#define lbxsz_CirculateEvent 20
#define lbxupsz_CirculateEvent 17
#define lbxsz_PropertyEvent 20
#define lbxupsz_PropertyEvent 17
#define lbxsz_SelectionClearEvent 16
#define lbxupsz_SelectionClearEvent 16
#define lbxsz_SelectionRequestEvent 28
#define lbxupsz_SelectionRequestEvent 28
#define lbxsz_SelectionNotifyEvent 24
#define lbxupsz_SelectionNotifyEvent 24
#define lbxsz_ColormapEvent 16
#define lbxupsz_ColormapEvent 14
#define lbxsz_MappingNotifyEvent 8
#define lbxupsz_MappingNotifyEvent 7
#define lbxsz_ClientMessageEvent 32
#define lbxupsz_ClientMessageEvent 32
#define lbxsz_UnknownEvent 32
#ifdef DEBUG
#define DBG_SWITCH 0x00000001
#define DBG_CLOSE 0x00000002
#define DBG_IO 0x00000004
#define DBG_READ_REQ 0x00000008
#define DBG_LEN 0x00000010
#define DBG_BLOCK 0x00000020
#define DBG_CLIENT 0x00000040
#define DBG_DELTA 0x00000080
#endif
/*
* Cancel the previous redefinition of the basic types, thus restoring their
* X.h definitions.
*/
#undef XID
#undef Atom
#undef Colormap
#undef Drawable
#undef VisualID
#undef Window
#endif /* _LBXPROTO_H_ */

View File

@@ -0,0 +1,38 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM OR X PROJECT TEAM BLESSING */
#ifndef _MITMISCCONST_H_
#define _MITMISCCONST_H_
#define MITMiscNumberEvents 0
#define MITMiscNumberErrors 0
#define MITMISCNAME "MIT-SUNDRY-NONSTANDARD"
#endif

View File

@@ -0,0 +1,68 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM OR X PROJECT TEAM BLESSING */
#ifndef _MITMISCPROTO_H_
#define _MITMISCPROTO_H_
#include <X11/extensions/mitmiscconst.h>
#define X_MITSetBugMode 0
#define X_MITGetBugMode 1
typedef struct _SetBugMode {
CARD8 reqType; /* always MITReqCode */
CARD8 mitReqType; /* always X_MITSetBugMode */
CARD16 length B16;
BOOL onOff;
BYTE pad0;
CARD16 pad1;
} xMITSetBugModeReq;
#define sz_xMITSetBugModeReq 8
typedef struct _GetBugMode {
CARD8 reqType; /* always MITReqCode */
CARD8 mitReqType; /* always X_MITGetBugMode */
CARD16 length B16;
} xMITGetBugModeReq;
#define sz_xMITGetBugModeReq 4
typedef struct {
BYTE type; /* X_Reply */
BOOL onOff;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xMITGetBugModeReply;
#define sz_xMITGetBugModeReply 32
#endif /* _MITMISCPROTO_H_ */

View File

@@ -0,0 +1,207 @@
/*
*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _MULTIBUF_H_
#define _MULTIBUF_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/multibufconst.h>
#define MbufGetReq(name,req,info) GetReq (name, req); \
req->reqType = info->codes->major_opcode; \
req->mbufReqType = X_##name;
/*
* Extra definitions that will only be needed in the client
*/
typedef XID Multibuffer;
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
int send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Multibuffer buffer; /* buffer of event */
int state; /* see Clobbered constants above */
} XmbufClobberNotifyEvent;
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
int send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Multibuffer buffer; /* buffer of event */
} XmbufUpdateNotifyEvent;
/*
* per-window attributes that can be got
*/
typedef struct {
int displayed_index; /* which buffer is being displayed */
int update_action; /* Undefined, Background, Untouched, Copied */
int update_hint; /* Frequent, Intermittent, Static */
int window_mode; /* Mono, Stereo */
int nbuffers; /* Number of buffers */
Multibuffer *buffers; /* Buffers */
} XmbufWindowAttributes;
/*
* per-window attributes that can be set
*/
typedef struct {
int update_hint; /* Frequent, Intermittent, Static */
} XmbufSetWindowAttributes;
/*
* per-buffer attributes that can be got
*/
typedef struct {
Window window; /* which window this belongs to */
unsigned long event_mask; /* events that have been selected */
int buffer_index; /* which buffer is this */
int side; /* Mono, Left, Right */
} XmbufBufferAttributes;
/*
* per-buffer attributes that can be set
*/
typedef struct {
unsigned long event_mask; /* events that have been selected */
} XmbufSetBufferAttributes;
/*
* per-screen buffer info (there will be lists of them)
*/
typedef struct {
VisualID visualid; /* visual usuable at this depth */
int max_buffers; /* most buffers for this visual */
int depth; /* depth of buffers to be created */
} XmbufBufferInfo;
_XFUNCPROTOBEGIN
extern Bool XmbufQueryExtension(
Display* /* dpy */,
int* /* event_base_return */,
int* /* error_base_return */
);
extern Status XmbufGetVersion(
Display* /* dpy */,
int* /* major_version_return */,
int* /* minor_version_return */
);
extern int XmbufCreateBuffers(
Display* /* dpy */,
Window /* w */,
int /* count */,
int /* update_action */,
int /* update_hint */,
Multibuffer* /* buffers */
);
extern void XmbufDestroyBuffers(
Display* /* dpy */,
Window /* window */
);
extern void XmbufDisplayBuffers(
Display* /* dpy */,
int /* count */,
Multibuffer* /* buffers */,
int /* min_delay */,
int /* max_delay */
);
extern Status XmbufGetWindowAttributes(
Display* /* dpy */,
Window /* w */,
XmbufWindowAttributes* /* attr */
);
extern void XmbufChangeWindowAttributes(
Display* /* dpy */,
Window /* w */,
unsigned long /* valuemask */,
XmbufSetWindowAttributes* /* attr */
);
extern Status XmbufGetBufferAttributes(
Display* /* dpy */,
Multibuffer /* b */,
XmbufBufferAttributes* /* attr */
);
extern void XmbufChangeBufferAttributes(
Display* /* dpy */,
Multibuffer /* b */,
unsigned long /* valuemask */,
XmbufSetBufferAttributes* /* attr */
);
extern Status XmbufGetScreenInfo(
Display* /* dpy */,
Drawable /* d */,
int* /* nmono_return */,
XmbufBufferInfo** /* mono_info_return */,
int* /* nstereo_return */,
XmbufBufferInfo** /* stereo_info_return */
);
extern Window XmbufCreateStereoWindow(
Display* /* dpy */,
Window /* parent */,
int /* x */,
int /* y */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int /* border_width */,
int /* depth */,
unsigned int /* class */,
Visual* /* visual */,
unsigned long /* valuemask */,
XSetWindowAttributes* /* attr */,
Multibuffer* /* leftp */,
Multibuffer* /* rightp */
);
extern void XmbufClearBufferArea(
Display* /* dpy */,
Multibuffer /* buffer */,
int /* x */,
int /* y */,
unsigned int /* width */,
unsigned int /* height */,
Bool /* exposures */
);
_XFUNCPROTOEND
#endif /* _MULTIBUF_H_ */

View File

@@ -0,0 +1,83 @@
/*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _MULTIBUFCONST_H_
#define _MULTIBUFCONST_H_
#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
#define MULTIBUFFER_MAJOR_VERSION 1 /* current version numbers */
#define MULTIBUFFER_MINOR_VERSION 1 /* has ClearImageBufferArea */
/*
* update_action field
*/
#define MultibufferUpdateActionUndefined 0
#define MultibufferUpdateActionBackground 1
#define MultibufferUpdateActionUntouched 2
#define MultibufferUpdateActionCopied 3
/*
* update_hint field
*/
#define MultibufferUpdateHintFrequent 0
#define MultibufferUpdateHintIntermittent 1
#define MultibufferUpdateHintStatic 2
/*
* valuemask fields
*/
#define MultibufferWindowUpdateHint (1L << 0)
#define MultibufferBufferEventMask (1L << 0)
/*
* mono vs. stereo and left vs. right
*/
#define MultibufferModeMono 0
#define MultibufferModeStereo 1
#define MultibufferSideMono 0
#define MultibufferSideLeft 1
#define MultibufferSideRight 2
/*
* clobber state
*/
#define MultibufferUnclobbered 0
#define MultibufferPartiallyClobbered 1
#define MultibufferFullyClobbered 2
/*
* event stuff
*/
#define MultibufferClobberNotifyMask 0x02000000
#define MultibufferUpdateNotifyMask 0x04000000
#define MultibufferClobberNotify 0
#define MultibufferUpdateNotify 1
#define MultibufferNumberEvents (MultibufferUpdateNotify + 1)
#define MultibufferBadBuffer 0
#define MultibufferNumberErrors (MultibufferBadBuffer + 1)
#endif /* _MULTIBUFCONST_H_ */

View File

@@ -0,0 +1,295 @@
/*
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _MULTIBUFPROTO_H_
#define _MULTIBUFPROTO_H_
#include <X11/extensions/multibufconst.h>
/*
* Protocol requests constants and alignment values
*/
#define Window CARD32
#define Drawable CARD32
#define VisualID CARD32
#define Multibuffer CARD32
#define X_MbufGetBufferVersion 0
#define X_MbufCreateImageBuffers 1
#define X_MbufDestroyImageBuffers 2
#define X_MbufDisplayImageBuffers 3
#define X_MbufSetMBufferAttributes 4
#define X_MbufGetMBufferAttributes 5
#define X_MbufSetBufferAttributes 6
#define X_MbufGetBufferAttributes 7
#define X_MbufGetBufferInfo 8
#define X_MbufCreateStereoWindow 9
#define X_MbufClearImageBufferArea 10
typedef struct xMbufBufferInfo {
CARD32 visualID B32; /* associated visual */
CARD16 maxBuffers B16; /* maximum supported buffers */
CARD8 depth; /* depth of visual (redundant) */
CARD8 unused;
} xMbufBufferInfo;
#define sz_xMbufBufferInfo 8
typedef struct {
BYTE type;
BYTE unused;
CARD16 sequenceNumber B16;
CARD32 buffer B32; /* affected buffer */
BYTE state; /* current status */
CARD8 unused1;
CARD16 unused2 B16;
CARD32 unused3 B32;
CARD32 unused4 B32;
CARD32 unused5 B32;
CARD32 unused6 B32;
CARD32 unused7 B32;
} xMbufClobberNotifyEvent;
typedef struct {
BYTE type;
BYTE unused;
CARD16 sequenceNumber B16;
CARD32 buffer B32; /* affected buffer */
CARD32 timeStamp B32; /* update time */
CARD32 unused1 B32;
CARD32 unused2 B32;
CARD32 unused3 B32;
CARD32 unused4 B32;
CARD32 unused5 B32;
CARD32 unused6 B32;
} xMbufUpdateNotifyEvent;
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufGetBufferVersion */
CARD16 length B16;
} xMbufGetBufferVersionReq;
#define sz_xMbufGetBufferVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD8 majorVersion; /* major version of Multi-Buffering protocol */
CARD8 minorVersion; /* minor version of Multi-Buffering protocol */
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xMbufGetBufferVersionReply;
#define sz_xMbufGetBufferVersionReply 32
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufCreateImageBuffers */
CARD16 length B16;
CARD32 window B32; /* associated window */
CARD8 updateAction; /* action at update */
CARD8 updateHint; /* hint as to frequency of updates */
CARD16 unused;
} xMbufCreateImageBuffersReq; /* followed by buffer ids */
#define sz_xMbufCreateImageBuffersReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 numberBuffer B16; /* number successfully allocated */
CARD16 unused1 B16;
CARD32 unused2 B32;
CARD32 unused3 B32;
CARD32 unused4 B32;
CARD32 unused5 B32;
CARD32 unused6 B32;
} xMbufCreateImageBuffersReply;
#define sz_xMbufCreateImageBuffersReply 32
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufDestroyImageBuffers */
CARD16 length B16;
CARD32 window B32; /* associated window */
} xMbufDestroyImageBuffersReq;
#define sz_xMbufDestroyImageBuffersReq 8
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufDisplayImageBuffers */
CARD16 length B16;
CARD16 minDelay B16; /* minimum time between last update and now */
CARD16 maxDelay B16; /* maximum time between last update and now */
} xMbufDisplayImageBuffersReq; /* followed by list of buffers */
#define sz_xMbufDisplayImageBuffersReq 8
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufSetMBufferAttributes */
CARD16 length B16;
CARD32 window B32; /* associated window */
CARD32 valueMask B32; /* modified entries */
} xMbufSetMBufferAttributesReq; /* followed by values */
#define sz_xMbufSetMBufferAttributesReq 12
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufGetMBufferAttributes */
CARD16 length B16;
CARD32 window B32; /* associated window */
} xMbufGetMBufferAttributesReq;
#define sz_xMbufGetMBufferAttributesReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 displayedBuffer B16; /* currently visible buffer */
CARD8 updateAction;
CARD8 updateHint;
CARD8 windowMode;
CARD8 unused0;
CARD16 unused1 B16;
CARD32 unused2 B32;
CARD32 unused3 B32;
CARD32 unused4 B32;
CARD32 unused5 B32;
} xMbufGetMBufferAttributesReply;
#define sz_xMbufGetMBufferAttributesReply 32
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufSetBufferAttributes */
CARD16 length B16;
CARD32 buffer B32;
CARD32 valueMask B32;
} xMbufSetBufferAttributesReq; /* followed by values */
#define sz_xMbufSetBufferAttributesReq 12
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufGetBufferAttributes */
CARD16 length B16;
CARD32 buffer B32;
} xMbufGetBufferAttributesReq;
#define sz_xMbufGetBufferAttributesReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 window B32;
CARD32 eventMask B32;
CARD16 bufferIndex B16;
CARD8 side;
CARD8 unused0;
CARD32 unused1 B32;
CARD32 unused2 B32;
CARD32 unused3 B32;
} xMbufGetBufferAttributesReply;
#define sz_xMbufGetBufferAttributesReply 32
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufGetBufferInfo */
CARD16 length B16;
Drawable drawable B32;
} xMbufGetBufferInfoReq;
#define sz_xMbufGetBufferInfoReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 normalInfo B16;
CARD16 stereoInfo B16;
CARD32 unused1 B32;
CARD32 unused2 B32;
CARD32 unused3 B32;
CARD32 unused4 B32;
CARD32 unused5 B32;
} xMbufGetBufferInfoReply; /* followed by buffer infos */
#define sz_xMbufGetBufferInfoReply 32
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufCreateStereoWindow */
CARD16 length B16;
CARD8 unused0;
CARD8 unused1;
CARD8 unused2;
CARD8 depth;
Window wid B32;
Window parent B32;
Multibuffer left B32; /* associated buffers */
Multibuffer right B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
CARD16 borderWidth B16;
#if defined(__cplusplus) || defined(c_plusplus)
CARD16 c_class B16;
#else
CARD16 class B16;
#endif
VisualID visual B32;
CARD32 mask B32;
} xMbufCreateStereoWindowReq; /* followed by value list */
#define sz_xMbufCreateStereoWindowReq 44
typedef struct {
CARD8 reqType; /* always codes->major_opcode */
CARD8 mbufReqType; /* always X_MbufClearImageBufferArea */
CARD16 length B16;
Multibuffer buffer B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
CARD8 unused0;
CARD8 unused1;
CARD8 unused2;
BOOL exposures;
} xMbufClearImageBufferAreaReq;
#define sz_xMbufClearImageBufferAreaReq 20
#undef Window
#undef Drawable
#undef VisualID
#undef Multibuffer
#endif /* _MULTIBUFPROTO_H_ */

View File

@@ -0,0 +1,85 @@
/*****************************************************************
Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
/*
* PanoramiX definitions
*/
/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
#ifndef _panoramiXext_h
#define _panoramiXext_h
#include <X11/Xfuncproto.h>
typedef struct {
Window window; /* PanoramiX window - may not exist */
int screen;
int State; /* PanoramiXOff, PanoramiXOn */
int width; /* width of this screen */
int height; /* height of this screen */
int ScreenCount; /* real physical number of screens */
XID eventMask; /* selected events for this client */
} XPanoramiXInfo;
_XFUNCPROTOBEGIN
extern Bool XPanoramiXQueryExtension (
Display * /* dpy */,
int * /* event_base_return */,
int * /* error_base_return */
);
extern Status XPanoramiXQueryVersion(
Display * /* dpy */,
int * /* major_version_return */,
int * /* minor_version_return */
);
extern XPanoramiXInfo *XPanoramiXAllocInfo (
void
);
extern Status XPanoramiXGetState (
Display * /* dpy */,
Drawable /* drawable */,
XPanoramiXInfo * /* panoramiX_info */
);
extern Status XPanoramiXGetScreenCount (
Display * /* dpy */,
Drawable /* drawable */,
XPanoramiXInfo * /* panoramiX_info */
);
extern Status XPanoramiXGetScreenSize (
Display * /* dpy */,
Drawable /* drawable */,
int /* screen_num */,
XPanoramiXInfo * /* panoramiX_info */
);
_XFUNCPROTOEND
#endif /* _panoramiXext_h */

View File

@@ -0,0 +1,193 @@
/*****************************************************************
Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
#ifndef _PANORAMIXPROTO_H_
#define _PANORAMIXPROTO_H_
#define PANORAMIX_MAJOR_VERSION 1 /* current version number */
#define PANORAMIX_MINOR_VERSION 1
#define PANORAMIX_PROTOCOL_NAME "XINERAMA"
#define X_PanoramiXQueryVersion 0
#define X_PanoramiXGetState 1
#define X_PanoramiXGetScreenCount 2
#define X_PanoramiXGetScreenSize 3
#define X_XineramaIsActive 4
#define X_XineramaQueryScreens 5
typedef struct _PanoramiXQueryVersion {
CARD8 reqType; /* always PanoramiXReqCode */
CARD8 panoramiXReqType; /* always X_PanoramiXQueryVersion */
CARD16 length B16;
CARD8 clientMajor;
CARD8 clientMinor;
CARD16 unused B16;
} xPanoramiXQueryVersionReq;
#define sz_xPanoramiXQueryVersionReq 8
typedef struct {
CARD8 type; /* must be X_Reply */
CARD8 pad1; /* unused */
CARD16 sequenceNumber B16; /* last sequence number */
CARD32 length B32; /* 0 */
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad2 B32; /* unused */
CARD32 pad3 B32; /* unused */
CARD32 pad4 B32; /* unused */
CARD32 pad5 B32; /* unused */
CARD32 pad6 B32; /* unused */
} xPanoramiXQueryVersionReply;
#define sz_xPanoramiXQueryVersionReply 32
typedef struct _PanoramiXGetState {
CARD8 reqType; /* always PanoramiXReqCode */
CARD8 panoramiXReqType; /* always X_PanoramiXGetState */
CARD16 length B16;
CARD32 window B32;
} xPanoramiXGetStateReq;
#define sz_xPanoramiXGetStateReq 8
typedef struct {
BYTE type;
BYTE state;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 window B32;
CARD32 pad1 B32; /* unused */
CARD32 pad2 B32; /* unused */
CARD32 pad3 B32; /* unused */
CARD32 pad4 B32; /* unused */
CARD32 pad5 B32; /* unused */
} xPanoramiXGetStateReply;
#define sz_panoramiXGetStateReply 32
typedef struct _PanoramiXGetScreenCount {
CARD8 reqType; /* always PanoramiXReqCode */
CARD8 panoramiXReqType; /* always X_PanoramiXGetScreenCount */
CARD16 length B16;
CARD32 window B32;
} xPanoramiXGetScreenCountReq;
#define sz_xPanoramiXGetScreenCountReq 8
typedef struct {
BYTE type;
BYTE ScreenCount;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 window B32;
CARD32 pad1 B32; /* unused */
CARD32 pad2 B32; /* unused */
CARD32 pad3 B32; /* unused */
CARD32 pad4 B32; /* unused */
CARD32 pad5 B32; /* unused */
} xPanoramiXGetScreenCountReply;
#define sz_panoramiXGetScreenCountReply 32
typedef struct _PanoramiXGetScreenSize {
CARD8 reqType; /* always PanoramiXReqCode */
CARD8 panoramiXReqType; /* always X_PanoramiXGetState */
CARD16 length B16;
CARD32 window B32;
CARD32 screen B32;
} xPanoramiXGetScreenSizeReq;
#define sz_xPanoramiXGetScreenSizeReq 12
typedef struct {
BYTE type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 width B32;
CARD32 height B32;
CARD32 window B32;
CARD32 screen B32;
CARD32 pad2 B32; /* unused */
CARD32 pad3 B32; /* unused */
} xPanoramiXGetScreenSizeReply;
#define sz_panoramiXGetScreenSizeReply 32
/************ Alternate protocol ******************/
typedef struct {
CARD8 reqType;
CARD8 panoramiXReqType;
CARD16 length B16;
} xXineramaIsActiveReq;
#define sz_xXineramaIsActiveReq 4
typedef struct {
BYTE type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 state B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXineramaIsActiveReply;
#define sz_XineramaIsActiveReply 32
typedef struct {
CARD8 reqType;
CARD8 panoramiXReqType;
CARD16 length B16;
} xXineramaQueryScreensReq;
#define sz_xXineramaQueryScreensReq 4
typedef struct {
BYTE type;
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 number B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXineramaQueryScreensReply;
#define sz_XineramaQueryScreensReply 32
typedef struct {
INT16 x_org B16;
INT16 y_org B16;
CARD16 width B16;
CARD16 height B16;
} xXineramaScreenInfo;
#define sz_XineramaScreenInfo 8
#endif

View File

@@ -0,0 +1,248 @@
/*
* Copyright © 2013 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of the copyright holders not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no representations
* about the suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
#ifndef _PRESENT_PROTO_H_
#define _PRESENT_PROTO_H_
#include <X11/extensions/presenttokens.h>
#define Window CARD32
#define Pixmap CARD32
#define Region CARD32
#define XSyncFence CARD32
#define EventID CARD32
typedef struct {
Window window B32;
CARD32 serial B32;
} xPresentNotify;
#define sz_xPresentNotify 8
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xPresentQueryVersionReq;
#define sz_xPresentQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xPresentQueryVersionReply;
#define sz_xPresentQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
Window window B32;
Pixmap pixmap B32;
CARD32 serial B32;
Region valid B32;
Region update B32;
INT16 x_off B16;
INT16 y_off B16;
CARD32 target_crtc B32;
XSyncFence wait_fence B32;
XSyncFence idle_fence B32;
CARD32 options B32;
CARD32 pad1 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
/* followed by a LISTofPRESENTNOTIFY */
} xPresentPixmapReq;
#define sz_xPresentPixmapReq 72
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
Window window B32;
CARD32 serial B32;
CARD32 pad0 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
} xPresentNotifyMSCReq;
#define sz_xPresentNotifyMSCReq 40
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 eid B32;
CARD32 window B32;
CARD32 eventMask B32;
} xPresentSelectInputReq;
#define sz_xPresentSelectInputReq 16
typedef struct {
CARD8 reqType;
CARD8 presentReqType;
CARD16 length B16;
CARD32 target B32;
} xPresentQueryCapabilitiesReq;
#define sz_xPresentQueryCapabilitiesReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 capabilities B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
CARD32 pad7 B32;
} xPresentQueryCapabilitiesReply;
#define sz_xPresentQueryCapabilitiesReply 32
/*
* Events
*
* All Present events are X Generic Events
*/
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD16 pad2;
CARD32 eid B32;
CARD32 window B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
INT16 off_x B16;
INT16 off_y B16;
CARD16 pixmap_width B16;
CARD16 pixmap_height B16;
CARD32 pixmap_flags B32;
} xPresentConfigureNotify;
#define sz_xPresentConfigureNotify 40
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD8 kind;
CARD8 mode;
CARD32 eid B32;
Window window B32;
CARD32 serial B32;
CARD64 ust;
CARD64 msc;
} xPresentCompleteNotify;
#define sz_xPresentCompleteNotify 40
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD16 pad2 B16;
CARD32 eid B32;
Window window B32;
CARD32 serial B32;
Pixmap pixmap B32;
CARD32 idle_fence B32;
} xPresentIdleNotify;
#define sz_xPresentIdleNotify 32
#if PRESENT_FUTURE_VERSION
typedef struct {
CARD8 type;
CARD8 extension;
CARD16 sequenceNumber B16;
CARD32 length;
CARD16 evtype B16;
CARD8 update_window;
CARD8 pad1;
CARD32 eid B32;
Window event_window B32;
Window window B32;
Pixmap pixmap B32;
CARD32 serial B32;
/* 32-byte boundary */
Region valid_region B32;
Region update_region B32;
xRectangle valid_rect;
xRectangle update_rect;
INT16 x_off B16;
INT16 y_off B16;
CARD32 target_crtc B32;
XSyncFence wait_fence B32;
XSyncFence idle_fence B32;
CARD32 options B32;
CARD32 pad2 B32;
CARD64 target_msc;
CARD64 divisor;
CARD64 remainder;
} xPresentRedirectNotify;
#define sz_xPresentRedirectNotify 104
#endif
#undef Window
#undef Pixmap
#undef Region
#undef XSyncFence
#undef EventID
#endif

View File

@@ -0,0 +1,104 @@
/*
* Copyright © 2013 Keith Packard
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of the copyright holders not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no representations
* about the suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
#ifndef _PRESENT_TOKENS_H_
#define _PRESENT_TOKENS_H_
#define PRESENT_NAME "Present"
#define PRESENT_MAJOR 1
#define PRESENT_MINOR 2
#define PresentNumberErrors 0
#define PresentNumberEvents 0
/* Requests */
#define X_PresentQueryVersion 0
#define X_PresentPixmap 1
#define X_PresentNotifyMSC 2
#define X_PresentSelectInput 3
#define X_PresentQueryCapabilities 4
#define PresentNumberRequests 5
/* Present operation options */
#define PresentOptionNone 0
#define PresentOptionAsync (1 << 0)
#define PresentOptionCopy (1 << 1)
#define PresentOptionUST (1 << 2)
#define PresentOptionSuboptimal (1 << 3)
#define PresentAllOptions (PresentOptionAsync | \
PresentOptionCopy | \
PresentOptionUST | \
PresentOptionSuboptimal)
/* Present capabilities */
#define PresentCapabilityNone 0
#define PresentCapabilityAsync 1
#define PresentCapabilityFence 2
#define PresentCapabilityUST 4
#define PresentAllCapabilities (PresentCapabilityAsync | \
PresentCapabilityFence | \
PresentCapabilityUST)
/* Events */
#define PresentConfigureNotify 0
#define PresentCompleteNotify 1
#define PresentIdleNotify 2
#if PRESENT_FUTURE_VERSION
#define PresentRedirectNotify 3
#endif
/* Event Masks */
#define PresentConfigureNotifyMask 1
#define PresentCompleteNotifyMask 2
#define PresentIdleNotifyMask 4
#if PRESENT_FUTURE_VERSION
#define PresentRedirectNotifyMask 8
#endif
#if PRESENT_FUTURE_VERSION
#define PRESENT_REDIRECT_NOTIFY_MASK PresentRedirectNotifyMask
#else
#define PRESENT_REDIRECT_NOTIFY_MASK 0
#endif
#define PresentAllEvents (PresentConfigureNotifyMask | \
PresentCompleteNotifyMask | \
PresentIdleNotifyMask | \
PRESENT_REDIRECT_NOTIFY_MASK)
/* Complete Kinds */
#define PresentCompleteKindPixmap 0
#define PresentCompleteKindNotifyMSC 1
/* Complete Modes */
#define PresentCompleteModeCopy 0
#define PresentCompleteModeFlip 1
#define PresentCompleteModeSkip 2
#define PresentCompleteModeSuboptimalCopy 3
#endif

View File

@@ -0,0 +1,208 @@
/*
* Copyright © 2000 Compaq Computer Corporation
* Copyright © 2002 Hewlett Packard Company
* Copyright © 2006 Intel Corporation
* Copyright © 2008 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of the copyright holders not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no representations
* about the suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
* Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
* Keith Packard, Intel Corporation
*/
#ifndef _RANDR_H_
#define _RANDR_H_
typedef unsigned short Rotation;
typedef unsigned short SizeID;
typedef unsigned short SubpixelOrder;
typedef unsigned short Connection;
typedef unsigned short XRandrRotation;
typedef unsigned short XRandrSizeID;
typedef unsigned short XRandrSubpixelOrder;
typedef unsigned long XRandrModeFlags;
#define RANDR_NAME "RANDR"
#define RANDR_MAJOR 1
#define RANDR_MINOR 6
#define RRNumberErrors 5
#define RRNumberEvents 2
#define RRNumberRequests 47
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
#define X_RROldGetScreenInfo 1
#define X_RR1_0SetScreenConfig 2
/* V1.0 apps share the same set screen config request id */
#define X_RRSetScreenConfig 2
#define X_RROldScreenChangeSelectInput 3
/* 3 used to be ScreenChangeSelectInput; deprecated */
#define X_RRSelectInput 4
#define X_RRGetScreenInfo 5
/* V1.2 additions */
#define X_RRGetScreenSizeRange 6
#define X_RRSetScreenSize 7
#define X_RRGetScreenResources 8
#define X_RRGetOutputInfo 9
#define X_RRListOutputProperties 10
#define X_RRQueryOutputProperty 11
#define X_RRConfigureOutputProperty 12
#define X_RRChangeOutputProperty 13
#define X_RRDeleteOutputProperty 14
#define X_RRGetOutputProperty 15
#define X_RRCreateMode 16
#define X_RRDestroyMode 17
#define X_RRAddOutputMode 18
#define X_RRDeleteOutputMode 19
#define X_RRGetCrtcInfo 20
#define X_RRSetCrtcConfig 21
#define X_RRGetCrtcGammaSize 22
#define X_RRGetCrtcGamma 23
#define X_RRSetCrtcGamma 24
/* V1.3 additions */
#define X_RRGetScreenResourcesCurrent 25
#define X_RRSetCrtcTransform 26
#define X_RRGetCrtcTransform 27
#define X_RRGetPanning 28
#define X_RRSetPanning 29
#define X_RRSetOutputPrimary 30
#define X_RRGetOutputPrimary 31
#define RRTransformUnit (1L << 0)
#define RRTransformScaleUp (1L << 1)
#define RRTransformScaleDown (1L << 2)
#define RRTransformProjective (1L << 3)
/* v1.4 */
#define X_RRGetProviders 32
#define X_RRGetProviderInfo 33
#define X_RRSetProviderOffloadSink 34
#define X_RRSetProviderOutputSource 35
#define X_RRListProviderProperties 36
#define X_RRQueryProviderProperty 37
#define X_RRConfigureProviderProperty 38
#define X_RRChangeProviderProperty 39
#define X_RRDeleteProviderProperty 40
#define X_RRGetProviderProperty 41
/* v1.5 */
#define X_RRGetMonitors 42
#define X_RRSetMonitor 43
#define X_RRDeleteMonitor 44
/* v1.6 */
#define X_RRCreateLease 45
#define X_RRFreeLease 46
/* Event selection bits */
#define RRScreenChangeNotifyMask (1L << 0)
/* V1.2 additions */
#define RRCrtcChangeNotifyMask (1L << 1)
#define RROutputChangeNotifyMask (1L << 2)
#define RROutputPropertyNotifyMask (1L << 3)
/* V1.4 additions */
#define RRProviderChangeNotifyMask (1L << 4)
#define RRProviderPropertyNotifyMask (1L << 5)
#define RRResourceChangeNotifyMask (1L << 6)
/* V1.6 additions */
#define RRLeaseNotifyMask (1L << 7)
/* Event codes */
#define RRScreenChangeNotify 0
/* V1.2 additions */
#define RRNotify 1
/* RRNotify Subcodes */
#define RRNotify_CrtcChange 0
#define RRNotify_OutputChange 1
#define RRNotify_OutputProperty 2
#define RRNotify_ProviderChange 3
#define RRNotify_ProviderProperty 4
#define RRNotify_ResourceChange 5
/* V1.6 additions */
#define RRNotify_Lease 6
/* used in the rotation field; rotation and reflection in 0.1 proto. */
#define RR_Rotate_0 1
#define RR_Rotate_90 2
#define RR_Rotate_180 4
#define RR_Rotate_270 8
/* new in 1.0 protocol, to allow reflection of screen */
#define RR_Reflect_X 16
#define RR_Reflect_Y 32
#define RRSetConfigSuccess 0
#define RRSetConfigInvalidConfigTime 1
#define RRSetConfigInvalidTime 2
#define RRSetConfigFailed 3
/* new in 1.2 protocol */
#define RR_HSyncPositive 0x00000001
#define RR_HSyncNegative 0x00000002
#define RR_VSyncPositive 0x00000004
#define RR_VSyncNegative 0x00000008
#define RR_Interlace 0x00000010
#define RR_DoubleScan 0x00000020
#define RR_CSync 0x00000040
#define RR_CSyncPositive 0x00000080
#define RR_CSyncNegative 0x00000100
#define RR_HSkewPresent 0x00000200
#define RR_BCast 0x00000400
#define RR_PixelMultiplex 0x00000800
#define RR_DoubleClock 0x00001000
#define RR_ClockDivideBy2 0x00002000
#define RR_Connected 0
#define RR_Disconnected 1
#define RR_UnknownConnection 2
#define BadRROutput 0
#define BadRRCrtc 1
#define BadRRMode 2
#define BadRRProvider 3
#define BadRRLease 4
/* Conventional RandR output properties */
#define RR_PROPERTY_BACKLIGHT "Backlight"
#define RR_PROPERTY_RANDR_EDID "EDID"
#define RR_PROPERTY_SIGNAL_FORMAT "SignalFormat"
#define RR_PROPERTY_SIGNAL_PROPERTIES "SignalProperties"
#define RR_PROPERTY_CONNECTOR_TYPE "ConnectorType"
#define RR_PROPERTY_CONNECTOR_NUMBER "ConnectorNumber"
#define RR_PROPERTY_COMPATIBILITY_LIST "CompatibilityList"
#define RR_PROPERTY_CLONE_LIST "CloneList"
#define RR_PROPERTY_BORDER "Border"
#define RR_PROPERTY_BORDER_DIMENSIONS "BorderDimensions"
#define RR_PROPERTY_GUID "GUID"
#define RR_PROPERTY_RANDR_TILE "TILE"
#define RR_PROPERTY_NON_DESKTOP "non-desktop"
/* roles this device can carry out */
#define RR_Capability_None 0
#define RR_Capability_SourceOutput 1
#define RR_Capability_SinkOutput 2
#define RR_Capability_SourceOffload 4
#define RR_Capability_SinkOffload 8
#endif /* _RANDR_H_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
/***************************************************************************
* Copyright 1995 Network Computing Devices
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Network Computing Devices
* not be used in advertising or publicity pertaining to distribution
* of the software without specific, written prior permission.
*
* NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
**************************************************************************/
#ifndef _RECORDCONST_H_
#define _RECORDCONST_H_
#define RECORD_NAME "RECORD"
#define RECORD_MAJOR_VERSION 1
#define RECORD_MINOR_VERSION 13
#define RECORD_LOWEST_MAJOR_VERSION 1
#define RECORD_LOWEST_MINOR_VERSION 12
#define XRecordBadContext 0 /* Not a valid RC */
#define RecordNumErrors (XRecordBadContext + 1)
#define RecordNumEvents 0L
/*
* Constants for arguments of various requests
*/
#define XRecordFromServerTime 0x01
#define XRecordFromClientTime 0x02
#define XRecordFromClientSequence 0x04
#define XRecordCurrentClients 1
#define XRecordFutureClients 2
#define XRecordAllClients 3
#define XRecordFromServer 0
#define XRecordFromClient 1
#define XRecordClientStarted 2
#define XRecordClientDied 3
#define XRecordStartOfData 4
#define XRecordEndOfData 5
#endif /* _RECORD_H_ */

View File

@@ -0,0 +1,306 @@
/***************************************************************************
* Copyright 1995 Network Computing Devices
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Network Computing Devices
* not be used in advertising or publicity pertaining to distribution
* of the software without specific, written prior permission.
*
* NETWORK COMPUTING DEVICES DISCLAIMs ALL WARRANTIES WITH REGARD TO
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE
* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
**************************************************************************/
#ifndef _RECORDPROTO_H_
#define _RECORDPROTO_H_
#include <X11/extensions/recordconst.h>
/* only difference between 1.12 and 1.13 is byte order of device events,
which the library doesn't deal with. */
/*********************************************************
*
* Protocol request constants
*
*/
#define X_RecordQueryVersion 0 /* First request from client */
#define X_RecordCreateContext 1 /* Create client RC */
#define X_RecordRegisterClients 2 /* Add to client RC */
#define X_RecordUnregisterClients 3 /* Delete from client RC */
#define X_RecordGetContext 4 /* Query client RC */
#define X_RecordEnableContext 5 /* Enable interception and reporting */
#define X_RecordDisableContext 6 /* Disable interception and reporting */
#define X_RecordFreeContext 7 /* Free client RC */
#define sz_XRecordRange 32
#define sz_XRecordClientInfo 12
#define sz_XRecordState 16
#define sz_XRecordDatum 32
#define XRecordGlobaldef
#define XRecordGlobalref extern
#define RecordMaxEvent (128L-1L)
#define RecordMinDeviceEvent (2L)
#define RecordMaxDeviceEvent (6L)
#define RecordMaxError (256L-1L)
#define RecordMaxCoreRequest (128L-1L)
#define RecordMaxExtRequest (256L-1L)
#define RecordMinExtRequest (129L-1L)
#define RECORD_RC CARD32
#define RECORD_XIDBASE CARD32
#define RECORD_CLIENTSPEC CARD32
#define RECORD_ELEMENT_HEADER CARD8
typedef RECORD_CLIENTSPEC RecordClientSpec, *RecordClientSpecPtr;
typedef struct
{
CARD8 first;
CARD8 last;
} RECORD_RANGE8;
typedef struct
{
CARD16 first B16;
CARD16 last B16;
} RECORD_RANGE16;
typedef struct
{
RECORD_RANGE8 majorCode;
RECORD_RANGE16 minorCode;
} RECORD_EXTRANGE;
typedef struct
{
RECORD_RANGE8 coreRequests;
RECORD_RANGE8 coreReplies;
RECORD_EXTRANGE extRequests;
RECORD_EXTRANGE extReplies;
RECORD_RANGE8 deliveredEvents;
RECORD_RANGE8 deviceEvents;
RECORD_RANGE8 errors;
BOOL clientStarted;
BOOL clientDied;
} RECORDRANGE;
#define sz_RECORDRANGE 24
/* typedef RECORDRANGE xRecordRange, *xRecordRangePtr;
#define sz_xRecordRange 24 */
/* Cannot have structures within structures going over the wire */
typedef struct
{
CARD8 coreRequestsFirst;
CARD8 coreRequestsLast;
CARD8 coreRepliesFirst;
CARD8 coreRepliesLast;
CARD8 extRequestsMajorFirst;
CARD8 extRequestsMajorLast;
CARD16 extRequestsMinorFirst B16;
CARD16 extRequestsMinorLast B16;
CARD8 extRepliesMajorFirst;
CARD8 extRepliesMajorLast;
CARD16 extRepliesMinorFirst B16;
CARD16 extRepliesMinorLast B16;
CARD8 deliveredEventsFirst;
CARD8 deliveredEventsLast;
CARD8 deviceEventsFirst;
CARD8 deviceEventsLast;
CARD8 errorsFirst;
CARD8 errorsLast;
BOOL clientStarted;
BOOL clientDied;
} xRecordRange;
#define sz_xRecordRange 24
typedef struct
{
RECORD_CLIENTSPEC clientResource B32;
CARD32 nRanges B32;
/* LISTofRECORDRANGE */
} RECORD_CLIENT_INFO;
typedef RECORD_CLIENT_INFO xRecordClientInfo;
/*
* Initialize
*/
typedef struct {
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
} xRecordQueryVersionReq;
#define sz_xRecordQueryVersionReq 8
typedef struct
{
CARD8 type;
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xRecordQueryVersionReply;
#define sz_xRecordQueryVersionReply 32
/*
* Create RC
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
RECORD_ELEMENT_HEADER elementHeader;
CARD8 pad;
CARD16 pad0 B16;
CARD32 nClients B32;
CARD32 nRanges B32;
/* LISTofRECORD_CLIENTSPEC */
/* LISTofRECORDRANGE */
} xRecordCreateContextReq;
#define sz_xRecordCreateContextReq 20
/*
* Add to RC
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
RECORD_ELEMENT_HEADER elementHeader;
CARD8 pad;
CARD16 pad0 B16;
CARD32 nClients B32;
CARD32 nRanges B32;
/* LISTofRECORD_CLIENTSPEC */
/* LISTofRECORDRANGE */
} xRecordRegisterClientsReq;
#define sz_xRecordRegisterClientsReq 20
/*
* Delete from RC
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
CARD32 nClients B32;
/* LISTofRECORD_CLIENTSPEC */
} xRecordUnregisterClientsReq;
#define sz_xRecordUnregisterClientsReq 12
/*
* Query RC
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
} xRecordGetContextReq;
#define sz_xRecordGetContextReq 8
typedef struct
{
CARD8 type;
BOOL enabled;
CARD16 sequenceNumber B16;
CARD32 length B32;
RECORD_ELEMENT_HEADER elementHeader;
CARD8 pad;
CARD16 pad0 B16;
CARD32 nClients B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
/* LISTofCLIENT_INFO */ /* intercepted-clients */
} xRecordGetContextReply;
#define sz_xRecordGetContextReply 32
/*
* Enable data interception
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
} xRecordEnableContextReq;
#define sz_xRecordEnableContextReq 8
typedef struct
{
CARD8 type;
CARD8 category;
CARD16 sequenceNumber B16;
CARD32 length B32;
RECORD_ELEMENT_HEADER elementHeader;
BOOL clientSwapped;
CARD16 pad1 B16;
RECORD_XIDBASE idBase B32;
CARD32 serverTime B32;
CARD32 recordedSequenceNumber B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
/* BYTE data; */
} xRecordEnableContextReply;
#define sz_xRecordEnableContextReply 32
/*
* Disable data interception
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
} xRecordDisableContextReq;
#define sz_xRecordDisableContextReq 8
/*
* Free RC
*/
typedef struct
{
CARD8 reqType;
CARD8 recordReqType;
CARD16 length B16;
RECORD_RC context B32;
} xRecordFreeContextReq;
#define sz_xRecordFreeContextReq 8
#undef RECORD_RC
#undef RECORD_XIDBASE
#undef RECORD_ELEMENT_HEADER
#undef RECORD_CLIENTSPEC
#endif

View File

@@ -0,0 +1,4 @@
#warning "recordstr.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/record.h> for the library interfaces."
#warning "include <X11/extensions/recordproto.h> for the protocol defines."
#include <X11/extensions/recordproto.h>

View File

@@ -0,0 +1,210 @@
/*
* Copyright © 2000 SuSE, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of SuSE not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. SuSE makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Keith Packard, SuSE, Inc.
*/
#ifndef _RENDER_H_
#define _RENDER_H_
#include <X11/Xdefs.h>
typedef XID Glyph;
typedef XID GlyphSet;
typedef XID Picture;
typedef XID PictFormat;
#define RENDER_NAME "RENDER"
#define RENDER_MAJOR 0
#define RENDER_MINOR 11
#define X_RenderQueryVersion 0
#define X_RenderQueryPictFormats 1
#define X_RenderQueryPictIndexValues 2 /* 0.7 */
#define X_RenderQueryDithers 3
#define X_RenderCreatePicture 4
#define X_RenderChangePicture 5
#define X_RenderSetPictureClipRectangles 6
#define X_RenderFreePicture 7
#define X_RenderComposite 8
#define X_RenderScale 9
#define X_RenderTrapezoids 10
#define X_RenderTriangles 11
#define X_RenderTriStrip 12
#define X_RenderTriFan 13
#define X_RenderColorTrapezoids 14
#define X_RenderColorTriangles 15
/* #define X_RenderTransform 16 */
#define X_RenderCreateGlyphSet 17
#define X_RenderReferenceGlyphSet 18
#define X_RenderFreeGlyphSet 19
#define X_RenderAddGlyphs 20
#define X_RenderAddGlyphsFromPicture 21
#define X_RenderFreeGlyphs 22
#define X_RenderCompositeGlyphs8 23
#define X_RenderCompositeGlyphs16 24
#define X_RenderCompositeGlyphs32 25
#define X_RenderFillRectangles 26
/* 0.5 */
#define X_RenderCreateCursor 27
/* 0.6 */
#define X_RenderSetPictureTransform 28
#define X_RenderQueryFilters 29
#define X_RenderSetPictureFilter 30
/* 0.8 */
#define X_RenderCreateAnimCursor 31
/* 0.9 */
#define X_RenderAddTraps 32
/* 0.10 */
#define X_RenderCreateSolidFill 33
#define X_RenderCreateLinearGradient 34
#define X_RenderCreateRadialGradient 35
#define X_RenderCreateConicalGradient 36
#define RenderNumberRequests (X_RenderCreateConicalGradient+1)
#define BadPictFormat 0
#define BadPicture 1
#define BadPictOp 2
#define BadGlyphSet 3
#define BadGlyph 4
#define RenderNumberErrors (BadGlyph+1)
#define PictTypeIndexed 0
#define PictTypeDirect 1
#define PictOpMinimum 0
#define PictOpClear 0
#define PictOpSrc 1
#define PictOpDst 2
#define PictOpOver 3
#define PictOpOverReverse 4
#define PictOpIn 5
#define PictOpInReverse 6
#define PictOpOut 7
#define PictOpOutReverse 8
#define PictOpAtop 9
#define PictOpAtopReverse 10
#define PictOpXor 11
#define PictOpAdd 12
#define PictOpSaturate 13
#define PictOpMaximum 13
/*
* Operators only available in version 0.2
*/
#define PictOpDisjointMinimum 0x10
#define PictOpDisjointClear 0x10
#define PictOpDisjointSrc 0x11
#define PictOpDisjointDst 0x12
#define PictOpDisjointOver 0x13
#define PictOpDisjointOverReverse 0x14
#define PictOpDisjointIn 0x15
#define PictOpDisjointInReverse 0x16
#define PictOpDisjointOut 0x17
#define PictOpDisjointOutReverse 0x18
#define PictOpDisjointAtop 0x19
#define PictOpDisjointAtopReverse 0x1a
#define PictOpDisjointXor 0x1b
#define PictOpDisjointMaximum 0x1b
#define PictOpConjointMinimum 0x20
#define PictOpConjointClear 0x20
#define PictOpConjointSrc 0x21
#define PictOpConjointDst 0x22
#define PictOpConjointOver 0x23
#define PictOpConjointOverReverse 0x24
#define PictOpConjointIn 0x25
#define PictOpConjointInReverse 0x26
#define PictOpConjointOut 0x27
#define PictOpConjointOutReverse 0x28
#define PictOpConjointAtop 0x29
#define PictOpConjointAtopReverse 0x2a
#define PictOpConjointXor 0x2b
#define PictOpConjointMaximum 0x2b
/*
* Operators only available in version 0.11
*/
#define PictOpBlendMinimum 0x30
#define PictOpMultiply 0x30
#define PictOpScreen 0x31
#define PictOpOverlay 0x32
#define PictOpDarken 0x33
#define PictOpLighten 0x34
#define PictOpColorDodge 0x35
#define PictOpColorBurn 0x36
#define PictOpHardLight 0x37
#define PictOpSoftLight 0x38
#define PictOpDifference 0x39
#define PictOpExclusion 0x3a
#define PictOpHSLHue 0x3b
#define PictOpHSLSaturation 0x3c
#define PictOpHSLColor 0x3d
#define PictOpHSLLuminosity 0x3e
#define PictOpBlendMaximum 0x3e
#define PolyEdgeSharp 0
#define PolyEdgeSmooth 1
#define PolyModePrecise 0
#define PolyModeImprecise 1
#define CPRepeat (1 << 0)
#define CPAlphaMap (1 << 1)
#define CPAlphaXOrigin (1 << 2)
#define CPAlphaYOrigin (1 << 3)
#define CPClipXOrigin (1 << 4)
#define CPClipYOrigin (1 << 5)
#define CPClipMask (1 << 6)
#define CPGraphicsExposure (1 << 7)
#define CPSubwindowMode (1 << 8)
#define CPPolyEdge (1 << 9)
#define CPPolyMode (1 << 10)
#define CPDither (1 << 11)
#define CPComponentAlpha (1 << 12)
#define CPLastBit 12
/* Filters included in 0.6 */
#define FilterNearest "nearest"
#define FilterBilinear "bilinear"
/* Filters included in 0.10 */
#define FilterConvolution "convolution"
#define FilterFast "fast"
#define FilterGood "good"
#define FilterBest "best"
#define FilterAliasNone -1
/* Subpixel orders included in 0.6 */
#define SubPixelUnknown 0
#define SubPixelHorizontalRGB 1
#define SubPixelHorizontalBGR 2
#define SubPixelVerticalRGB 3
#define SubPixelVerticalBGR 4
#define SubPixelNone 5
/* Extended repeat attributes included in 0.10 */
#define RepeatNone 0
#define RepeatNormal 1
#define RepeatPad 2
#define RepeatReflect 3
#endif /* _RENDER_H_ */

View File

@@ -0,0 +1,661 @@
/*
* Copyright © 2000 SuSE, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of SuSE not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. SuSE makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Keith Packard, SuSE, Inc.
*/
#ifndef _XRENDERP_H_
#define _XRENDERP_H_
#include <X11/Xmd.h>
#include <X11/extensions/render.h>
#define Window CARD32
#define Drawable CARD32
#define Font CARD32
#define Pixmap CARD32
#define Cursor CARD32
#define Colormap CARD32
#define GContext CARD32
#define Atom CARD32
#define VisualID CARD32
#define Time CARD32
#define KeyCode CARD8
#define KeySym CARD32
#define Picture CARD32
#define PictFormat CARD32
#define Fixed INT32
#define Glyphset CARD32
/*
* data structures
*/
typedef struct {
CARD16 red B16;
CARD16 redMask B16;
CARD16 green B16;
CARD16 greenMask B16;
CARD16 blue B16;
CARD16 blueMask B16;
CARD16 alpha B16;
CARD16 alphaMask B16;
} xDirectFormat;
#define sz_xDirectFormat 16
typedef struct {
PictFormat id B32;
CARD8 type;
CARD8 depth;
CARD16 pad1 B16;
xDirectFormat direct;
Colormap colormap;
} xPictFormInfo;
#define sz_xPictFormInfo 28
typedef struct {
VisualID visual;
PictFormat format;
} xPictVisual;
#define sz_xPictVisual 8
typedef struct {
CARD8 depth;
CARD8 pad1;
CARD16 nPictVisuals B16;
CARD32 pad2 B32;
} xPictDepth;
#define sz_xPictDepth 8
typedef struct {
CARD32 nDepth B32;
PictFormat fallback B32;
} xPictScreen;
#define sz_xPictScreen 8
typedef struct {
CARD32 pixel B32;
CARD16 red B16;
CARD16 green B16;
CARD16 blue B16;
CARD16 alpha B16;
} xIndexValue;
#define sz_xIndexValue 12
typedef struct {
CARD16 red B16;
CARD16 green B16;
CARD16 blue B16;
CARD16 alpha B16;
} xRenderColor;
#define sz_xRenderColor 8
typedef struct {
Fixed x B32;
Fixed y B32;
} xPointFixed;
#define sz_xPointFixed 8
typedef struct {
xPointFixed p1;
xPointFixed p2;
} xLineFixed;
#define sz_xLineFixed 16
typedef struct {
xPointFixed p1, p2, p3;
} xTriangle;
#define sz_xTriangle 24
typedef struct {
Fixed top B32;
Fixed bottom B32;
xLineFixed left;
xLineFixed right;
} xTrapezoid;
#define sz_xTrapezoid 40
typedef struct {
CARD16 width B16;
CARD16 height B16;
INT16 x B16;
INT16 y B16;
INT16 xOff B16;
INT16 yOff B16;
} xGlyphInfo;
#define sz_xGlyphInfo 12
typedef struct {
CARD8 len;
CARD8 pad1;
CARD16 pad2;
INT16 deltax;
INT16 deltay;
} xGlyphElt;
#define sz_xGlyphElt 8
typedef struct {
Fixed l, r, y;
} xSpanFix;
#define sz_xSpanFix 12
typedef struct {
xSpanFix top, bot;
} xTrap;
#define sz_xTrap 24
/*
* requests and replies
*/
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xRenderQueryVersionReq;
#define sz_xRenderQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xRenderQueryVersionReply;
#define sz_xRenderQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
} xRenderQueryPictFormatsReq;
#define sz_xRenderQueryPictFormatsReq 4
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numFormats B32;
CARD32 numScreens B32;
CARD32 numDepths B32;
CARD32 numVisuals B32;
CARD32 numSubpixel B32; /* Version 0.6 */
CARD32 pad5 B32;
} xRenderQueryPictFormatsReply;
#define sz_xRenderQueryPictFormatsReply 32
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
PictFormat format B32;
} xRenderQueryPictIndexValuesReq;
#define sz_xRenderQueryPictIndexValuesReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numIndexValues;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xRenderQueryPictIndexValuesReply;
#define sz_xRenderQueryPictIndexValuesReply 32
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture pid B32;
Drawable drawable B32;
PictFormat format B32;
CARD32 mask B32;
} xRenderCreatePictureReq;
#define sz_xRenderCreatePictureReq 20
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture B32;
CARD32 mask B32;
} xRenderChangePictureReq;
#define sz_xRenderChangePictureReq 12
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture B32;
INT16 xOrigin B16;
INT16 yOrigin B16;
} xRenderSetPictureClipRectanglesReq;
#define sz_xRenderSetPictureClipRectanglesReq 12
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture B32;
} xRenderFreePictureReq;
#define sz_xRenderFreePictureReq 8
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture mask B32;
Picture dst B32;
INT16 xSrc B16;
INT16 ySrc B16;
INT16 xMask B16;
INT16 yMask B16;
INT16 xDst B16;
INT16 yDst B16;
CARD16 width B16;
CARD16 height B16;
} xRenderCompositeReq;
#define sz_xRenderCompositeReq 36
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture src B32;
Picture dst B32;
CARD32 colorScale B32;
CARD32 alphaScale B32;
INT16 xSrc B16;
INT16 ySrc B16;
INT16 xDst B16;
INT16 yDst B16;
CARD16 width B16;
CARD16 height B16;
} xRenderScaleReq;
#define sz_xRenderScaleReq 32
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture dst B32;
PictFormat maskFormat B32;
INT16 xSrc B16;
INT16 ySrc B16;
} xRenderTrapezoidsReq;
#define sz_xRenderTrapezoidsReq 24
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture dst B32;
PictFormat maskFormat B32;
INT16 xSrc B16;
INT16 ySrc B16;
} xRenderTrianglesReq;
#define sz_xRenderTrianglesReq 24
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture dst B32;
PictFormat maskFormat B32;
INT16 xSrc B16;
INT16 ySrc B16;
} xRenderTriStripReq;
#define sz_xRenderTriStripReq 24
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture dst B32;
PictFormat maskFormat B32;
INT16 xSrc B16;
INT16 ySrc B16;
} xRenderTriFanReq;
#define sz_xRenderTriFanReq 24
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Glyphset gsid B32;
PictFormat format B32;
} xRenderCreateGlyphSetReq;
#define sz_xRenderCreateGlyphSetReq 12
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Glyphset gsid B32;
Glyphset existing B32;
} xRenderReferenceGlyphSetReq;
#define sz_xRenderReferenceGlyphSetReq 24
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Glyphset glyphset B32;
} xRenderFreeGlyphSetReq;
#define sz_xRenderFreeGlyphSetReq 8
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Glyphset glyphset B32;
CARD32 nglyphs;
} xRenderAddGlyphsReq;
#define sz_xRenderAddGlyphsReq 12
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Glyphset glyphset B32;
} xRenderFreeGlyphsReq;
#define sz_xRenderFreeGlyphsReq 8
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture src B32;
Picture dst B32;
PictFormat maskFormat B32;
Glyphset glyphset B32;
INT16 xSrc B16;
INT16 ySrc B16;
} xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;
#define sz_xRenderCompositeGlyphs8Req 28
#define sz_xRenderCompositeGlyphs16Req 28
#define sz_xRenderCompositeGlyphs32Req 28
/* 0.1 and higher */
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
CARD8 op;
CARD8 pad1;
CARD16 pad2 B16;
Picture dst B32;
xRenderColor color;
} xRenderFillRectanglesReq;
#define sz_xRenderFillRectanglesReq 20
/* 0.5 and higher */
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Cursor cid B32;
Picture src B32;
CARD16 x B16;
CARD16 y B16;
} xRenderCreateCursorReq;
#define sz_xRenderCreateCursorReq 16
/* 0.6 and higher */
/*
* This can't use an array because 32-bit values may be in bitfields
*/
typedef struct {
Fixed matrix11 B32;
Fixed matrix12 B32;
Fixed matrix13 B32;
Fixed matrix21 B32;
Fixed matrix22 B32;
Fixed matrix23 B32;
Fixed matrix31 B32;
Fixed matrix32 B32;
Fixed matrix33 B32;
} xRenderTransform;
#define sz_xRenderTransform 36
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture B32;
xRenderTransform transform;
} xRenderSetPictureTransformReq;
#define sz_xRenderSetPictureTransformReq 44
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Drawable drawable B32;
} xRenderQueryFiltersReq;
#define sz_xRenderQueryFiltersReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 numAliases B32; /* LISTofCARD16 */
CARD32 numFilters B32; /* LISTofSTRING8 */
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xRenderQueryFiltersReply;
#define sz_xRenderQueryFiltersReply 32
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture B32;
CARD16 nbytes B16; /* number of bytes in name */
CARD16 pad B16;
} xRenderSetPictureFilterReq;
#define sz_xRenderSetPictureFilterReq 12
/* 0.8 and higher */
typedef struct {
Cursor cursor B32;
CARD32 delay B32;
} xAnimCursorElt;
#define sz_xAnimCursorElt 8
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Cursor cid B32;
} xRenderCreateAnimCursorReq;
#define sz_xRenderCreateAnimCursorReq 8
/* 0.9 and higher */
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture picture;
INT16 xOff B16;
INT16 yOff B16;
} xRenderAddTrapsReq;
#define sz_xRenderAddTrapsReq 12
/* 0.10 and higher */
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture pid B32;
xRenderColor color;
} xRenderCreateSolidFillReq;
#define sz_xRenderCreateSolidFillReq 16
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture pid B32;
xPointFixed p1;
xPointFixed p2;
CARD32 nStops;
} xRenderCreateLinearGradientReq;
#define sz_xRenderCreateLinearGradientReq 28
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture pid B32;
xPointFixed inner;
xPointFixed outer;
Fixed inner_radius;
Fixed outer_radius;
CARD32 nStops;
} xRenderCreateRadialGradientReq;
#define sz_xRenderCreateRadialGradientReq 36
typedef struct {
CARD8 reqType;
CARD8 renderReqType;
CARD16 length B16;
Picture pid B32;
xPointFixed center;
Fixed angle; /* in degrees */
CARD32 nStops;
} xRenderCreateConicalGradientReq;
#define sz_xRenderCreateConicalGradientReq 24
#undef Window
#undef Drawable
#undef Font
#undef Pixmap
#undef Cursor
#undef Colormap
#undef GContext
#undef Atom
#undef VisualID
#undef Time
#undef KeyCode
#undef KeySym
#undef Picture
#undef PictFormat
#undef Fixed
#undef Glyphset
#endif /* _XRENDERP_H_ */

View File

@@ -0,0 +1,52 @@
/*
Copyright (c) 1992 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
*
* Author: Keith Packard, MIT X Consortium
*/
#ifndef _SAVER_H_
#define _SAVER_H_
#define ScreenSaverName "MIT-SCREEN-SAVER"
#define ScreenSaverPropertyName "_MIT_SCREEN_SAVER_ID"
#define ScreenSaverNotifyMask 0x00000001
#define ScreenSaverCycleMask 0x00000002
#define ScreenSaverMajorVersion 1
#define ScreenSaverMinorVersion 1
#define ScreenSaverOff 0
#define ScreenSaverOn 1
#define ScreenSaverCycle 2
#define ScreenSaverDisabled 3
#define ScreenSaverBlanked 0
#define ScreenSaverInternal 1
#define ScreenSaverExternal 2
#define ScreenSaverNotify 0
#define ScreenSaverNumberEvents 1
#endif /* _SAVER_H_ */

View File

@@ -0,0 +1,175 @@
/*
Copyright (c) 1992 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
*
* Author: Keith Packard, MIT X Consortium
*/
#ifndef _SAVERPROTO_H_
#define _SAVERPROTO_H_
#include <X11/extensions/saver.h>
#define Window CARD32
#define Drawable CARD32
#define Font CARD32
#define Pixmap CARD32
#define Cursor CARD32
#define Colormap CARD32
#define GContext CARD32
#define Atom CARD32
#define VisualID CARD32
#define Time CARD32
#define KeyCode CARD8
#define KeySym CARD32
#define X_ScreenSaverQueryVersion 0
typedef struct _ScreenSaverQueryVersion {
CARD8 reqType; /* always ScreenSaverReqCode */
CARD8 saverReqType; /* always X_ScreenSaverQueryVersion */
CARD16 length B16;
CARD8 clientMajor;
CARD8 clientMinor;
CARD16 unused B16;
} xScreenSaverQueryVersionReq;
#define sz_xScreenSaverQueryVersionReq 8
typedef struct {
CARD8 type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of protocol */
CARD16 minorVersion B16; /* minor version of protocol */
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xScreenSaverQueryVersionReply;
#define sz_xScreenSaverQueryVersionReply 32
#define X_ScreenSaverQueryInfo 1
typedef struct _ScreenSaverQueryInfo {
CARD8 reqType; /* always ScreenSaverReqCode */
CARD8 saverReqType; /* always X_ScreenSaverQueryInfo */
CARD16 length B16;
Drawable drawable B32;
} xScreenSaverQueryInfoReq;
#define sz_xScreenSaverQueryInfoReq 8
typedef struct {
CARD8 type; /* X_Reply */
BYTE state; /* Off, On */
CARD16 sequenceNumber B16;
CARD32 length B32;
Window window B32;
CARD32 tilOrSince B32;
CARD32 idle B32;
CARD32 eventMask B32;
BYTE kind; /* Blanked, Internal, External */
CARD8 pad0;
CARD16 pad1 B16;
CARD32 pad2 B32;
} xScreenSaverQueryInfoReply;
#define sz_xScreenSaverQueryInfoReply 32
#define X_ScreenSaverSelectInput 2
typedef struct _ScreenSaverSelectInput {
CARD8 reqType; /* always ScreenSaverReqCode */
CARD8 saverReqType; /* always X_ScreenSaverSelectInput */
CARD16 length B16;
Drawable drawable B32;
CARD32 eventMask B32;
} xScreenSaverSelectInputReq;
#define sz_xScreenSaverSelectInputReq 12
#define X_ScreenSaverSetAttributes 3
typedef struct _ScreenSaverSetAttributes {
CARD8 reqType; /* always ScreenSaverReqCode */
CARD8 saverReqType; /* always X_ScreenSaverSetAttributes */
CARD16 length B16;
Drawable drawable B32;
INT16 x B16, y B16;
CARD16 width B16, height B16, borderWidth B16;
BYTE c_class;
CARD8 depth;
VisualID visualID B32;
CARD32 mask B32;
} xScreenSaverSetAttributesReq;
#define sz_xScreenSaverSetAttributesReq 28
#define X_ScreenSaverUnsetAttributes 4
typedef struct _ScreenSaverUnsetAttributes {
CARD8 reqType; /* always ScreenSaverReqCode */
CARD8 saverReqType; /* always X_ScreenSaverUnsetAttributes */
CARD16 length B16;
Drawable drawable B32;
} xScreenSaverUnsetAttributesReq;
#define sz_xScreenSaverUnsetAttributesReq 8
#define X_ScreenSaverSuspend 5
typedef struct _ScreenSaverSuspend {
CARD8 reqType;
CARD8 saverReqType;
CARD16 length B16;
Bool suspend B32;
} xScreenSaverSuspendReq;
#define sz_xScreenSaverSuspendReq 8
typedef struct _ScreenSaverNotify {
CARD8 type; /* always eventBase + ScreenSaverNotify */
BYTE state; /* off, on, cycle */
CARD16 sequenceNumber B16;
Time timestamp B32;
Window root B32;
Window window B32; /* screen saver window */
BYTE kind; /* blanked, internal, external */
BYTE forced;
CARD16 pad0 B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xScreenSaverNotifyEvent;
#define sz_xScreenSaverNotifyEvent 32
#undef Window
#undef Drawable
#undef Font
#undef Pixmap
#undef Cursor
#undef Colormap
#undef GContext
#undef Atom
#undef VisualID
#undef Time
#undef KeyCode
#undef KeySym
#endif /* _SAVERPROTO_H_ */

View File

@@ -0,0 +1,61 @@
/*
Copyright 1996, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _SECUR_H
#define _SECUR_H
#define SECURITY_EXTENSION_NAME "SECURITY"
#define SECURITY_MAJOR_VERSION 1
#define SECURITY_MINOR_VERSION 0
#define XSecurityNumberEvents 1
#define XSecurityNumberErrors 2
#define XSecurityBadAuthorization 0
#define XSecurityBadAuthorizationProtocol 1
/* trust levels */
#define XSecurityClientTrusted 0
#define XSecurityClientUntrusted 1
/* authorization attribute masks */
#define XSecurityTimeout (1<<0)
#define XSecurityTrustLevel (1<<1)
#define XSecurityGroup (1<<2)
#define XSecurityEventMask (1<<3)
#define XSecurityAllAuthorizationAttributes \
(XSecurityTimeout | XSecurityTrustLevel | XSecurityGroup | XSecurityEventMask)
/* event masks */
#define XSecurityAuthorizationRevokedMask (1<<0)
#define XSecurityAllEventMasks XSecurityAuthorizationRevokedMask
/* event offsets */
#define XSecurityAuthorizationRevoked 0
#define XSecurityAuthorizationName "XC-QUERY-SECURITY-1"
#define XSecurityAuthorizationNameLen 19
#endif /* _SECUR_H */

View File

@@ -0,0 +1,77 @@
/*
Copyright 1996, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _SECURITY_H
#define _SECURITY_H
#define _XAUTH_STRUCT_ONLY
#include <X11/Xauth.h>
#include <X11/extensions/secur.h>
_XFUNCPROTOBEGIN
Status XSecurityQueryExtension (
Display *dpy,
int *major_version_return,
int *minor_version_return);
Xauth *XSecurityAllocXauth(void);
void XSecurityFreeXauth(Xauth *auth);
/* type for returned auth ids */
typedef unsigned long XSecurityAuthorization;
typedef struct {
unsigned int timeout;
unsigned int trust_level;
XID group;
long event_mask;
} XSecurityAuthorizationAttributes;
Xauth *XSecurityGenerateAuthorization(
Display *dpy,
Xauth *auth_in,
unsigned long valuemask,
XSecurityAuthorizationAttributes *attributes,
XSecurityAuthorization *auth_id_return);
Status XSecurityRevokeAuthorization(
Display *dpy,
XSecurityAuthorization auth_id);
_XFUNCPROTOEND
typedef struct {
int type; /* event base + XSecurityAuthorizationRevoked */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
XSecurityAuthorization auth_id; /* revoked authorization id */
} XSecurityAuthorizationRevokedEvent;
#endif /* _SECURITY_H */

View File

@@ -0,0 +1,110 @@
/*
Copyright 1996, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
#ifndef _SECURPROTO_H
#define _SECURPROTO_H
#include <X11/extensions/secur.h>
#define X_SecurityQueryVersion 0
#define X_SecurityGenerateAuthorization 1
#define X_SecurityRevokeAuthorization 2
typedef struct {
CARD8 reqType;
CARD8 securityReqType;
CARD16 length B16;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
} xSecurityQueryVersionReq;
#define sz_xSecurityQueryVersionReq 8
typedef struct {
CARD8 type;
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xSecurityQueryVersionReply;
#define sz_xSecurityQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 securityReqType;
CARD16 length B16;
CARD16 nbytesAuthProto B16;
CARD16 nbytesAuthData B16;
CARD32 valueMask B32;
/* auth protocol name padded to 4 bytes */
/* auth protocol data padded to 4 bytes */
/* list of CARD32 values, if any */
} xSecurityGenerateAuthorizationReq;
#define sz_xSecurityGenerateAuthorizationReq 12
typedef struct {
CARD8 type;
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 authId B32;
CARD16 dataLength B16;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xSecurityGenerateAuthorizationReply;
#define sz_xSecurityGenerateAuthorizationReply 32
typedef struct {
CARD8 reqType;
CARD8 securityReqType;
CARD16 length B16;
CARD32 authId B32;
} xSecurityRevokeAuthorizationReq;
#define sz_xSecurityRevokeAuthorizationReq 8
typedef struct _xSecurityAuthorizationRevokedEvent {
BYTE type;
BYTE detail;
CARD16 sequenceNumber B16;
CARD32 authId B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xSecurityAuthorizationRevokedEvent;
#define sz_xSecurityAuthorizationRevokedEvent 32
#endif /* _SECURPROTO_H */

View File

@@ -0,0 +1,152 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
#ifndef _SHAPE_H_
#define _SHAPE_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/shapeconst.h>
#ifndef _SHAPE_SERVER_
#include <X11/Xutil.h>
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window of event */
int kind; /* ShapeBounding or ShapeClip */
int x, y; /* extents of new region */
unsigned width, height;
Time time; /* server timestamp when region changed */
Bool shaped; /* true if the region exists */
} XShapeEvent;
_XFUNCPROTOBEGIN
extern Bool XShapeQueryExtension (
Display* /* display */,
int* /* event_base */,
int* /* error_base */
);
extern Status XShapeQueryVersion (
Display* /* display */,
int* /* major_version */,
int* /* minor_version */
);
extern void XShapeCombineRegion (
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Region /* region */,
int /* op */
);
extern void XShapeCombineRectangles (
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
XRectangle* /* rectangles */,
int /* n_rects */,
int /* op */,
int /* ordering */
);
extern void XShapeCombineMask (
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Pixmap /* src */,
int /* op */
);
extern void XShapeCombineShape (
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */,
Window /* src */,
int /* src_kind */,
int /* op */
);
extern void XShapeOffsetShape (
Display* /* display */,
Window /* dest */,
int /* dest_kind */,
int /* x_off */,
int /* y_off */
);
extern Status XShapeQueryExtents (
Display* /* display */,
Window /* window */,
Bool* /* bounding_shaped */,
int* /* x_bounding */,
int* /* y_bounding */,
unsigned int* /* w_bounding */,
unsigned int* /* h_bounding */,
Bool* /* clip_shaped */,
int* /* x_clip */,
int* /* y_clip */,
unsigned int* /* w_clip */,
unsigned int* /* h_clip */
);
extern void XShapeSelectInput (
Display* /* display */,
Window /* window */,
unsigned long /* mask */
);
extern unsigned long XShapeInputSelected (
Display* /* display */,
Window /* window */
);
extern XRectangle *XShapeGetRectangles (
Display* /* display */,
Window /* window */,
int /* kind */,
int* /* count */,
int* /* ordering */
);
_XFUNCPROTOEND
#endif /* !_SHAPE_SERVER_ */
#endif /* _SHAPE_H_ */

View File

@@ -0,0 +1,55 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
#ifndef _SHAPECONST_H_
#define _SHAPECONST_H_
/*
* Protocol requests constants and alignment values
* These would really be in SHAPE's X.h and Xproto.h equivalents
*/
#define SHAPENAME "SHAPE"
#define SHAPE_MAJOR_VERSION 1 /* current version numbers */
#define SHAPE_MINOR_VERSION 1
#define ShapeSet 0
#define ShapeUnion 1
#define ShapeIntersect 2
#define ShapeSubtract 3
#define ShapeInvert 4
#define ShapeBounding 0
#define ShapeClip 1
#define ShapeInput 2
#define ShapeNotifyMask (1L << 0)
#define ShapeNotify 0
#define ShapeNumberEvents (ShapeNotify + 1)
#endif /* _SHAPECONST_H_ */

View File

@@ -0,0 +1,237 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
#ifndef _SHAPEPROTO_H_
#define _SHAPEPROTO_H_
#include <X11/extensions/shapeconst.h>
/*
* Protocol requests constants and alignment values
* These would really be in SHAPE's X.h and Xproto.h equivalents
*/
#define Window CARD32
#define Time CARD32
#define X_ShapeQueryVersion 0
#define X_ShapeRectangles 1
#define X_ShapeMask 2
#define X_ShapeCombine 3
#define X_ShapeOffset 4
#define X_ShapeQueryExtents 5
#define X_ShapeSelectInput 6
#define X_ShapeInputSelected 7
#define X_ShapeGetRectangles 8
typedef struct _ShapeQueryVersion {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeQueryVersion */
CARD16 length B16;
} xShapeQueryVersionReq;
#define sz_xShapeQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of SHAPE protocol */
CARD16 minorVersion B16; /* minor version of SHAPE protocol */
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xShapeQueryVersionReply;
#define sz_xShapeQueryVersionReply 32
typedef struct _ShapeRectangles {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeRectangles */
CARD16 length B16;
CARD8 op; /* Set, ... */
CARD8 destKind; /* ShapeBounding or ShapeClip */
CARD8 ordering; /* UnSorted, YSorted, YXSorted, YXBanded */
CARD8 pad0; /* not used */
Window dest B32;
INT16 xOff B16;
INT16 yOff B16;
} xShapeRectanglesReq; /* followed by xRects */
#define sz_xShapeRectanglesReq 16
typedef struct _ShapeMask {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeMask */
CARD16 length B16;
CARD8 op; /* Set, ... */
CARD8 destKind; /* ShapeBounding or ShapeClip */
CARD16 junk B16; /* not used */
Window dest B32;
INT16 xOff B16;
INT16 yOff B16;
CARD32 src B32; /* 1 bit pixmap */
} xShapeMaskReq;
#define sz_xShapeMaskReq 20
typedef struct _ShapeCombine {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeCombine */
CARD16 length B16;
CARD8 op; /* Set, ... */
CARD8 destKind; /* ShapeBounding or ShapeClip */
CARD8 srcKind; /* ShapeBounding or ShapeClip */
CARD8 junk; /* not used */
Window dest B32;
INT16 xOff B16;
INT16 yOff B16;
Window src B32;
} xShapeCombineReq;
#define sz_xShapeCombineReq 20
typedef struct _ShapeOffset {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeOffset */
CARD16 length B16;
CARD8 destKind; /* ShapeBounding or ShapeClip */
CARD8 junk1; /* not used */
CARD16 junk2 B16; /* not used */
Window dest B32;
INT16 xOff B16;
INT16 yOff B16;
} xShapeOffsetReq;
#define sz_xShapeOffsetReq 16
typedef struct _ShapeQueryExtents {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeQueryExtents */
CARD16 length B16;
Window window B32;
} xShapeQueryExtentsReq;
#define sz_xShapeQueryExtentsReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused; /* not used */
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
CARD8 boundingShaped; /* window has bounding shape */
CARD8 clipShaped; /* window has clip shape */
CARD16 unused1 B16;
INT16 xBoundingShape B16; /* extents of bounding shape */
INT16 yBoundingShape B16;
CARD16 widthBoundingShape B16;
CARD16 heightBoundingShape B16;
INT16 xClipShape B16; /* extents of clip shape */
INT16 yClipShape B16;
CARD16 widthClipShape B16;
CARD16 heightClipShape B16;
CARD32 pad1 B32;
} xShapeQueryExtentsReply;
#define sz_xShapeQueryExtentsReply 32
typedef struct _ShapeSelectInput {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeSelectInput */
CARD16 length B16;
Window window B32;
BYTE enable; /* xTrue -> send events */
BYTE pad1;
CARD16 pad2 B16;
} xShapeSelectInputReq;
#define sz_xShapeSelectInputReq 12
typedef struct _ShapeNotify {
BYTE type; /* always eventBase + ShapeNotify */
BYTE kind; /* either ShapeBounding or ShapeClip */
CARD16 sequenceNumber B16;
Window window B32;
INT16 x B16;
INT16 y B16; /* extents of new shape */
CARD16 width B16;
CARD16 height B16;
Time time B32; /* time of change */
BYTE shaped; /* set when a shape actual exists */
BYTE pad0;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xShapeNotifyEvent;
#define sz_xShapeNotifyEvent 32
typedef struct _ShapeInputSelected {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeInputSelected */
CARD16 length B16;
Window window B32;
} xShapeInputSelectedReq;
#define sz_xShapeInputSelectedReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 enabled; /* current status */
CARD16 sequenceNumber B16;
CARD32 length B32; /* 0 */
CARD32 pad1 B32; /* unused */
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xShapeInputSelectedReply;
#define sz_xShapeInputSelectedReply 32
typedef struct _ShapeGetRectangles {
CARD8 reqType; /* always ShapeReqCode */
CARD8 shapeReqType; /* always X_ShapeGetRectangles */
CARD16 length B16;
Window window B32;
CARD8 kind; /* ShapeBounding or ShapeClip */
CARD8 junk1;
CARD16 junk2 B16;
} xShapeGetRectanglesReq;
#define sz_xShapeGetRectanglesReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 ordering; /* UnSorted, YSorted, YXSorted, YXBanded */
CARD16 sequenceNumber B16;
CARD32 length B32; /* not zero */
CARD32 nrects B32; /* number of rectangles */
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xShapeGetRectanglesReply; /* followed by xRectangles */
#define sz_xShapeGetRectanglesReply 32
#undef Window
#undef Time
#endif /* _SHAPEPROTO_H_ */

View File

@@ -0,0 +1,8 @@
#ifndef _SHAPESTR_H_
#define _SHAPESTR_H_
#warning "shapestr.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/shapeproto.h> for the protocol defines."
#include <X11/extensions/shapeproto.h>
#endif /* _SHAPESTR_H_ */

View File

@@ -0,0 +1,44 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
#ifndef _SHM_H_
#define _SHM_H_
#define SHMNAME "MIT-SHM"
#define SHM_MAJOR_VERSION 1 /* current version numbers */
#define SHM_MINOR_VERSION 2
#define ShmCompletion 0
#define ShmNumberEvents (ShmCompletion + 1)
#define BadShmSeg 0
#define ShmNumberErrors (BadShmSeg + 1)
#endif /* _SHM_H_ */

View File

@@ -0,0 +1,229 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
#ifndef _SHMPROTO_H_
#define _SHMPROTO_H_
#include <X11/extensions/shm.h>
#define ShmSeg CARD32
#define Drawable CARD32
#define VisualID CARD32
#define GContext CARD32
#define Pixmap CARD32
#define X_ShmQueryVersion 0
#define X_ShmAttach 1
#define X_ShmDetach 2
#define X_ShmPutImage 3
#define X_ShmGetImage 4
#define X_ShmCreatePixmap 5
#define X_ShmAttachFd 6
#define X_ShmCreateSegment 7
typedef struct _ShmQueryVersion {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmQueryVersion */
CARD16 length B16;
} xShmQueryVersionReq;
#define sz_xShmQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
BOOL sharedPixmaps;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of SHM protocol */
CARD16 minorVersion B16; /* minor version of SHM protocol */
CARD16 uid B16;
CARD16 gid B16;
CARD8 pixmapFormat;
CARD8 pad0;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xShmQueryVersionReply;
#define sz_xShmQueryVersionReply 32
typedef struct _ShmAttach {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmAttach */
CARD16 length B16;
ShmSeg shmseg B32;
CARD32 shmid B32;
BOOL readOnly;
BYTE pad0;
CARD16 pad1 B16;
} xShmAttachReq;
#define sz_xShmAttachReq 16
typedef struct _ShmDetach {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmDetach */
CARD16 length B16;
ShmSeg shmseg B32;
} xShmDetachReq;
#define sz_xShmDetachReq 8
typedef struct _ShmPutImage {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmPutImage */
CARD16 length B16;
Drawable drawable B32;
GContext gc B32;
CARD16 totalWidth B16;
CARD16 totalHeight B16;
CARD16 srcX B16;
CARD16 srcY B16;
CARD16 srcWidth B16;
CARD16 srcHeight B16;
INT16 dstX B16;
INT16 dstY B16;
CARD8 depth;
CARD8 format;
CARD8 sendEvent;
CARD8 bpad;
ShmSeg shmseg B32;
CARD32 offset B32;
} xShmPutImageReq;
#define sz_xShmPutImageReq 40
typedef struct _ShmGetImage {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmGetImage */
CARD16 length B16;
Drawable drawable B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
CARD32 planeMask B32;
CARD8 format;
CARD8 pad0;
CARD8 pad1;
CARD8 pad2;
ShmSeg shmseg B32;
CARD32 offset B32;
} xShmGetImageReq;
#define sz_xShmGetImageReq 32
typedef struct _ShmGetImageReply {
BYTE type; /* X_Reply */
CARD8 depth;
CARD16 sequenceNumber B16;
CARD32 length B32;
VisualID visual B32;
CARD32 size B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xShmGetImageReply;
#define sz_xShmGetImageReply 32
typedef struct _ShmCreatePixmap {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmCreatePixmap */
CARD16 length B16;
Pixmap pid B32;
Drawable drawable B32;
CARD16 width B16;
CARD16 height B16;
CARD8 depth;
CARD8 pad0;
CARD8 pad1;
CARD8 pad2;
ShmSeg shmseg B32;
CARD32 offset B32;
} xShmCreatePixmapReq;
#define sz_xShmCreatePixmapReq 28
typedef struct _ShmCompletion {
BYTE type; /* always eventBase + ShmCompletion */
BYTE bpad0;
CARD16 sequenceNumber B16;
Drawable drawable B32;
CARD16 minorEvent B16;
BYTE majorEvent;
BYTE bpad1;
ShmSeg shmseg B32;
CARD32 offset B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
} xShmCompletionEvent;
#define sz_xShmCompletionEvent 32
/* Version 1.2 additions */
typedef struct _ShmAttachFd {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmAttachFd */
CARD16 length B16;
ShmSeg shmseg B32;
BOOL readOnly;
BYTE pad0;
CARD16 pad1 B16;
} xShmAttachFdReq;
/* File descriptor is passed with this request */
#define sz_xShmAttachFdReq 12
typedef struct _ShmCreateSegment {
CARD8 reqType; /* always ShmReqCode */
CARD8 shmReqType; /* always X_ShmAttachFd */
CARD16 length B16;
ShmSeg shmseg B32;
CARD32 size B32;
BOOL readOnly;
BYTE pad0;
CARD16 pad1 B16;
} xShmCreateSegmentReq;
#define sz_xShmCreateSegmentReq 16
typedef struct {
CARD8 type; /* must be X_Reply */
CARD8 nfd; /* must be 1 */
CARD16 sequenceNumber B16; /* last sequence number */
CARD32 length B32; /* 0 */
CARD32 pad2 B32; /* unused */
CARD32 pad3 B32; /* unused */
CARD32 pad4 B32; /* unused */
CARD32 pad5 B32; /* unused */
CARD32 pad6 B32; /* unused */
CARD32 pad7 B32; /* unused */
} xShmCreateSegmentReply;
/* File descriptor is passed with this reply */
#define sz_xShmCreateSegmentReply 32
#undef ShmSeg
#undef Drawable
#undef VisualID
#undef GContext
#undef Pixmap
#endif /* _SHMPROTO_H_ */

View File

@@ -0,0 +1,63 @@
/************************************************************
Copyright 1989, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
********************************************************/
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
#ifndef _SHMSTR_H_
#define _SHMSTR_H_
#include <X11/extensions/shmproto.h>
#ifdef _XSHM_SERVER_
#define XSHM_PUT_IMAGE_ARGS \
DrawablePtr /* dst */, \
GCPtr /* pGC */, \
int /* depth */, \
unsigned int /* format */, \
int /* w */, \
int /* h */, \
int /* sx */, \
int /* sy */, \
int /* sw */, \
int /* sh */, \
int /* dx */, \
int /* dy */, \
char * /* data */
#define XSHM_CREATE_PIXMAP_ARGS \
ScreenPtr /* pScreen */, \
int /* width */, \
int /* height */, \
int /* depth */, \
char * /* addr */
typedef struct _ShmFuncs {
PixmapPtr (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
void (* PutImage)(XSHM_PUT_IMAGE_ARGS);
} ShmFuncs, *ShmFuncsPtr;
#endif
#endif /* _SHMSTR_H_ */

View File

@@ -0,0 +1,375 @@
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
/***********************************************************
Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
#ifndef _SYNC_H_
#define _SYNC_H_
#include <X11/Xfuncproto.h>
#include <X11/extensions/syncconst.h>
#ifdef _SYNC_SERVER
#include <X11/extensions/syncproto.h>
#else
_XFUNCPROTOBEGIN
/* get rid of macros so we can define corresponding functions */
#undef XSyncIntToValue
#undef XSyncIntsToValue
#undef XSyncValueGreaterThan
#undef XSyncValueLessThan
#undef XSyncValueGreaterOrEqual
#undef XSyncValueLessOrEqual
#undef XSyncValueEqual
#undef XSyncValueIsNegative
#undef XSyncValueIsZero
#undef XSyncValueIsPositive
#undef XSyncValueLow32
#undef XSyncValueHigh32
#undef XSyncValueAdd
#undef XSyncValueSubtract
#undef XSyncMaxValue
#undef XSyncMinValue
extern void XSyncIntToValue(
XSyncValue* /*pv*/,
int /*i*/
);
extern void XSyncIntsToValue(
XSyncValue* /*pv*/,
unsigned int /*l*/,
int /*h*/
);
extern Bool XSyncValueGreaterThan(
XSyncValue /*a*/,
XSyncValue /*b*/
);
extern Bool XSyncValueLessThan(
XSyncValue /*a*/,
XSyncValue /*b*/
);
extern Bool XSyncValueGreaterOrEqual(
XSyncValue /*a*/,
XSyncValue /*b*/
);
extern Bool XSyncValueLessOrEqual(
XSyncValue /*a*/,
XSyncValue /*b*/
);
extern Bool XSyncValueEqual(
XSyncValue /*a*/,
XSyncValue /*b*/
);
extern Bool XSyncValueIsNegative(
XSyncValue /*v*/
);
extern Bool XSyncValueIsZero(
XSyncValue /*a*/
);
extern Bool XSyncValueIsPositive(
XSyncValue /*v*/
);
extern unsigned int XSyncValueLow32(
XSyncValue /*v*/
);
extern int XSyncValueHigh32(
XSyncValue /*v*/
);
extern void XSyncValueAdd(
XSyncValue* /*presult*/,
XSyncValue /*a*/,
XSyncValue /*b*/,
int* /*poverflow*/
);
extern void XSyncValueSubtract(
XSyncValue* /*presult*/,
XSyncValue /*a*/,
XSyncValue /*b*/,
int* /*poverflow*/
);
extern void XSyncMaxValue(
XSyncValue* /*pv*/
);
extern void XSyncMinValue(
XSyncValue* /*pv*/
);
_XFUNCPROTOEND
typedef struct _XSyncSystemCounter {
char *name; /* null-terminated name of system counter */
XSyncCounter counter; /* counter id of this system counter */
XSyncValue resolution; /* resolution of this system counter */
} XSyncSystemCounter;
typedef struct {
XSyncCounter counter; /* counter to trigger on */
XSyncValueType value_type; /* absolute/relative */
XSyncValue wait_value; /* value to compare counter to */
XSyncTestType test_type; /* pos/neg comparison/transtion */
} XSyncTrigger;
typedef struct {
XSyncTrigger trigger; /* trigger for await */
XSyncValue event_threshold; /* send event if past threshold */
} XSyncWaitCondition;
typedef struct {
XSyncTrigger trigger;
XSyncValue delta;
Bool events;
XSyncAlarmState state;
} XSyncAlarmAttributes;
/*
* Events
*/
typedef struct {
int type; /* event base + XSyncCounterNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
XSyncCounter counter; /* counter involved in await */
XSyncValue wait_value; /* value being waited for */
XSyncValue counter_value; /* counter value when this event was sent */
Time time; /* milliseconds */
int count; /* how many more events to come */
Bool destroyed; /* True if counter was destroyed */
} XSyncCounterNotifyEvent;
typedef struct {
int type; /* event base + XSyncAlarmNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
XSyncAlarm alarm; /* alarm that triggered */
XSyncValue counter_value; /* value that triggered the alarm */
XSyncValue alarm_value; /* test value of trigger in alarm */
Time time; /* milliseconds */
XSyncAlarmState state; /* new state of alarm */
} XSyncAlarmNotifyEvent;
/*
* Errors
*/
typedef struct {
int type;
Display *display; /* Display the event was read from */
XSyncAlarm alarm; /* resource id */
unsigned long serial; /* serial number of failed request */
unsigned char error_code; /* error base + XSyncBadAlarm */
unsigned char request_code; /* Major op-code of failed request */
unsigned char minor_code; /* Minor op-code of failed request */
} XSyncAlarmError;
typedef struct {
int type;
Display *display; /* Display the event was read from */
XSyncCounter counter; /* resource id */
unsigned long serial; /* serial number of failed request */
unsigned char error_code; /* error base + XSyncBadCounter */
unsigned char request_code; /* Major op-code of failed request */
unsigned char minor_code; /* Minor op-code of failed request */
} XSyncCounterError;
/*
* Prototypes
*/
_XFUNCPROTOBEGIN
extern Status XSyncQueryExtension(
Display* /*dpy*/,
int* /*event_base_return*/,
int* /*error_base_return*/
);
extern Status XSyncInitialize(
Display* /*dpy*/,
int* /*major_version_return*/,
int* /*minor_version_return*/
);
extern XSyncSystemCounter *XSyncListSystemCounters(
Display* /*dpy*/,
int* /*n_counters_return*/
);
extern void XSyncFreeSystemCounterList(
XSyncSystemCounter* /*list*/
);
extern XSyncCounter XSyncCreateCounter(
Display* /*dpy*/,
XSyncValue /*initial_value*/
);
extern Status XSyncSetCounter(
Display* /*dpy*/,
XSyncCounter /*counter*/,
XSyncValue /*value*/
);
extern Status XSyncChangeCounter(
Display* /*dpy*/,
XSyncCounter /*counter*/,
XSyncValue /*value*/
);
extern Status XSyncDestroyCounter(
Display* /*dpy*/,
XSyncCounter /*counter*/
);
extern Status XSyncQueryCounter(
Display* /*dpy*/,
XSyncCounter /*counter*/,
XSyncValue* /*value_return*/
);
extern Status XSyncAwait(
Display* /*dpy*/,
XSyncWaitCondition* /*wait_list*/,
int /*n_conditions*/
);
extern XSyncAlarm XSyncCreateAlarm(
Display* /*dpy*/,
unsigned long /*values_mask*/,
XSyncAlarmAttributes* /*values*/
);
extern Status XSyncDestroyAlarm(
Display* /*dpy*/,
XSyncAlarm /*alarm*/
);
extern Status XSyncQueryAlarm(
Display* /*dpy*/,
XSyncAlarm /*alarm*/,
XSyncAlarmAttributes* /*values_return*/
);
extern Status XSyncChangeAlarm(
Display* /*dpy*/,
XSyncAlarm /*alarm*/,
unsigned long /*values_mask*/,
XSyncAlarmAttributes* /*values*/
);
extern Status XSyncSetPriority(
Display* /*dpy*/,
XID /*client_resource_id*/,
int /*priority*/
);
extern Status XSyncGetPriority(
Display* /*dpy*/,
XID /*client_resource_id*/,
int* /*return_priority*/
);
extern XSyncFence XSyncCreateFence(
Display* /*dpy*/,
Drawable /*d*/,
Bool /*initially_triggered*/
);
extern Bool XSyncTriggerFence(
Display* /*dpy*/,
XSyncFence /*fence*/
);
extern Bool XSyncResetFence(
Display* /*dpy*/,
XSyncFence /*fence*/
);
extern Bool XSyncDestroyFence(
Display* /*dpy*/,
XSyncFence /*fence*/
);
extern Bool XSyncQueryFence(
Display* /*dpy*/,
XSyncFence /*fence*/,
Bool* /*triggered*/
);
extern Bool XSyncAwaitFence(
Display* /*dpy*/,
const XSyncFence* /*fence_list*/,
int /*n_fences*/
);
_XFUNCPROTOEND
#endif /* _SYNC_SERVER */
#endif /* _SYNC_H_ */

View File

@@ -0,0 +1,181 @@
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
/***********************************************************
Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
#ifndef _SYNCCONST_H_
#define _SYNCCONST_H_
#define SYNC_NAME "SYNC"
#define SYNC_MAJOR_VERSION 3
#define SYNC_MINOR_VERSION 1
#define XSyncCounterNotify 0
#define XSyncAlarmNotify 1
#define XSyncAlarmNotifyMask (1L << XSyncAlarmNotify)
#define XSyncNumberEvents 2L
#define XSyncBadCounter 0L
#define XSyncBadAlarm 1L
#define XSyncBadFence 2L
#define XSyncNumberErrors (XSyncBadFence + 1)
/*
* Flags for Alarm Attributes
*/
#define XSyncCACounter (1L<<0)
#define XSyncCAValueType (1L<<1)
#define XSyncCAValue (1L<<2)
#define XSyncCATestType (1L<<3)
#define XSyncCADelta (1L<<4)
#define XSyncCAEvents (1L<<5)
/* The _XSync macros below are for library internal use only. They exist
* so that if we have to make a fix, we can change it in this one place
* and have both the macro and function variants inherit the fix.
*/
#define _XSyncIntToValue(pv, i) ((pv)->hi=((i<0)?~0:0),(pv)->lo=(i))
#define _XSyncIntsToValue(pv, l, h) ((pv)->lo = (l), (pv)->hi = (h))
#define _XSyncValueGreaterThan(a, b)\
((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>(b).lo))
#define _XSyncValueLessThan(a, b)\
((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<(b).lo))
#define _XSyncValueGreaterOrEqual(a, b)\
((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>=(b).lo))
#define _XSyncValueLessOrEqual(a, b)\
((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<=(b).lo))
#define _XSyncValueEqual(a, b) ((a).lo==(b).lo && (a).hi==(b).hi)
#define _XSyncValueIsNegative(v) (((v).hi & 0x80000000) ? 1 : 0)
#define _XSyncValueIsZero(a) ((a).lo==0 && (a).hi==0)
#define _XSyncValueIsPositive(v) (((v).hi & 0x80000000) ? 0 : 1)
#define _XSyncValueLow32(v) ((v).lo)
#define _XSyncValueHigh32(v) ((v).hi)
#define _XSyncValueAdd(presult,a,b,poverflow) {\
int t = (a).lo;\
Bool signa = XSyncValueIsNegative(a);\
Bool signb = XSyncValueIsNegative(b);\
((presult)->lo = (a).lo + (b).lo);\
((presult)->hi = (a).hi + (b).hi);\
if (t>(presult)->lo) (presult)->hi++;\
*poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
}
#define _XSyncValueSubtract(presult,a,b,poverflow) {\
int t = (a).lo;\
Bool signa = XSyncValueIsNegative(a);\
Bool signb = XSyncValueIsNegative(b);\
((presult)->lo = (a).lo - (b).lo);\
((presult)->hi = (a).hi - (b).hi);\
if (t<(presult)->lo) (presult)->hi--;\
*poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
}
#define _XSyncMaxValue(pv) ((pv)->hi = 0x7fffffff, (pv)->lo = 0xffffffff)
#define _XSyncMinValue(pv) ((pv)->hi = 0x80000000, (pv)->lo = 0)
/*
* These are the publically usable macros. If you want the function version
* of one of these, just #undef the macro to uncover the function.
* (This is the same convention that the ANSI C library uses.)
*/
#define XSyncIntToValue(pv, i) _XSyncIntToValue(pv, i)
#define XSyncIntsToValue(pv, l, h) _XSyncIntsToValue(pv, l, h)
#define XSyncValueGreaterThan(a, b) _XSyncValueGreaterThan(a, b)
#define XSyncValueLessThan(a, b) _XSyncValueLessThan(a, b)
#define XSyncValueGreaterOrEqual(a, b) _XSyncValueGreaterOrEqual(a, b)
#define XSyncValueLessOrEqual(a, b) _XSyncValueLessOrEqual(a, b)
#define XSyncValueEqual(a, b) _XSyncValueEqual(a, b)
#define XSyncValueIsNegative(v) _XSyncValueIsNegative(v)
#define XSyncValueIsZero(a) _XSyncValueIsZero(a)
#define XSyncValueIsPositive(v) _XSyncValueIsPositive(v)
#define XSyncValueLow32(v) _XSyncValueLow32(v)
#define XSyncValueHigh32(v) _XSyncValueHigh32(v)
#define XSyncValueAdd(presult,a,b,poverflow) _XSyncValueAdd(presult,a,b,poverflow)
#define XSyncValueSubtract(presult,a,b,poverflow) _XSyncValueSubtract(presult,a,b,poverflow)
#define XSyncMaxValue(pv) _XSyncMaxValue(pv)
#define XSyncMinValue(pv) _XSyncMinValue(pv)
/*
* Constants for the value_type argument of various requests
*/
typedef enum {
XSyncAbsolute,
XSyncRelative
} XSyncValueType;
/*
* Alarm Test types
*/
typedef enum {
XSyncPositiveTransition,
XSyncNegativeTransition,
XSyncPositiveComparison,
XSyncNegativeComparison
} XSyncTestType;
/*
* Alarm state constants
*/
typedef enum {
XSyncAlarmActive,
XSyncAlarmInactive,
XSyncAlarmDestroyed
} XSyncAlarmState;
typedef XID XSyncCounter;
typedef XID XSyncAlarm;
typedef XID XSyncFence;
typedef struct _XSyncValue {
int hi;
unsigned int lo;
} XSyncValue;
#endif /* _SYNCCONST_H_ */

View File

@@ -0,0 +1,474 @@
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
/***********************************************************
Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
#ifndef _SYNCPROTO_H_
#define _SYNCPROTO_H_
#include <X11/extensions/syncconst.h>
#define X_SyncInitialize 0
#define X_SyncListSystemCounters 1
#define X_SyncCreateCounter 2
#define X_SyncSetCounter 3
#define X_SyncChangeCounter 4
#define X_SyncQueryCounter 5
#define X_SyncDestroyCounter 6
#define X_SyncAwait 7
#define X_SyncCreateAlarm 8
#define X_SyncChangeAlarm 9
#define X_SyncQueryAlarm 10
#define X_SyncDestroyAlarm 11
#define X_SyncSetPriority 12
#define X_SyncGetPriority 13
#define X_SyncCreateFence 14
#define X_SyncTriggerFence 15
#define X_SyncResetFence 16
#define X_SyncDestroyFence 17
#define X_SyncQueryFence 18
#define X_SyncAwaitFence 19
/* cover up types from sync.h to make sure they're the right size for
* protocol packaging. These will be undef'ed after all the protocol
* structures are defined.
*/
#define XSyncCounter CARD32
#define XSyncAlarm CARD32
#define XSyncFence CARD32
#define Drawable CARD32
/*
* Initialize
*/
typedef struct _xSyncInitialize {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
CARD8 majorVersion;
CARD8 minorVersion;
CARD16 pad B16;
} xSyncInitializeReq;
#define sz_xSyncInitializeReq 8
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD8 majorVersion;
CARD8 minorVersion;
CARD16 pad B16;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xSyncInitializeReply;
#define sz_xSyncInitializeReply 32
/*
* ListSystemCounters
*/
typedef struct _xSyncListSystemCounters
{
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
} xSyncListSystemCountersReq;
#define sz_xSyncListSystemCountersReq 4
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT32 nCounters B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xSyncListSystemCountersReply;
#define sz_xSyncListSystemCountersReply 32
typedef struct {
XSyncCounter counter B32;
INT32 resolution_hi B32;
CARD32 resolution_lo B32;
CARD16 name_length B16;
} xSyncSystemCounter;
#define sz_xSyncSystemCounter 14
/*
* Create Counter
*/
typedef struct _xSyncCreateCounterReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncCounter cid B32;
INT32 initial_value_hi B32;
CARD32 initial_value_lo B32;
} xSyncCreateCounterReq;
#define sz_xSyncCreateCounterReq 16
/*
* Change Counter
*/
typedef struct _xSyncChangeCounterReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncCounter cid B32;
INT32 value_hi B32;
CARD32 value_lo B32;
} xSyncChangeCounterReq;
#define sz_xSyncChangeCounterReq 16
/*
* Set Counter
*/
typedef struct _xSyncSetCounterReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncCounter cid B32;
INT32 value_hi B32;
CARD32 value_lo B32;
} xSyncSetCounterReq;
#define sz_xSyncSetCounterReq 16
/*
* Destroy Counter
*/
typedef struct _xSyncDestroyCounterReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncCounter counter B32;
} xSyncDestroyCounterReq;
#define sz_xSyncDestroyCounterReq 8
/*
* Query Counter
*/
typedef struct _xSyncQueryCounterReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncCounter counter B32;
} xSyncQueryCounterReq;
#define sz_xSyncQueryCounterReq 8
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT32 value_hi B32;
CARD32 value_lo B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xSyncQueryCounterReply;
#define sz_xSyncQueryCounterReply 32
/*
* Await
*/
typedef struct _xSyncAwaitReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
} xSyncAwaitReq;
#define sz_xSyncAwaitReq 4
typedef struct _xSyncWaitCondition {
XSyncCounter counter B32;
CARD32 value_type B32;
INT32 wait_value_hi B32;
CARD32 wait_value_lo B32;
CARD32 test_type B32;
INT32 event_threshold_hi B32;
CARD32 event_threshold_lo B32;
} xSyncWaitCondition;
#define sz_xSyncWaitCondition 28
/*
* Create Alarm
*/
typedef struct _xSyncCreateAlarmReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncAlarm id B32;
CARD32 valueMask B32;
} xSyncCreateAlarmReq;
#define sz_xSyncCreateAlarmReq 12
/*
* Destroy Alarm
*/
typedef struct _xSyncDestroyAlarmReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncAlarm alarm B32;
} xSyncDestroyAlarmReq;
#define sz_xSyncDestroyAlarmReq 8
/*
* Query Alarm
*/
typedef struct _xSyncQueryAlarmReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncAlarm alarm B32;
} xSyncQueryAlarmReq;
#define sz_xSyncQueryAlarmReq 8
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
XSyncCounter counter B32;
CARD32 value_type B32;
INT32 wait_value_hi B32;
CARD32 wait_value_lo B32;
CARD32 test_type B32;
INT32 delta_hi B32;
CARD32 delta_lo B32;
BOOL events;
BYTE state;
BYTE pad0;
BYTE pad1;
} xSyncQueryAlarmReply;
#define sz_xSyncQueryAlarmReply 40
/*
* Change Alarm
*/
typedef struct _xSyncChangeAlarmReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncAlarm alarm B32;
CARD32 valueMask B32;
} xSyncChangeAlarmReq;
#define sz_xSyncChangeAlarmReq 12
/*
* SetPriority
*/
typedef struct _xSyncSetPriority{
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
CARD32 id B32;
INT32 priority B32;
} xSyncSetPriorityReq;
#define sz_xSyncSetPriorityReq 12
/*
* Get Priority
*/
typedef struct _xSyncGetPriority{
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
CARD32 id B32; /*XXX XID? */
} xSyncGetPriorityReq;
#define sz_xSyncGetPriorityReq 8
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT32 priority B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xSyncGetPriorityReply;
#define sz_xSyncGetPriorityReply 32
/*
* Create Fence
*/
typedef struct _xSyncCreateFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
Drawable d B32;
XSyncFence fid B32;
BOOL initially_triggered;
CARD8 pad0;
CARD16 pad1;
} xSyncCreateFenceReq;
#define sz_xSyncCreateFenceReq 16
/*
* Put a fence object in the "triggered" state.
*/
typedef struct _xSyncTriggerFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncTriggerFenceReq;
#define sz_xSyncTriggerFenceReq 8
/*
* Put a fence in the "untriggered" state.
*/
typedef struct _xSyncResetFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncResetFenceReq;
#define sz_xSyncResetFenceReq 8
/*
* Destroy a fence object
*/
typedef struct _xSyncDestroyFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncDestroyFenceReq;
#define sz_xSyncDestroyFenceReq 8
/*
* Query a fence object
*/
typedef struct _xSyncQueryFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncQueryFenceReq;
#define sz_xSyncQueryFenceReq 8
/*
* Wait for any of a list of fence sync objects
* to reach the "triggered" state.
*/
typedef struct _xSyncAwaitFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
} xSyncAwaitFenceReq;
#define sz_xSyncAwaitFenceReq 4
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
BOOL triggered;
BYTE pad0;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xSyncQueryFenceReply;
#define sz_xSyncQueryFenceReply 32
/*
* Events
*/
typedef struct _xSyncCounterNotifyEvent {
BYTE type;
BYTE kind;
CARD16 sequenceNumber B16;
XSyncCounter counter B32;
INT32 wait_value_hi B32;
CARD32 wait_value_lo B32;
INT32 counter_value_hi B32;
CARD32 counter_value_lo B32;
CARD32 time B32;
CARD16 count B16;
BOOL destroyed;
BYTE pad0;
} xSyncCounterNotifyEvent;
typedef struct _xSyncAlarmNotifyEvent {
BYTE type;
BYTE kind;
CARD16 sequenceNumber B16;
XSyncAlarm alarm B32;
INT32 counter_value_hi B32;
CARD32 counter_value_lo B32;
INT32 alarm_value_hi B32;
CARD32 alarm_value_lo B32;
CARD32 time B32;
CARD8 state;
BYTE pad0;
BYTE pad1;
BYTE pad2;
} xSyncAlarmNotifyEvent;
#undef XSyncCounter
#undef XSyncAlarm
#undef XSyncFence
#undef Drawable
#endif /* _SYNCPROTO_H_ */

View File

@@ -0,0 +1,182 @@
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
/***********************************************************
Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts,
and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
#ifndef _SYNCSTR_H_
#define _SYNCSTR_H_
#include <X11/extensions/syncproto.h>
#ifdef _SYNC_SERVER
#define CARD64 XSyncValue /* XXX temporary! need real 64 bit values for Alpha */
typedef struct _SyncCounter {
ClientPtr client; /* Owning client. 0 for system counters */
XSyncCounter id; /* resource ID */
CARD64 value; /* counter value */
struct _SyncTriggerList *pTriglist; /* list of triggers */
Bool beingDestroyed; /* in process of going away */
struct _SysCounterInfo *pSysCounterInfo; /* NULL if not a system counter */
} SyncCounter;
/*
* The System Counter interface
*/
typedef enum {
XSyncCounterNeverChanges,
XSyncCounterNeverIncreases,
XSyncCounterNeverDecreases,
XSyncCounterUnrestricted
} SyncCounterType;
typedef struct _SysCounterInfo {
char *name;
CARD64 resolution;
CARD64 bracket_greater;
CARD64 bracket_less;
SyncCounterType counterType; /* how can this counter change */
void (*QueryValue)(
pointer /*pCounter*/,
CARD64 * /*freshvalue*/
);
void (*BracketValues)(
pointer /*pCounter*/,
CARD64 * /*lessthan*/,
CARD64 * /*greaterthan*/
);
} SysCounterInfo;
typedef struct _SyncTrigger {
SyncCounter *pCounter;
CARD64 wait_value; /* wait value */
unsigned int value_type; /* Absolute or Relative */
unsigned int test_type; /* transition or Comparision type */
CARD64 test_value; /* trigger event threshold value */
Bool (*CheckTrigger)(
struct _SyncTrigger * /*pTrigger*/,
CARD64 /*newval*/
);
void (*TriggerFired)(
struct _SyncTrigger * /*pTrigger*/
);
void (*CounterDestroyed)(
struct _SyncTrigger * /*pTrigger*/
);
} SyncTrigger;
typedef struct _SyncTriggerList {
SyncTrigger *pTrigger;
struct _SyncTriggerList *next;
} SyncTriggerList;
typedef struct _SyncAlarmClientList {
ClientPtr client;
XID delete_id;
struct _SyncAlarmClientList *next;
} SyncAlarmClientList;
typedef struct _SyncAlarm {
SyncTrigger trigger;
ClientPtr client;
XSyncAlarm alarm_id;
CARD64 delta;
int events;
int state;
SyncAlarmClientList *pEventClients;
} SyncAlarm;
typedef struct {
ClientPtr client;
CARD32 delete_id;
int num_waitconditions;
} SyncAwaitHeader;
typedef struct {
SyncTrigger trigger;
CARD64 event_threshold;
SyncAwaitHeader *pHeader;
} SyncAwait;
typedef union {
SyncAwaitHeader header;
SyncAwait await;
} SyncAwaitUnion;
extern pointer SyncCreateSystemCounter(
char * /* name */,
CARD64 /* inital_value */,
CARD64 /* resolution */,
SyncCounterType /* change characterization */,
void (* /*QueryValue*/ ) (
pointer /* pCounter */,
CARD64 * /* pValue_return */), /* XXX prototype */
void (* /*BracketValues*/) (
pointer /* pCounter */,
CARD64 * /* pbracket_less */,
CARD64 * /* pbracket_greater */)
);
extern void SyncChangeCounter(
SyncCounter * /* pCounter*/,
CARD64 /* new_value */
);
extern void SyncDestroySystemCounter(
pointer pCounter
);
extern void InitServertime(void);
#endif /* _SYNC_SERVER */
#endif /* _SYNCSTR_H_ */

View File

@@ -0,0 +1,174 @@
/*****************************************************************************
* VLD XvMC Nonstandard extension API.
*
* Copyright (c) 2004 The Unichrome Project. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Author: Thomas Hellström, 2004.
*/
#ifndef _VLDXVMC_H
#define _VLDXVMC_H
#include <X11/Xlib.h>
#include <X11/extensions/XvMC.h>
/*
* New "Motion compensation type".
*/
#define XVMC_VLD 0x0020000
/*
* Below Flags to be passed in the XvMCMpegControl structure 'flag' field.
*/
#define XVMC_PROGRESSIVE_SEQUENCE 0x00000010
/*
* Zig-Zag Scan / Alternative Scan.
*/
#define XVMC_ZIG_ZAG_SCAN 0x00000000
#define XVMC_ALTERNATE_SCAN 0x00000100
/*
* Frame DCT and frame prediction are used. /
* Field prediction
*/
#define XVMC_PRED_DCT_FRAME 0x00000040
#define XVMC_PRED_DCT_FIELD 0x00000000
/*
* Top / Bottom field first
*/
#define XVMC_TOP_FIELD_FIRST 0x00000080
#define XVMC_BOTTOM_FIELD_FIRST 0x00000000
/*
* Motion vectors coded in intra macroblocks
*/
#define XVMC_CONCEALMENT_MOTION_VECTORS 0x00000200
/*
* Which of two mappings between quantiser_scale_code
* and quantiser_scale shall apply.
*/
#define XVMC_Q_SCALE_TYPE 0x00000400
/*
* Intra VLC Format: Bit = 0, Bit = 1
* Intra blocks B-14 B-15
* Non-intra blocks B-14 B-14
*/
#define XVMC_INTRA_VLC_FORMAT 0x00000800
/*
* Also XVMC_SECOND_FIELD should be set in flags if active.
*/
#define XVMC_I_PICTURE 1
#define XVMC_P_PICTURE 2
#define XVMC_B_PICTURE 3
typedef struct _XvMCMpegControl{
unsigned
BVMV_range, /* Backward vertical motion vector range */
BHMV_range, /* Backward horizontal motion vector range */
FVMV_range, /* Forward vertical motion vector range */
FHMV_range, /* Forward horizontal motion vector range */
picture_structure, /* XVMC_TOP_FIELD, XVMC_BOTTOM_FIELD,
* XVMC_FRAME_PICTURE
*/
intra_dc_precision, /* 0x00 - 0x03 corresponds to 8 to 11 bits prec. */
picture_coding_type,/* XVMC_X_PICTURE */
mpeg_coding, /* XVMC_MPEG_2 */
flags; /* See above */
}XvMCMpegControl;
/*
* The following function is called BEFORE starting sending slices to the
* lib. It grabs the decoder hardware and prepares it for coming slices.
* The function XvMCSyncSurface will release the hardware for other contexts
* in addition to it's current functionality.
*/
extern Status XvMCBeginSurface(Display *display,
XvMCContext *context,
XvMCSurface *target_surface,
XvMCSurface *past_surface,
XvMCSurface *future_surface,
const XvMCMpegControl *control);
/*
* The quantizer matrix structure. This should be filled in by the user and
* uploaded whenever a change is needed. The lib initializes with
* default matrices and will automatically load the hardware with new matrices
* on decoder context switches. To load data, set the corresponding load flag
* to true and fill in the values. The VIA MPEG2 engine only uses the
* intra_quantiser_matrix and the non_intra_quantiser_matrix.
*/
typedef struct _XvMCQMatrix {
int load_intra_quantiser_matrix;
int load_non_intra_quantiser_matrix;
int load_chroma_intra_quantiser_matrix;
int load_chroma_non_intra_quantiser_matrix;
unsigned char intra_quantiser_matrix[64];
unsigned char non_intra_quantiser_matrix[64];
unsigned char chroma_intra_quantiser_matrix[64];
unsigned char chroma_non_intra_quantiser_matrix[64];
} XvMCQMatrix;
/*
* Upload a XvMCQMatrix structure to the clientlib.
* The hardware will start using it the next XvMCBeginSurface.
*/
extern Status XvMCLoadQMatrix(Display *display, XvMCContext *context,
const XvMCQMatrix *qmx);
/*
* Put a slice to the decoder. The hardware will start processing it
* immediately.
*/
extern Status XvMCPutSlice(Display *display,XvMCContext *context,
char *slice, int nBytes);
/*
* Put a slice without the slice start code to the decoder.
* The hardware will start processing it
* immediately. This function is for client optimization.
* XvMCPutSlice(display,context,slice,nBytes) is equivalent to
* XvMCPutSlice2(display,context,slice+4,nBytes-4,slice[3]);
*/
extern Status XvMCPutSlice2(Display *display,XvMCContext *context,
char *slice, int nBytes, int sliceCode);
#endif

View File

@@ -0,0 +1,195 @@
/*
* WindowsWM extension is based on AppleWM extension
* Authors: Kensuke Matsuzaki
*/
/**************************************************************************
Copyright (c) 2002 Apple Computer, Inc.
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sub license, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
#ifndef _WINDOWSWM_H_
#define _WINDOWSWM_H_
#include <X11/Xfuncproto.h>
#define X_WindowsWMQueryVersion 0
#define X_WindowsWMFrameGetRect 1
#define X_WindowsWMFrameDraw 2
#define X_WindowsWMFrameSetTitle 3
#define X_WindowsWMDisableUpdate 4
#define X_WindowsWMReenableUpdate 5
#define X_WindowsWMSelectInput 6
#define X_WindowsWMSetFrontProcess 7
/* Events */
#define WindowsWMControllerNotify 0
#define WindowsWMActivationNotify 1
#define WindowsWMNumberEvents 2
#define WindowsWMControllerNotifyMask (1L << 0)
#define WindowsWMActivationNotifyMask (1L << 1)
/* "Kinds" of ControllerNotify events */
#define WindowsWMMinimizeWindow 0
#define WindowsWMMaximizeWindow 1
#define WindowsWMRestoreWindow 2
#define WindowsWMCloseWindow 3
#define WindowsWMBringAllToFront 4
#define WindowsWMHideWindow 5
#define WindowsWMMoveWindow 6
#define WindowsWMResizeWindow 7
#define WindowsWMActivateWindow 8
/* "Kinds" of ActivationNotify events */
#define WindowsWMIsActive 0
#define WindowsWMIsInactive 1
/* Errors */
#define WindowsWMClientNotLocal 0
#define WindowsWMOperationNotSupported 1
#define WindowsWMNumberErrors (WindowsWMOperationNotSupported + 1)
/* Possible value for frame_rect argument to XWindowsWMFrameGetRect() */
#define WindowsWMFrameRectTitleBar 1
#define WindowsWMFrameRectTracking 2
#define WindowsWMFrameRectGrowBox 3
/* Window frame styles */
#define WindowsWMFrameStyleBorder 0x800000
#define WindowsWMFrameStyleCaption 0xc00000
#define WindowsWMFrameStyleChild 0x40000000
#define WindowsWMFrameStyleChildWindow 0x40000000
#define WindowsWMFrameStyleClipChildren 0x2000000
#define WindowsWMFrameStyleClipSiblings 0x4000000
#define WindowsWMFrameStyleDisabled 0x8000000
#define WindowsWMFrameStyleDlgFrame 0x400000
#define WindowsWMFrameStyleGroup 0x20000
#define WindowsWMFrameStyleHScroll 0x100000
#define WindowsWMFrameStyleIconic 0x20000000
#define WindowsWMFrameStyleMaximize 0x1000000
#define WindowsWMFrameStyleMaximizeBox 0x10000
#define WindowsWMFrameStyleMinimize 0x20000000
#define WindowsWMFrameStyleMinimizeBox 0x20000
#define WindowsWMFrameStyleOverlapped 0
#define WindowsWMFrameStyleOverlappedWindow 0xcf0000
#define WindowsWMFrameStylePopup 0x80000000
#define WindowsWMFrameStylePopupWindow 0x80880000
#define WindowsWMFrameStyleSizeBox 0x40000
#define WindowsWMFrameStyleSysMenu 0x80000
#define WindowsWMFrameStyleTabStop 0x10000
#define WindowsWMFrameStyleThickFrame 0x40000
#define WindowsWMFrameStyleTiled 0
#define WindowsWMFrameStyleTiledWindow 0xcf0000
#define WindowsWMFrameStyleVisible 0x10000000
#define WindowsWMFrameStyleVScroll 0x200000
/* Window frame Ex-styles */
#define WindowsWMFrameStyleExAcceptFiles 16
#define WindowsWMFrameStyleExAppWindow 0x40000
#define WindowsWMFrameStyleExClientEdge 512
#define WindowsWMFrameStyleExComposited 0x2000000
#define WindowsWMFrameStyleExContextHelp 0x400
#define WindowsWMFrameStyleExControlParent 0x10000
#define WindowsWMFrameStyleExDlgModalFrame 1
#define WindowsWMFrameStyleExLayered 0x80000
#define WindowsWMFrameStyleExLayoutRtl 0x400000
#define WindowsWMFrameStyleExLeft 0
#define WindowsWMFrameStyleExLeftScrollBar 0x4000
#define WindowsWMFrameStyleExLtrReading 0
#define WindowsWMFrameStyleExMDIChild 64
#define WindowsWMFrameStyleExNoActivate 0x8000000
#define WindowsWMFrameStyleExNoInheritLayout 0x100000
#define WindowsWMFrameStyleExNoParentNotify 4
#define WindowsWMFrameStyleExOverlappedWindow 0x300
#define WindowsWMFrameStyleExPaletteWindow 0x188
#define WindowsWMFrameStyleExRight 0x1000
#define WindowsWMFrameStyleExRightScrollBar 0
#define WindowsWMFrameStyleExRtlReading 0x2000
#define WindowsWMFrameStyleExStaticEdge 0x20000
#define WindowsWMFrameStyleExToolWindow 128
#define WindowsWMFrameStyleExTopMost 8
#define WindowsWMFrameStyleExTransparent 32
#define WindowsWMFrameStyleExWindowEdge 256
#define WINDOWSWM_RAISE_ON_CLICK "_WINDOWSWM_RAISE_ON_CLICK"
#define WINDOWSWM_MOUSE_ACTIVATE "_WINDOWSWM_MOUSE_ACTIVATE"
#define WINDOWSWM_CLIENT_WINDOW "_WINDOWSWM_CLIENT_WINDOW"
#define WINDOWSWM_NATIVE_HWND "_WINDOWSWM_NATIVE_HWND"
#ifndef _WINDOWSWM_SERVER_
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came frome a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* window of event */
Time time; /* server timestamp when event happened */
int kind; /* subtype of event */
int arg;
int x;
int y;
int w;
int h;
} XWindowsWMNotifyEvent;
_XFUNCPROTOBEGIN
Bool XWindowsWMQueryExtension (Display *dpy, int *event_base, int *error_base);
Bool XWindowsWMQueryVersion (Display *dpy, int *majorVersion,
int *minorVersion, int *patchVersion);
Bool XWindowsWMDisableUpdate (Display *dpy, int screen);
Bool XWindowsWMReenableUpdate (Display *dpy, int screen);
Bool XWindowsWMSelectInput (Display *dpy, unsigned long mask);
Bool XWindowsWMSetFrontProcess (Display *dpy);
Bool XWindowsWMFrameGetRect (Display *dpy,
unsigned int frame_style,
unsigned int frame_style_ex,
unsigned int frame_rect,
short inner_x, short inner_y,
short inner_w, short inner_h,
short *ret_x, short *ret_y,
short *ret_w, short *ret_h);
Bool XWindowsWMFrameDraw (Display *dpy, int screen, Window window,
unsigned int frame_style,
unsigned int frame_style_ex,
short inner_x, short inner_y,
short inner_w, short inner_h);
Bool XWindowsWMFrameSetTitle (Display *dpy, int screen, Window window,
unsigned int title_length,
const char * title_bytes);
_XFUNCPROTOEND
#endif /* _WINDOWSWM_SERVER_ */
#endif /* _WINDOWSWM_H_ */

View File

@@ -0,0 +1,169 @@
/*
* WindowsWM extension is based on AppleWM extension
* Authors: Kensuke Matsuzaki
*/
/**************************************************************************
Copyright (c) 2002 Apple Computer, Inc.
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sub license, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
#ifndef _WINDOWSWMSTR_H_
#define _WINDOWSWMSTR_H_
#include <X11/extensions/windowswm.h>
#include <X11/X.h>
#include <X11/Xmd.h>
#define WINDOWSWMNAME "Windows-WM"
#define WINDOWS_WM_MAJOR_VERSION 1 /* current version numbers */
#define WINDOWS_WM_MINOR_VERSION 0
#define WINDOWS_WM_PATCH_VERSION 0
typedef struct _WindowsWMQueryVersion {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMQueryVersion */
CARD16 length B16;
} xWindowsWMQueryVersionReq;
#define sz_xWindowsWMQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of WM protocol */
CARD16 minorVersion B16; /* minor version of WM protocol */
CARD32 patchVersion B32; /* patch version of WM protocol */
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xWindowsWMQueryVersionReply;
#define sz_xWindowsWMQueryVersionReply 32
typedef struct _WindowsWMDisableUpdate {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMDisableUpdate */
CARD16 length B16;
CARD32 screen B32;
} xWindowsWMDisableUpdateReq;
#define sz_xWindowsWMDisableUpdateReq 8
typedef struct _WindowsWMReenableUpdate {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMReenableUpdate */
CARD16 length B16;
CARD32 screen B32;
} xWindowsWMReenableUpdateReq;
#define sz_xWindowsWMReenableUpdateReq 8
typedef struct _WindowsWMSelectInput {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMSelectInput */
CARD16 length B16;
CARD32 mask B32;
} xWindowsWMSelectInputReq;
#define sz_xWindowsWMSelectInputReq 8
typedef struct _WindowsWMNotify {
BYTE type; /* always eventBase + event type */
BYTE kind;
CARD16 sequenceNumber B16;
Window window B32;
Time time B32; /* time of change */
CARD16 pad1 B16;
CARD32 arg B32;
INT16 x B16;
INT16 y B16;
CARD16 w B16;
CARD16 h B16;
} xWindowsWMNotifyEvent;
#define sz_xWindowsWMNotifyEvent 28
typedef struct _WindowsWMSetFrontProcess {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMSetFrontProcess */
CARD16 length B16;
} xWindowsWMSetFrontProcessReq;
#define sz_xWindowsWMSetFrontProcessReq 4
typedef struct _WindowsWMFrameGetRect {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMFrameGetRect */
CARD16 length B16;
CARD32 frame_style B32;
CARD32 frame_style_ex B32;
CARD16 frame_rect B16;
INT16 ix B16;
INT16 iy B16;
CARD16 iw B16;
CARD16 ih B16;
CARD16 pad1 B16;
} xWindowsWMFrameGetRectReq;
#define sz_xWindowsWMFrameGetRectReq 24
typedef struct {
BYTE type; /* X_Reply */
BOOL pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 x B16;
INT16 y B16;
CARD16 w B16;
CARD16 h B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xWindowsWMFrameGetRectReply;
#define sz_xWindowsWMFrameGetRectReply 32
typedef struct _WindowsWMFrameDraw {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMFrameDraw */
CARD16 length B16;
CARD32 screen B32;
CARD32 window B32;
CARD32 frame_style B32;
CARD32 frame_style_ex B32;
INT16 ix B16;
INT16 iy B16;
CARD16 iw B16;
CARD16 ih B16;
} xWindowsWMFrameDrawReq;
#define sz_xWindowsWMFrameDrawReq 28
typedef struct _WindowsWMFrameSetTitle {
CARD8 reqType; /* always WMReqCode */
CARD8 wmReqType; /* always X_WMFrameSetTitle */
CARD16 length B16;
CARD32 screen B32;
CARD32 window B32;
CARD32 title_length B32;
} xWindowsWMFrameSetTitleReq;
#define sz_xWindowsWMFrameSetTitleReq 16
#endif /* _WINDOWSWMSTR_H_ */

View File

@@ -0,0 +1,110 @@
/*
Copyright 1993, 1994, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
#ifndef _XCMISCPROTO_H_
#define _XCMISCPROTO_H_
#define X_XCMiscGetVersion 0
#define X_XCMiscGetXIDRange 1
#define X_XCMiscGetXIDList 2
#define XCMiscNumberEvents 0
#define XCMiscNumberErrors 0
#define XCMiscMajorVersion 1
#define XCMiscMinorVersion 1
#define XCMiscExtensionName "XC-MISC"
typedef struct {
CARD8 reqType; /* always XCMiscCode */
CARD8 miscReqType; /* always X_XCMiscGetVersion */
CARD16 length B16;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
} xXCMiscGetVersionReq;
#define sz_xXCMiscGetVersionReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16;
CARD16 minorVersion B16;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xXCMiscGetVersionReply;
#define sz_xXCMiscGetVersionReply 32
typedef struct {
CARD8 reqType; /* always XCMiscCode */
CARD8 miscReqType; /* always X_XCMiscGetXIDRange */
CARD16 length B16;
} xXCMiscGetXIDRangeReq;
#define sz_xXCMiscGetXIDRangeReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 start_id B32;
CARD32 count B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xXCMiscGetXIDRangeReply;
#define sz_xXCMiscGetXIDRangeReply 32
typedef struct {
CARD8 reqType; /* always XCMiscCode */
CARD8 miscReqType; /* always X_XCMiscGetXIDList */
CARD16 length B16;
CARD32 count B32; /* number of IDs requested */
} xXCMiscGetXIDListReq;
#define sz_xXCMiscGetXIDListReq 8
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad0;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 count B32; /* number of IDs requested */
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xXCMiscGetXIDListReply;
#define sz_xXCMiscGetXIDListReply 32
#endif /* _XCMISCPROTO_H_ */

View File

@@ -0,0 +1,3 @@
#warning "xcmiscstr.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/xcmiscproto.h> for the protocol defines."
#include <X11/extensions/xcmiscproto.h>

View File

@@ -0,0 +1,20 @@
/*
* Declarations for the BIGFONT extension.
*
* Copyright (c) 1999-2000 Bruno Haible
* Copyright (c) 1999-2000 The XFree86 Project, Inc.
*/
/* THIS IS NOT AN X CONSORTIUM STANDARD */
#ifndef _XF86BIGFONT_H_
#define _XF86BIGFONT_H_
#define X_XF86BigfontQueryVersion 0
#define X_XF86BigfontQueryFont 1
#define XF86BigfontNumberEvents 0
#define XF86BigfontNumberErrors 0
#endif /* _XF86BIGFONT_H_ */

View File

@@ -0,0 +1,92 @@
/*
* Declarations of request structures for the BIGFONT extension.
*
* Copyright (c) 1999-2000 Bruno Haible
* Copyright (c) 1999-2000 The XFree86 Project, Inc.
*/
/* THIS IS NOT AN X CONSORTIUM STANDARD */
#ifndef _XF86BIGFPROTO_H_
#define _XF86BIGFPROTO_H_
#include <X11/extensions/xf86bigfont.h>
#define XF86BIGFONTNAME "XFree86-Bigfont"
#define XF86BIGFONT_MAJOR_VERSION 1 /* current version numbers */
#define XF86BIGFONT_MINOR_VERSION 1
typedef struct _XF86BigfontQueryVersion {
CARD8 reqType; /* always XF86BigfontReqCode */
CARD8 xf86bigfontReqType; /* always X_XF86BigfontQueryVersion */
CARD16 length B16;
} xXF86BigfontQueryVersionReq;
#define sz_xXF86BigfontQueryVersionReq 4
typedef struct {
BYTE type; /* X_Reply */
CARD8 capabilities;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD16 majorVersion B16; /* major version of XFree86-Bigfont */
CARD16 minorVersion B16; /* minor version of XFree86-Bigfont */
CARD32 uid B32;
CARD32 gid B32;
CARD32 signature B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
} xXF86BigfontQueryVersionReply;
#define sz_xXF86BigfontQueryVersionReply 32
/* Bit masks that can be set in the capabilities */
#define XF86Bigfont_CAP_LocalShm 1
typedef struct _XF86BigfontQueryFont {
CARD8 reqType; /* always XF86BigfontReqCode */
CARD8 xf86bigfontReqType; /* always X_XF86BigfontQueryFont */
CARD16 length B16;
CARD32 id B32;
CARD32 flags B32;
} xXF86BigfontQueryFontReq;
#define sz_xXF86BigfontQueryFontReq 12
typedef struct {
BYTE type; /* X_Reply */
CARD8 pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
xCharInfo minBounds;
#ifndef WORD64
CARD32 walign1 B32;
#endif
xCharInfo maxBounds;
#ifndef WORD64
CARD32 walign2 B32;
#endif
CARD16 minCharOrByte2 B16;
CARD16 maxCharOrByte2 B16;
CARD16 defaultChar B16;
CARD16 nFontProps B16;
CARD8 drawDirection;
CARD8 minByte1;
CARD8 maxByte1;
BOOL allCharsExist;
INT16 fontAscent B16;
INT16 fontDescent B16;
CARD32 nCharInfos B32;
CARD32 nUniqCharInfos B32;
CARD32 shmid B32;
CARD32 shmsegoffset B32;
/* followed by nFontProps xFontProp structures */
/* and if nCharInfos > 0 && shmid == -1,
followed by nUniqCharInfos xCharInfo structures
and then by nCharInfos CARD16 indices (each >= 0, < nUniqCharInfos)
and then, if nCharInfos is odd, one more CARD16 for padding. */
} xXF86BigfontQueryFontReply;
#define sz_xXF86BigfontQueryFontReply 72
/* Bit masks that can be set in the flags */
#define XF86Bigfont_FLAGS_Shm 1
#endif /* _XF86BIGFPROTO_H_ */

View File

@@ -0,0 +1,3 @@
#warning "xf86bigfstr.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/xf86bigfproto.h> for the protocol defines."
#include <X11/extensions/xf86bigfproto.h>

View File

@@ -0,0 +1,13 @@
#ifdef _XF86DGA_SERVER_
#warning "xf86dga.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/xf86dgaconst.h> instead."
#include <X11/extensions/xf86dgaconst.h>
#else
#warning "xf86dga.h is obsolete and may be removed in the future."
#warning "include <X11/extensions/Xxf86dga.h> instead."
#include <X11/extensions/Xxf86dga.h>
#endif

View File

@@ -0,0 +1,36 @@
/*
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
************************************************************************/
#ifndef _XF86DGA1CONST_H_
#define _XF86DGA1CONST_H_
#define X_XF86DGAQueryVersion 0
#define X_XF86DGAGetVideoLL 1
#define X_XF86DGADirectVideo 2
#define X_XF86DGAGetViewPortSize 3
#define X_XF86DGASetViewPort 4
#define X_XF86DGAGetVidPage 5
#define X_XF86DGASetVidPage 6
#define X_XF86DGAInstallColormap 7
#define X_XF86DGAQueryDirectVideo 8
#define X_XF86DGAViewPortChanged 9
#define XF86DGADirectPresent 0x0001
#define XF86DGADirectGraphics 0x0002
#define XF86DGADirectMouse 0x0004
#define XF86DGADirectKeyb 0x0008
#define XF86DGAHasColormap 0x0100
#define XF86DGADirectColormap 0x0200
#endif /* _XF86DGA1CONST_H_ */

Some files were not shown because too many files have changed in this diff Show More