# This file contains the list of X11 calls that Wine uses and which must be
# protected by a critical section for multi-threaded use.
#
# To add a new call, put it on this list and run tools/make_X11wrappers.
# Also read the comments at the top of tools/make_X11wrappers.
#
XActivateScreenSaver
XAddPixel
XAllocClassHint
XAllocColor
XAllocColorCells
XAllocSizeHints
XAllocWMHints
XBell
XChangeGC
XChangeKeyboardControl
XChangeProperty
XChangeWindowAttributes
XCheckTypedEvent
XCheckTypedWindowEvent
XCheckWindowEvent
XClipBox
XConvertSelection
XCopyArea
XCopyColormapAndFree
XCopyPlane
XCreateBitmapFromData
XCreateColormap
XCreateFontCursor
XCreateGC
XCreateImage
XCreatePixmap
XCreatePixmapCursor
XCreateRegion
XCreateWindow
XDefineCursor
XDeleteContext
XDeleteProperty
XDestroyImage
XDestroyRegion
XDestroyWindow
XDisplayKeycodes
XDrawArc
XDrawLine
XDrawLines
XDrawPoint
XDrawRectangle
XDrawSegments
XDrawString16
XDrawText16
XEmptyRegion
XEqualRegion
XFillArc
XFillPolygon
XFillRectangle
XFindContext
XFlush
XFree
XFreeColormap
XFreeColors
XFreeCursor
XFreeFont
XFreeFontNames
XFreeGC
XFreeModifiermap
XFreePixmap
XGetAtomName
XGetFontProperty
XGetGeometry
XGetImage
XGetInputFocus
XGetKeyboardControl
XGetKeyboardMapping
XGetModifierMapping
XGetScreenSaver
XGetSelectionOwner
XGetSubImage
XGetVisualInfo
XGetWMHints
XGetWMSizeHints
XGetWindowAttributes
XGetWindowProperty
XGrabKeyboard
XGrabPointer
XGrabServer
XIconifyWindow
XInitThreads
XInstallColormap
XInternAtom
XIntersectRegion
XKeycodeToKeysym
XKeysymToKeycode
XKeysymToString
XListDepths
XListFonts
XListPixmapFormats
XLoadQueryFont
XLookupKeysym
XLookupString
XMapWindow
XNextEvent
XOffsetRegion
XOpenDisplay
XOpenIM
XParseGeometry
XPending
XPointInRegion
XPolygonRegion
XPutBackEvent
XPutImage
XQueryColor
XQueryColors
XQueryKeymap
XQueryPointer
XQueryTree
XReconfigureWMWindow
XRectInRegion
XRefreshKeyboardMapping
XResetScreenSaver
XResourceManagerString
XRestackWindows
XSaveContext
XSendEvent
XSetArcMode
XSetBackground
XSetClassHint
XSetClipMask
XSetClipOrigin
XSetClipRectangles
XSetDashes
XSetFillStyle
XSetFont
XSetForeground
XSetFunction
XSetGraphicsExposures
XSetIconName
XSetInputFocus
XSetLineAttributes
XSetRegion
XSetScreenSaver
XSetSelectionOwner
XSetSubwindowMode
XSetTransientForHint
XSetWindowColormap
XSetWMHints
XSetWMProperties
XSetWMProtocols
XSetWMSizeHints
XShapeCombineMask
XShapeCombineRectangles
XShmAttach
XShmCreateImage
XShmCreatePixmap
XShmDetach
XShmGetImage
XShmPixmapFormat
XShmPutImage
XShmQueryExtension
XShmQueryVersion
XShrinkRegion
XStoreColor
XStoreName
XStringListToTextProperty
XSubImage
XSubtractRegion
XSync
XSynchronize
XTextExtents16
XTextWidth16
XUngrabKeyboard
XUngrabPointer
XUngrabServer
XUninstallColormap
XUnionRectWithRegion
XUnionRegion
XUniqueContext
XUnmapWindow
XVisualIDFromVisual
XWarpPointer
XXorRegion
XrmGetFileDatabase
XrmGetResource
XrmGetStringDatabase
XrmInitialize
XrmMergeDatabases
XrmParseCommand
XrmUniqueQuark
_XInitImageFuncPtrs
XF86DGAQueryExtension
XF86DGASetViewPort
XF86DGAInstallColormap
XF86DGAViewPortChanged
XF86DGADirectVideo
XF86DGAQueryVersion
XF86DGAQueryDirectVideo
XF86DGAGetVideo
XF86DGAGetViewPortSize
XF86VidModeQueryVersion
XF86VidModeQueryExtension
XF86VidModeGetModeLine
XF86VidModeGetAllModeLines
XF86VidModeAddModeLine
XF86VidModeDeleteModeLine
XF86VidModeModModeLine
XF86VidModeValidateModeLine
XF86VidModeSwitchMode
XF86VidModeSwitchToMode
XF86VidModeLockModeSwitch
XF86VidModeGetMonitor
XF86VidModeGetViewPort
XF86VidModeSetViewPort
XDGAQueryExtension
XDGAQueryVersion
XDGAQueryModes
XDGASetMode
XDGAOpenFramebuffer
XDGACloseFramebuffer
XDGASetViewport
XDGAInstallColormap
XDGACreateColormap
XDGASelectInput
XDGAFillRectangle
XDGACopyArea
XDGACopyTransparentArea
XDGAGetViewportStatus
XDGASync
XDGASetClientVersion
XDGAChangePixmapMode
XDGAKeyEventToXKeyEvent
XvQueryExtension
XvQueryAdaptors
XvQueryEncodings
XvPutVideo
XvPutStill
XvGetVideo
XvGetStill
XvStopVideo
XvGrabPort
XvUngrabPort
XvSelectVideoNotify
XvSelectPortNotify
XvSetPortAttribute
XvGetPortAttribute
XvQueryBestSize
XvQueryPortAttributes
XvFreeAdaptorInfo
XvFreeEncodingInfo
XvListImageFormats
XvCreateImage
XvPutImage
XvShmPutImage
XvShmCreateImage
XRenderAddGlyphs
XRenderCompositeString16
XRenderCompositeString32
XRenderCompositeString8
XRenderCreateGlyphSet
XRenderCreatePicture
XRenderFillRectangle
XRenderFindFormat
XRenderFindVisualFormat
XRenderFreeGlyphSet
XRenderFreePicture
XRenderQueryExtension
XRenderSetPictureClipRectangles
