//
// Created by Eugeny Grishul
//
// See license at http://bamelg.com/license.txt
//

using System;
using System.Runtime.InteropServices;

namespace Platform.X {
	[ExternLibrary( Image = "/usr/lib64/libX11.so" )]
	public static partial struct XApi {
		public extern static int _Xmblen( sbyte* str, int len );
		public extern static int _Xmbtowc( char* p0, sbyte* p1, int p2 );
		public extern static int _Xwctomb( sbyte* p0, char p1 );
		public extern static int XActivateScreenSaver( Display* p0 );
		public extern static int XAddConnectionWatch( Display* p0, Functors.Action<Display*, sbyte*, int, int, sbyte**> p1, sbyte* p2 );
		public extern static XExtCodes* XAddExtension( Display* p0 );
		public extern static int XAddHost( Display* p0, XHostAddress* p1 );
		public extern static int XAddHosts( Display* p0, XHostAddress* p1, int p2 );
		public extern static int XAddToExtensionList( XExtData** p0, XExtData* p1 );
		public extern static int XAddToSaveSet( Display* p0, Window p1 );
		public extern static int XAllocColor( Display* p0, Colormap p1, XColor* p2 );
		public extern static int XAllocColorCells( Display* p0, Colormap p1, int p2, uintptr* p3, uint p4, uintptr* p5, uint p6 );
		public extern static int XAllocColorPlanes( Display* p0, Colormap p1, int p2, uintptr* p3, int p4, int p5, int p6, int p7, uintptr* p8, uintptr* p9, uintptr* p10 );
		public extern static int XAllocNamedColor( Display* p0, Colormap p1, sbyte* p2, XColor* p3, XColor* p4 );
		public extern static int XAllowEvents( Display* p0, int p1, Time p2 );
		public extern static uintptr XAllPlanes();
		public extern static int XAutoRepeatOff( Display* p0 );
		public extern static int XAutoRepeatOn( Display* p0 );
		public extern static sbyte* XBaseFontNameListOfFontSet( XOC* p0 );
		public extern static int XBell( Display* p0, int p1 );
		public extern static int XBitmapBitOrder( Display* p0 );
		public extern static int XBitmapPad( Display* p0 );
		public extern static int XBitmapUnit( Display* p0 );
		public extern static uintptr XBlackPixel( Display* p0, int p1 );
		public extern static uintptr XBlackPixelOfScreen( Screen* p0 );
		public extern static int XCellsOfScreen( Screen* p0 );
		public extern static int XChangeActivePointerGrab( Display* p0, uint p1, Cursor p2, Time p3 );
		public extern static int XChangeGC( Display* p0, GC* p1, uintptr p2, XGCValues* p3 );
		public extern static int XChangeKeyboardControl( Display* p0, uintptr p1, XKeyboardControl* p2 );
		public extern static int XChangeKeyboardMapping( Display* p0, int p1, int p2, KeySym* p3, int p4 );
		public extern static int XChangePointerControl( Display* p0, int p1, int p2, int p3, int p4, int p5 );
		public extern static int XChangeProperty( Display* p0, Window p1, Atom p2, Atom p3, int p4, int p5, byte* p6, int p7 );
		public extern static int XChangeSaveSet( Display* p0, Window p1, int p2 );
		public extern static int XChangeWindowAttributes( Display* p0, Window p1, uintptr p2, XSetWindowAttributes* p3 );
		public extern static int XCheckIfEvent( Display* p0, XEvent* p1, Functors.Func<Display*, XEvent*, sbyte*, int> p2, sbyte* p3 );
		public extern static int XCheckMaskEvent( Display* p0, intptr p1, XEvent* p2 );
		public extern static int XCheckTypedEvent( Display* p0, int p1, XEvent* p2 );
		public extern static int XCheckTypedWindowEvent( Display* p0, Window p1, int p2, XEvent* p3 );
		public extern static int XCheckWindowEvent( Display* p0, Window p1, intptr p2, XEvent* p3 );
		public extern static int XCirculateSubwindows( Display* p0, Window p1, int p2 );
		public extern static int XCirculateSubwindowsDown( Display* p0, Window p1 );
		public extern static int XCirculateSubwindowsUp( Display* p0, Window p1 );
		public extern static int XClearArea( Display* p0, Window p1, int p2, int p3, uint p4, uint p5, int p6 );
		public extern static int XClearWindow( Display* p0, Window p1 );
		public extern static int XCloseDisplay( Display* p0 );
		public extern static int XCloseIM( XIM* p0 );
		public extern static int XCloseOM( XOM* p0 );
		public extern static int XConfigureWindow( Display* p0, Window p1, uint p2, XWindowChanges* p3 );
		public extern static int XConnectionNumber( Display* p0 );
		public extern static int XContextDependentDrawing( XOC* p0 );
		public extern static int XContextualDrawing( XOC* p0 );
		public extern static int XConvertSelection( Display* p0, Atom p1, Atom p2, Atom p3, Window p4, Time p5 );
		public extern static int XCopyArea( Display* p0, Drawable p1, Drawable p2, GC* p3, int p4, int p5, uint p6, uint p7, int p8, int p9 );
		public extern static Colormap XCopyColormapAndFree( Display* p0, Colormap p1 );
		public extern static int XCopyGC( Display* p0, GC* p1, uintptr p2, GC* p3 );
		public extern static int XCopyPlane( Display* p0, Drawable p1, Drawable p2, GC* p3, int p4, int p5, uint p6, uint p7, int p8, int p9, uintptr p10 );
		public extern static Pixmap XCreateBitmapFromData( Display* p0, Drawable p1, sbyte* p2, uint p3, uint p4 );
		public extern static Colormap XCreateColormap( Display* p0, Window p1, Visual* p2, int p3 );
		public extern static Cursor XCreateFontCursor( Display* p0, uint p1 );
		public extern static XOC* XCreateFontSet( Display* p0, sbyte* p1, sbyte*** p2, int* p3, sbyte** p4 );
		public extern static GC* XCreateGC( Display* p0, Drawable p1, uintptr p2, XGCValues* p3 );
		public extern static Cursor XCreateGlyphCursor( Display* p0, Font p1, Font p2, uint p3, uint p4, XColor* p5, XColor* p6 );
		public extern static XImage* XCreateImage( Display* p0, Visual* p1, uint p2, int p3, int p4, sbyte* p5, uint p6, uint p7, int p8, int p9 );
		public extern static Pixmap XCreatePixmap( Display* p0, Drawable p1, uint p2, uint p3, uint p4 );
		public extern static Cursor XCreatePixmapCursor( Display* p0, Pixmap p1, Pixmap p2, XColor* p3, XColor* p4, uint p5, uint p6 );
		public extern static Pixmap XCreatePixmapFromBitmapData( Display* p0, Drawable p1, sbyte* p2, uint p3, uint p4, uintptr p5, uintptr p6, uint p7 );
		public extern static Window XCreateSimpleWindow( Display* p0, Window p1, int p2, int p3, uint p4, uint p5, uint p6, uintptr p7, uintptr p8 );
		public extern static Window XCreateWindow( Display* p0, Window p1, int p2, int p3, uint p4, uint p5, uint p6, int p7, uint p8, Visual* p9, uintptr p10, XSetWindowAttributes* p11 );
		public extern static Colormap XDefaultColormap( Display* p0, int p1 );
		public extern static Colormap XDefaultColormapOfScreen( Screen* p0 );
		public extern static int XDefaultDepth( Display* p0, int p1 );
		public extern static int XDefaultDepthOfScreen( Screen* p0 );
		public extern static GC* XDefaultGC( Display* p0, int p1 );
		public extern static GC* XDefaultGCOfScreen( Screen* p0 );
		public extern static Window XDefaultRootWindow( Display* p0 );
		public extern static int XDefaultScreen( Display* p0 );
		public extern static Screen* XDefaultScreenOfDisplay( Display* p0 );
		public extern static Visual* XDefaultVisual( Display* p0, int p1 );
		public extern static Visual* XDefaultVisualOfScreen( Screen* p0 );
		public extern static int XDefineCursor( Display* p0, Window p1, Cursor p2 );
		public extern static XModifierKeymap* XDeleteModifiermapEntry( XModifierKeymap* p0, byte p1, int p2 );
		public extern static int XDeleteProperty( Display* p0, Window p1, Atom p2 );
		public extern static void XDestroyIC( XIC* p0 );
		public extern static void XDestroyOC( XOC* p0 );
		public extern static int XDestroySubwindows( Display* p0, Window p1 );
		public extern static int XDestroyWindow( Display* p0, Window p1 );
		public extern static int XDirectionalDependentDrawing( XOC* p0 );
		public extern static int XDisableAccessControl( Display* p0 );
		public extern static int XDisplayCells( Display* p0, int p1 );
		public extern static int XDisplayHeight( Display* p0, int p1 );
		public extern static int XDisplayHeightMM( Display* p0, int p1 );
		public extern static int XDisplayKeycodes( Display* p0, int* p1, int* p2 );
		public extern static uintptr XDisplayMotionBufferSize( Display* p0 );
		public extern static sbyte* XDisplayName( sbyte* p0 );
		public extern static Display* XDisplayOfIM( XIM* p0 );
		public extern static Display* XDisplayOfOM( XOM* p0 );
		public extern static Display* XDisplayOfScreen( Screen* p0 );
		public extern static int XDisplayPlanes( Display* p0, int p1 );
		public extern static sbyte* XDisplayString( Display* p0 );
		public extern static int XDisplayWidth( Display* p0, int p1 );
		public extern static int XDisplayWidthMM( Display* p0, int p1 );
		public extern static int XDoesBackingStore( Screen* p0 );
		public extern static int XDoesSaveUnders( Screen* p0 );
		public extern static int XDrawArc( Display* p0, Drawable p1, GC* p2, int p3, int p4, uint p5, uint p6, int p7, int p8 );
		public extern static int XDrawArcs( Display* p0, Drawable p1, GC* p2, XArc* p3, int p4 );
		public extern static int XDrawImageString( Display* p0, Drawable p1, GC* p2, int p3, int p4, sbyte* p5, int p6 );
		public extern static int XDrawImageString16( Display* p0, Drawable p1, GC* p2, int p3, int p4, XChar2b* p5, int p6 );
		public extern static int XDrawLine( Display* p0, Drawable p1, GC* p2, int p3, int p4, int p5, int p6 );
		public extern static int XDrawLines( Display* p0, Drawable p1, GC* p2, XPoint* p3, int p4, int p5 );
		public extern static int XDrawPoint( Display* p0, Drawable p1, GC* p2, int p3, int p4 );
		public extern static int XDrawPoints( Display* p0, Drawable p1, GC* p2, XPoint* p3, int p4, int p5 );
		public extern static int XDrawRectangle( Display* p0, Drawable p1, GC* p2, int p3, int p4, uint p5, uint p6 );
		public extern static int XDrawRectangles( Display* p0, Drawable p1, GC* p2, XRectangle* p3, int p4 );
		public extern static int XDrawSegments( Display* p0, Drawable p1, GC* p2, XSegment* p3, int p4 );
		public extern static int XDrawString( Display* p0, Drawable p1, GC* p2, int p3, int p4, sbyte* p5, int p6 );
		public extern static int XDrawString16( Display* p0, Drawable p1, GC* p2, int p3, int p4, XChar2b* p5, int p6 );
		public extern static int XDrawText( Display* p0, Drawable p1, GC* p2, int p3, int p4, XTextItem* p5, int p6 );
		public extern static int XDrawText16( Display* p0, Drawable p1, GC* p2, int p3, int p4, XTextItem16* p5, int p6 );
		public extern static XExtData** XEHeadOfExtensionList( XEDataObject p0 );
		public extern static int XEnableAccessControl( Display* p0 );
		public extern static intptr XEventMaskOfScreen( Screen* p0 );
		public extern static int XEventsQueued( Display* p0, int p1 );
		public extern static intptr XExtendedMaxRequestSize( Display* p0 );
		public extern static XFontSetExtents* XExtentsOfFontSet( XOC* p0 );
		public extern static sbyte* XFetchBuffer( Display* p0, int* p1, int p2 );
		public extern static sbyte* XFetchBytes( Display* p0, int* p1 );
		public extern static int XFetchName( Display* p0, Window p1, sbyte** p2 );
		public extern static int XFillArc( Display* p0, Drawable p1, GC* p2, int p3, int p4, uint p5, uint p6, int p7, int p8 );
		public extern static int XFillArcs( Display* p0, Drawable p1, GC* p2, XArc* p3, int p4 );
		public extern static int XFillPolygon( Display* p0, Drawable p1, GC* p2, XPoint* p3, int p4, int p5, int p6 );
		public extern static int XFillRectangle( Display* p0, Drawable p1, GC* p2, int p3, int p4, uint p5, uint p6 );
		public extern static int XFillRectangles( Display* p0, Drawable p1, GC* p2, XRectangle* p3, int p4 );
		public extern static int XFilterEvent( XEvent* p0, Window p1 );
		public extern static XExtData* XFindOnExtensionList( XExtData** p0, int p1 );
		public extern static int XFlush( Display* p0 );
		public extern static void XFlushGC( Display* p0, GC* p1 );
		public extern static int XFontsOfFontSet( XOC* p0, XFontStruct*** p1, sbyte*** p2 );
		public extern static int XForceScreenSaver( Display* p0, int p1 );
		public extern static int XFree( void* p0 );
		public extern static int XFreeColormap( Display* p0, Colormap p1 );
		public extern static int XFreeColors( Display* p0, Colormap p1, uintptr* p2, int p3, uintptr p4 );
		public extern static int XFreeCursor( Display* p0, Cursor p1 );
		public extern static void XFreeEventData( Display* p0, XGenericEventCookie* p1 );
		public extern static int XFreeExtensionList( sbyte** p0 );
		public extern static int XFreeFont( Display* p0, XFontStruct* p1 );
		public extern static int XFreeFontInfo( sbyte** p0, XFontStruct* p1, int p2 );
		public extern static int XFreeFontNames( sbyte** p0 );
		public extern static int XFreeFontPath( sbyte** p0 );
		public extern static void XFreeFontSet( Display* p0, XOC* p1 );
		public extern static int XFreeGC( Display* p0, GC* p1 );
		public extern static int XFreeModifiermap( XModifierKeymap* p0 );
		public extern static int XFreePixmap( Display* p0, Pixmap p1 );
		public extern static void XFreeStringList( sbyte** p0 );
		public extern static GContext XGContextFromGC( GC* p0 );
		public extern static int XGeometry( Display* p0, int p1, sbyte* p2, sbyte* p3, uint p4, uint p5, uint p6, int p7, int p8, int* p9, int* p10, int* p11, int* p12 );
		public extern static sbyte* XGetAtomName( Display* p0, Atom p1 );
		public extern static int XGetAtomNames( Display* p0, Atom* p1, int p2, sbyte** p3 );
		public extern static int XGetCommand( Display* p0, Window p1, sbyte*** p2, int* p3 );
		public extern static sbyte* XGetDefault( Display* p0, sbyte* p1, sbyte* p2 );
		public extern static int XGetErrorDatabaseText( Display* p0, sbyte* p1, sbyte* p2, sbyte* p3, sbyte* p4, int p5 );
		public extern static int XGetErrorText( Display* p0, int p1, sbyte* p2, int p3 );
		public extern static int XGetEventData( Display* p0, XGenericEventCookie* p1 );
		public extern static sbyte** XGetFontPath( Display* p0, int* p1 );
		public extern static int XGetFontProperty( XFontStruct* p0, Atom p1, uintptr* p2 );
		public extern static int XGetGCValues( Display* p0, GC* p1, uintptr p2, XGCValues* p3 );
		public extern static int XGetGeometry( Display* p0, Drawable p1, Window* p2, int* p3, int* p4, uint* p5, uint* p6, uint* p7, uint* p8 );
		public extern static int XGetIconName( Display* p0, Window p1, sbyte** p2 );
		public extern static XImage* XGetImage( Display* p0, Drawable p1, int p2, int p3, uint p4, uint p5, uintptr p6, int p7 );
		public extern static int XGetInputFocus( Display* p0, Window* p1, int* p2 );
		public extern static int XGetKeyboardControl( Display* p0, XKeyboardState* p1 );
		public extern static KeySym* XGetKeyboardMapping( Display* p0, byte p1, int p2, int* p3 );
		public extern static XModifierKeymap* XGetModifierMapping( Display* p0 );
		public extern static XTimeCoord* XGetMotionEvents( Display* p0, Window p1, Time p2, Time p3, int* p4 );
		public extern static int XGetPointerControl( Display* p0, int* p1, int* p2, int* p3 );
		public extern static int XGetPointerMapping( Display* p0, byte* p1, int p2 );
		public extern static int XGetScreenSaver( Display* p0, int* p1, int* p2, int* p3, int* p4 );
		public extern static Window XGetSelectionOwner( Display* p0, Atom p1 );
		public extern static XImage* XGetSubImage( Display* p0, Drawable p1, int p2, int p3, uint p4, uint p5, uintptr p6, int p7, XImage* p8, int p9, int p10 );
		public extern static int XGetTransientForHint( Display* p0, Window p1, Window* p2 );
		public extern static int XGetWindowAttributes( Display* p0, Window p1, XWindowAttributes* p2 );
		public extern static int XGetWindowProperty( Display* p0, Window p1, Atom p2, intptr p3, intptr p4, int p5, Atom p6, Atom* p7, int* p8, uintptr* p9, uintptr* p10, byte** p11 );
		public extern static int XGetWMColormapWindows( Display* p0, Window p1, Window** p2, int* p3 );
		public extern static int XGetWMProtocols( Display* p0, Window p1, Atom** p2, int* p3 );
		public extern static int XGrabButton( Display* p0, uint p1, uint p2, Window p3, int p4, uint p5, int p6, int p7, Window p8, Cursor p9 );
		public extern static int XGrabKey( Display* p0, int p1, uint p2, Window p3, int p4, int p5, int p6 );
		public extern static int XGrabKeyboard( Display* p0, Window p1, int p2, int p3, int p4, Time p5 );
		public extern static int XGrabPointer( Display* p0, Window p1, int p2, uint p3, int p4, int p5, Window p6, Cursor p7, Time p8 );
		public extern static int XGrabServer( Display* p0 );
		public extern static int XHeightMMOfScreen( Screen* p0 );
		public extern static int XHeightOfScreen( Screen* p0 );
		public extern static int XIconifyWindow( Display* p0, Window p1, int p2 );
		public extern static int XIfEvent( Display* p0, XEvent* p1, Functors.Func<Display*, XEvent*, sbyte*, int> p2, sbyte* p3 );
		public extern static int XImageByteOrder( Display* p0 );
		public extern static XIM* XIMOfIC( XIC* p0 );
		public extern static XExtCodes* XInitExtension( Display* p0, sbyte* p1 );
		public extern static int XInitImage( XImage* p0 );
		public extern static int XInitThreads();
		public extern static XModifierKeymap* XInsertModifiermapEntry( XModifierKeymap* p0, byte p1, int p2 );
		public extern static int XInstallColormap( Display* p0, Colormap p1 );
		public extern static int XInternalConnectionNumbers( Display* p0, int** p1, int* p2 );
		public extern static Atom XInternAtom( Display* p0, sbyte* p1, int p2 );
		public extern static int XInternAtoms( Display* p0, sbyte** p1, int p2, int p3, Atom* p4 );
		public extern static KeySym XKeycodeToKeysym( Display* p0, byte p1, int p2 );
		public extern static byte XKeysymToKeycode( Display* p0, KeySym p1 );
		public extern static sbyte* XKeysymToString( KeySym p0 );
		public extern static int XKillClient( Display* p0, XID p1 );
		public extern static uintptr XLastKnownRequestProcessed( Display* p0 );
		public extern static int* XListDepths( Display* p0, int p1, int* p2 );
		public extern static sbyte** XListExtensions( Display* p0, int* p1 );
		public extern static sbyte** XListFonts( Display* p0, sbyte* p1, int p2, int* p3 );
		public extern static sbyte** XListFontsWithInfo( Display* p0, sbyte* p1, int p2, int* p3, XFontStruct** p4 );
		public extern static XHostAddress* XListHosts( Display* p0, int* p1, int* p2 );
		public extern static Colormap* XListInstalledColormaps( Display* p0, Window p1, int* p2 );
		public extern static XPixmapFormatValues* XListPixmapFormats( Display* p0, int* p1 );
		public extern static Atom* XListProperties( Display* p0, Window p1, int* p2 );
		public extern static Font XLoadFont( Display* p0, sbyte* p1 );
		public extern static XFontStruct* XLoadQueryFont( Display* p0, sbyte* p1 );
		public extern static sbyte* XLocaleOfFontSet( XOC* p0 );
		public extern static sbyte* XLocaleOfIM( XIM* p0 );
		public extern static sbyte* XLocaleOfOM( XOM* p0 );
		public extern static void XLockDisplay( Display* p0 );
		public extern static int XLookupColor( Display* p0, Colormap p1, sbyte* p2, XColor* p3, XColor* p4 );
		public extern static KeySym XLookupKeysym( XKeyEvent* p0, int p1 );
		public extern static int XLowerWindow( Display* p0, Window p1 );
		public extern static int XMapRaised( Display* p0, Window p1 );
		public extern static int XMapSubwindows( Display* p0, Window p1 );
		public extern static int XMapWindow( Display* p0, Window p1 );
		public extern static int XMaskEvent( Display* p0, intptr p1, XEvent* p2 );
		public extern static int XMaxCmapsOfScreen( Screen* p0 );
		public extern static intptr XMaxRequestSize( Display* p0 );
		public extern static void XmbDrawImageString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, sbyte* p6, int p7 );
		public extern static void XmbDrawString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, sbyte* p6, int p7 );
		public extern static void XmbDrawText( Display* p0, Drawable p1, GC* p2, int p3, int p4, XmbTextItem* p5, int p6 );
		public extern static int XmbLookupString( XIC* p0, XKeyEvent* p1, sbyte* p2, int p3, KeySym* p4, int* p5 );
		public extern static sbyte* XmbResetIC( XIC* p0 );
		public extern static int XmbTextEscapement( XOC* p0, sbyte* p1, int p2 );
		public extern static int XmbTextExtents( XOC* p0, sbyte* p1, int p2, XRectangle* p3, XRectangle* p4 );
		public extern static int XmbTextPerCharExtents( XOC* p0, sbyte* p1, int p2, XRectangle* p3, XRectangle* p4, int p5, int* p6, XRectangle* p7, XRectangle* p8 );
		public extern static int XMinCmapsOfScreen( Screen* p0 );
		public extern static int XMoveResizeWindow( Display* p0, Window p1, int p2, int p3, uint p4, uint p5 );
		public extern static int XMoveWindow( Display* p0, Window p1, int p2, int p3 );
		public extern static XModifierKeymap* XNewModifiermap( int p0 );
		public extern static int XNextEvent( Display* p0, XEvent* p1 );
		public extern static uintptr XNextRequest( Display* p0 );
		public extern static int XNoOp( Display* p0 );
		public extern static XOM* XOMOfOC( XOC* p0 );
		public extern static Display* XOpenDisplay( CUtf8String p0 );
		public extern static XIM* XOpenIM( Display* p0, _XrmHashBucketRec* p1, sbyte* p2, sbyte* p3 );
		public extern static XOM* XOpenOM( Display* p0, _XrmHashBucketRec* p1, sbyte* p2, sbyte* p3 );
		public extern static int XParseColor( Display* p0, Colormap p1, sbyte* p2, XColor* p3 );
		public extern static int XParseGeometry( sbyte* p0, int* p1, int* p2, uint* p3, uint* p4 );
		public extern static int XPeekEvent( Display* p0, XEvent* p1 );
		public extern static int XPeekIfEvent( Display* p0, XEvent* p1, Functors.Func<Display*, XEvent*, sbyte*, int> p2, sbyte* p3 );
		public extern static int XPending( Display* p0 );
		public extern static int XPlanesOfScreen( Screen* p0 );
		public extern static void XProcessInternalConnection( Display* p0, int p1 );
		public extern static int XProtocolRevision( Display* p0 );
		public extern static int XProtocolVersion( Display* p0 );
		public extern static int XPutBackEvent( Display* p0, XEvent* p1 );
		public extern static int XPutImage( Display* p0, Drawable p1, GC* p2, XImage* p3, int p4, int p5, int p6, int p7, uint p8, uint p9 );
		public extern static int XQLength( Display* p0 );
		public extern static int XQueryBestCursor( Display* p0, Drawable p1, uint p2, uint p3, uint* p4, uint* p5 );
		public extern static int XQueryBestSize( Display* p0, int p1, Drawable p2, uint p3, uint p4, uint* p5, uint* p6 );
		public extern static int XQueryBestStipple( Display* p0, Drawable p1, uint p2, uint p3, uint* p4, uint* p5 );
		public extern static int XQueryBestTile( Display* p0, Drawable p1, uint p2, uint p3, uint* p4, uint* p5 );
		public extern static int XQueryColor( Display* p0, Colormap p1, XColor* p2 );
		public extern static int XQueryColors( Display* p0, Colormap p1, XColor* p2, int p3 );
		public extern static int XQueryExtension( Display* p0, sbyte* p1, int* p2, int* p3, int* p4 );
		public extern static XFontStruct* XQueryFont( Display* p0, XID p1 );
		public extern static int XQueryKeymap( Display* p0, sbyte* p1 );
		public extern static int XQueryPointer( Display* p0, Window p1, Window* p2, Window* p3, int* p4, int* p5, int* p6, int* p7, uint* p8 );
		public extern static int XQueryTextExtents( Display* p0, XID p1, sbyte* p2, int p3, int* p4, int* p5, int* p6, XCharStruct* p7 );
		public extern static int XQueryTextExtents16( Display* p0, XID p1, XChar2b* p2, int p3, int* p4, int* p5, int* p6, XCharStruct* p7 );
		public extern static int XQueryTree( Display* p0, Window p1, Window* p2, Window* p3, Window** p4, uint* p5 );
		public extern static int XRaiseWindow( Display* p0, Window p1 );
		public extern static int XReadBitmapFile( Display* p0, Drawable p1, sbyte* p2, uint* p3, uint* p4, Pixmap* p5, int* p6, int* p7 );
		public extern static int XReadBitmapFileData( sbyte* p0, uint* p1, uint* p2, byte** p3, int* p4, int* p5 );
		public extern static int XRebindKeysym( Display* p0, KeySym p1, KeySym* p2, int p3, byte* p4, int p5 );
		public extern static int XRecolorCursor( Display* p0, Cursor p1, XColor* p2, XColor* p3 );
		public extern static int XReconfigureWMWindow( Display* p0, Window p1, int p2, uint p3, XWindowChanges* p4 );
		public extern static int XRefreshKeyboardMapping( XMappingEvent* p0 );
		public extern static int XRegisterIMInstantiateCallback( Display* p0, _XrmHashBucketRec* p1, sbyte* p2, sbyte* p3, Functors.Action<Display*, sbyte*, sbyte*> p4, sbyte* p5 );
		public extern static void XRemoveConnectionWatch( Display* p0, Functors.Action<Display*, sbyte*, int, int, sbyte**> p1, sbyte* p2 );
		public extern static int XRemoveFromSaveSet( Display* p0, Window p1 );
		public extern static int XRemoveHost( Display* p0, XHostAddress* p1 );
		public extern static int XRemoveHosts( Display* p0, XHostAddress* p1, int p2 );
		public extern static int XReparentWindow( Display* p0, Window p1, Window p2, int p3, int p4 );
		public extern static int XResetScreenSaver( Display* p0 );
		public extern static int XResizeWindow( Display* p0, Window p1, uint p2, uint p3 );
		public extern static sbyte* XResourceManagerString( Display* p0 );
		public extern static int XRestackWindows( Display* p0, Window* p1, int p2 );
		public extern static void XrmInitialize();
		public extern static Window XRootWindow( Display* p0, int p1 );
		public extern static Window XRootWindowOfScreen( Screen* p0 );
		public extern static int XRotateBuffers( Display* p0, int p1 );
		public extern static int XRotateWindowProperties( Display* p0, Window p1, Atom* p2, int p3, int p4 );
		public extern static int XScreenCount( Display* p0 );
		public extern static int XScreenNumberOfScreen( Screen* p0 );
		public extern static Screen* XScreenOfDisplay( Display* p0, int p1 );
		public extern static sbyte* XScreenResourceString( Screen* p0 );
		public extern static int XSelectInput( Display* p0, Window p1, intptr p2 );
		public extern static int XSendEvent( Display* p0, Window p1, int p2, intptr p3, XEvent* p4 );
		public extern static sbyte* XServerVendor( Display* p0 );
		public extern static int XSetAccessControl( Display* p0, int p1 );
		public extern static Functors.Func<Display*, int> XSetAfterFunction( Display* p0, Functors.Func<Display*, int> p1 );
		public extern static int XSetArcMode( Display* p0, GC* p1, int p2 );
		public extern static void XSetAuthorization( sbyte* p0, int p1, sbyte* p2, int p3 );
		public extern static int XSetBackground( Display* p0, GC* p1, uintptr p2 );
		public extern static int XSetClipMask( Display* p0, GC* p1, Pixmap p2 );
		public extern static int XSetClipOrigin( Display* p0, GC* p1, int p2, int p3 );
		public extern static int XSetClipRectangles( Display* p0, GC* p1, int p2, int p3, XRectangle* p4, int p5, int p6 );
		public extern static int XSetCloseDownMode( Display* p0, int p1 );
		public extern static int XSetCommand( Display* p0, Window p1, sbyte** p2, int p3 );
		public extern static int XSetDashes( Display* p0, GC* p1, int p2, sbyte* p3, int p4 );
		public extern static Functors.Func<Display*, XErrorEvent*, int> XSetErrorHandler( Functors.Func<Display*, XErrorEvent*, int> p0 );
		public extern static int XSetFillRule( Display* p0, GC* p1, int p2 );
		public extern static int XSetFillStyle( Display* p0, GC* p1, int p2 );
		public extern static int XSetFont( Display* p0, GC* p1, Font p2 );
		public extern static int XSetFontPath( Display* p0, sbyte** p1, int p2 );
		public extern static int XSetForeground( Display* p0, GC* p1, uintptr p2 );
		public extern static int XSetFunction( Display* p0, GC* p1, int p2 );
		public extern static int XSetGraphicsExposures( Display* p0, GC* p1, int p2 );
		public extern static void XSetICFocus( XIC* p0 );
		public extern static int XSetIconName( Display* p0, Window p1, sbyte* p2 );
		public extern static int XSetInputFocus( Display* p0, Window p1, int p2, Time p3 );
		public extern static Functors.Func<Display*, int> XSetIOErrorHandler( Functors.Func<Display*, int> p0 );
		public extern static int XSetLineAttributes( Display* p0, GC* p1, uint p2, int p3, int p4, int p5 );
		public extern static sbyte* XSetLocaleModifiers( sbyte* p0 );
		public extern static int XSetModifierMapping( Display* p0, XModifierKeymap* p1 );
		public extern static int XSetPlaneMask( Display* p0, GC* p1, uintptr p2 );
		public extern static int XSetPointerMapping( Display* p0, byte* p1, int p2 );
		public extern static int XSetScreenSaver( Display* p0, int p1, int p2, int p3, int p4 );
		public extern static int XSetSelectionOwner( Display* p0, Atom p1, Window p2, Time p3 );
		public extern static int XSetState( Display* p0, GC* p1, uintptr p2, uintptr p3, int p4, uintptr p5 );
		public extern static int XSetStipple( Display* p0, GC* p1, Pixmap p2 );
		public extern static int XSetSubwindowMode( Display* p0, GC* p1, int p2 );
		public extern static int XSetTile( Display* p0, GC* p1, Pixmap p2 );
		public extern static int XSetTransientForHint( Display* p0, Window p1, Window p2 );
		public extern static int XSetTSOrigin( Display* p0, GC* p1, int p2, int p3 );
		public extern static int XSetWindowBackground( Display* p0, Window p1, uintptr p2 );
		public extern static int XSetWindowBackgroundPixmap( Display* p0, Window p1, Pixmap p2 );
		public extern static int XSetWindowBorder( Display* p0, Window p1, uintptr p2 );
		public extern static int XSetWindowBorderPixmap( Display* p0, Window p1, Pixmap p2 );
		public extern static int XSetWindowBorderWidth( Display* p0, Window p1, uint p2 );
		public extern static int XSetWindowColormap( Display* p0, Window p1, Colormap p2 );
		public extern static int XSetWMColormapWindows( Display* p0, Window p1, Window* p2, int p3 );
		public extern static int XSetWMProtocols( Display* p0, Window p1, Atom* p2, int p3 );
		public extern static int XStoreBuffer( Display* p0, sbyte* p1, int p2, int p3 );
		public extern static int XStoreBytes( Display* p0, sbyte* p1, int p2 );
		public extern static int XStoreColor( Display* p0, Colormap p1, XColor* p2 );
		public extern static int XStoreColors( Display* p0, Colormap p1, XColor* p2, int p3 );
		public extern static int XStoreName( Display* p0, Window p1, sbyte* p2 );
		public extern static int XStoreNamedColor( Display* p0, Colormap p1, sbyte* p2, uintptr p3, int p4 );
		public extern static KeySym XStringToKeysym( sbyte* p0 );
		public extern static int XSupportsLocale();
		public extern static int XSync( Display* p0, int p1 );
		public extern static Functors.Func<Display*, int> XSynchronize( Display* p0, int p1 );
		public extern static int XTextExtents( XFontStruct* p0, sbyte* p1, int p2, int* p3, int* p4, int* p5, XCharStruct* p6 );
		public extern static int XTextExtents16( XFontStruct* p0, XChar2b* p1, int p2, int* p3, int* p4, int* p5, XCharStruct* p6 );
		public extern static int XTextWidth( XFontStruct* p0, sbyte* p1, int p2 );
		public extern static int XTextWidth16( XFontStruct* p0, XChar2b* p1, int p2 );
		public extern static int XTranslateCoordinates( Display* p0, Window p1, Window p2, int p3, int p4, int* p5, int* p6, Window* p7 );
		public extern static int XUndefineCursor( Display* p0, Window p1 );
		public extern static int XUngrabButton( Display* p0, uint p1, uint p2, Window p3 );
		public extern static int XUngrabKey( Display* p0, int p1, uint p2, Window p3 );
		public extern static int XUngrabKeyboard( Display* p0, Time p1 );
		public extern static int XUngrabPointer( Display* p0, Time p1 );
		public extern static int XUngrabServer( Display* p0 );
		public extern static int XUninstallColormap( Display* p0, Colormap p1 );
		public extern static int XUnloadFont( Display* p0, Font p1 );
		public extern static void XUnlockDisplay( Display* p0 );
		public extern static int XUnmapSubwindows( Display* p0, Window p1 );
		public extern static int XUnmapWindow( Display* p0, Window p1 );
		public extern static int XUnregisterIMInstantiateCallback( Display* p0, _XrmHashBucketRec* p1, sbyte* p2, sbyte* p3, Functors.Action<Display*, sbyte*, sbyte*> p4, sbyte* p5 );
		public extern static void XUnsetICFocus( XIC* p0 );
		public extern static void Xutf8DrawImageString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, sbyte* p6, int p7 );
		public extern static void Xutf8DrawString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, sbyte* p6, int p7 );
		public extern static void Xutf8DrawText( Display* p0, Drawable p1, GC* p2, int p3, int p4, XmbTextItem* p5, int p6 );
		public extern static int Xutf8LookupString( XIC* p0, XKeyEvent* p1, sbyte* p2, int p3, KeySym* p4, int* p5 );
		public extern static sbyte* Xutf8ResetIC( XIC* p0 );
		public extern static int Xutf8TextEscapement( XOC* p0, sbyte* p1, int p2 );
		public extern static int Xutf8TextExtents( XOC* p0, sbyte* p1, int p2, XRectangle* p3, XRectangle* p4 );
		public extern static int Xutf8TextPerCharExtents( XOC* p0, sbyte* p1, int p2, XRectangle* p3, XRectangle* p4, int p5, int* p6, XRectangle* p7, XRectangle* p8 );
		public extern static int XVendorRelease( Display* p0 );
		public extern static VisualID XVisualIDFromVisual( Visual* p0 );
		public extern static int XWarpPointer( Display* p0, Window p1, Window p2, int p3, int p4, uint p5, uint p6, int p7, int p8 );
		public extern static void XwcDrawImageString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, char* p6, int p7 );
		public extern static void XwcDrawString( Display* p0, Drawable p1, XOC* p2, GC* p3, int p4, int p5, char* p6, int p7 );
		public extern static void XwcDrawText( Display* p0, Drawable p1, GC* p2, int p3, int p4, XwcTextItem* p5, int p6 );
		public extern static int XwcLookupString( XIC* p0, XKeyEvent* p1, char* p2, int p3, KeySym* p4, int* p5 );
		public extern static char* XwcResetIC( XIC* p0 );
		public extern static int XwcTextEscapement( XOC* p0, char* p1, int p2 );
		public extern static int XwcTextExtents( XOC* p0, char* p1, int p2, XRectangle* p3, XRectangle* p4 );
		public extern static int XwcTextPerCharExtents( XOC* p0, char* p1, int p2, XRectangle* p3, XRectangle* p4, int p5, int* p6, XRectangle* p7, XRectangle* p8 );
		public extern static uintptr XWhitePixel( Display* p0, int p1 );
		public extern static uintptr XWhitePixelOfScreen( Screen* p0 );
		public extern static int XWidthMMOfScreen( Screen* p0 );
		public extern static int XWidthOfScreen( Screen* p0 );
		public extern static int XWindowEvent( Display* p0, Window p1, intptr p2, XEvent* p3 );
		public extern static int XWithdrawWindow( Display* p0, Window p1, int p2 );
		public extern static int XWriteBitmapFile( Display* p0, sbyte* p1, Pixmap p2, uint p3, uint p4, int p5, int p6 );

		public extern static XClassHint* XAllocClassHint();
		public extern static XIconSize* XAllocIconSize();
		public extern static XSizeHints* XAllocSizeHints();
		public extern static XStandardColormap* XAllocStandardColormap();
		public extern static XWMHints* XAllocWMHints();
		public extern static int XClipBox( Region* p0, XRectangle* p1 );
		public extern static void XConvertCase( KeySym p0, KeySym* p1, KeySym* p2 );
		public extern static Region* XCreateRegion();
		public extern static sbyte* XDefaultString();
		public extern static int XDeleteContext( Display* p0, XID p1, int p2 );
		public extern static int XDestroyRegion( Region* p0 );
		public extern static int XEmptyRegion( Region* p0 );
		public extern static int XEqualRegion( Region* p0, Region* p1 );
		public extern static int XFindContext( Display* p0, XID p1, int p2, sbyte** p3 );
		public extern static int XGetClassHint( Display* p0, Window p1, XClassHint* p2 );
		public extern static int XGetIconSizes( Display* p0, Window p1, XIconSize** p2, int* p3 );
		public extern static int XGetNormalHints( Display* p0, Window p1, XSizeHints* p2 );
		public extern static int XGetRGBColormaps( Display* p0, Window p1, XStandardColormap** p2, int* p3, Atom p4 );
		public extern static int XGetSizeHints( Display* p0, Window p1, XSizeHints* p2, Atom p3 );
		public extern static int XGetStandardColormap( Display* p0, Window p1, XStandardColormap* p2, Atom p3 );
		public extern static int XGetTextProperty( Display* p0, Window p1, XTextProperty* p2, Atom p3 );
		public extern static XVisualInfo* XGetVisualInfo( Display* p0, intptr p1, XVisualInfo* p2, int* p3 );
		public extern static int XGetWMClientMachine( Display* p0, Window p1, XTextProperty* p2 );
		public extern static XWMHints* XGetWMHints( Display* p0, Window p1 );
		public extern static int XGetWMIconName( Display* p0, Window p1, XTextProperty* p2 );
		public extern static int XGetWMName( Display* p0, Window p1, XTextProperty* p2 );
		public extern static int XGetWMNormalHints( Display* p0, Window p1, XSizeHints* p2, intptr* p3 );
		public extern static int XGetWMSizeHints( Display* p0, Window p1, XSizeHints* p2, intptr* p3, Atom p4 );
		public extern static int XGetZoomHints( Display* p0, Window p1, XSizeHints* p2 );
		public extern static int XIntersectRegion( Region* p0, Region* p1, Region* p2 );
		public extern static int XLookupString( XKeyEvent* p0, sbyte* p1, int p2, KeySym* p3, XComposeStatus* p4 );
		public extern static int XMatchVisualInfo( Display* p0, int p1, int p2, int p3, XVisualInfo* p4 );
		public extern static void XmbSetWMProperties( Display* p0, Window p1, sbyte* p2, sbyte* p3, sbyte** p4, int p5, XSizeHints* p6, XWMHints* p7, XClassHint* p8 );
		public extern static int XmbTextListToTextProperty( Display* display, sbyte** list, int count, XICCEncodingStyle style, XTextProperty* textPropReturn );
		public extern static int XmbTextPropertyToTextList( Display* display, XTextProperty* textProp, sbyte*** listReturn, int* countReturn );
		public extern static int XOffsetRegion( Region* p0, int p1, int p2 );
		public extern static int XPointInRegion( Region* p0, int p1, int p2 );
		public extern static Region* XPolygonRegion( XPoint* p0, int p1, int p2 );
		public extern static int XRectInRegion( Region* p0, int p1, int p2, uint p3, uint p4 );
		public extern static int XSaveContext( Display* p0, XID p1, int p2, sbyte* p3 );
		public extern static int XSetClassHint( Display* p0, Window p1, XClassHint* p2 );
		public extern static int XSetIconSizes( Display* p0, Window p1, XIconSize* p2, int p3 );
		public extern static int XSetNormalHints( Display* p0, Window p1, XSizeHints* p2 );
		public extern static int XSetRegion( Display* p0, GC* p1, Region* p2 );
		public extern static void XSetRGBColormaps( Display* p0, Window p1, XStandardColormap* p2, int p3, Atom p4 );
		public extern static int XSetSizeHints( Display* p0, Window p1, XSizeHints* p2, Atom p3 );
		public extern static void XSetStandardColormap( Display* p0, Window p1, XStandardColormap* p2, Atom p3 );
		public extern static int XSetStandardProperties( Display* p0, Window p1, sbyte* p2, sbyte* p3, Pixmap p4, sbyte** p5, int p6, XSizeHints* p7 );
		public extern static void XSetTextProperty( Display* p0, Window p1, XTextProperty* p2, Atom p3 );
		public extern static void XSetWMClientMachine( Display* p0, Window p1, XTextProperty* p2 );
		public extern static int XSetWMHints( Display* p0, Window p1, XWMHints* p2 );
		public extern static void XSetWMIconName( Display* p0, Window p1, XTextProperty* p2 );
		public extern static void XSetWMName( Display* p0, Window p1, XTextProperty* p2 );
		public extern static void XSetWMNormalHints( Display* p0, Window p1, XSizeHints* p2 );
		public extern static void XSetWMProperties( Display* p0, Window p1, XTextProperty* p2, XTextProperty* p3, sbyte** p4, int p5, XSizeHints* p6, XWMHints* p7, XClassHint* p8 );
		public extern static void XSetWMSizeHints( Display* p0, Window p1, XSizeHints* p2, Atom p3 );
		public extern static int XSetZoomHints( Display* p0, Window p1, XSizeHints* p2 );
		public extern static int XShrinkRegion( Region* p0, int p1, int p2 );
		public extern static int XStringListToTextProperty( sbyte** p0, int p1, XTextProperty* p2 );
		public extern static int XSubtractRegion( Region* p0, Region* p1, Region* p2 );
		public extern static int XTextPropertyToStringList( XTextProperty* p0, sbyte*** p1, int* p2 );
		public extern static int XUnionRectWithRegion( XRectangle* p0, Region* p1, Region* p2 );
		public extern static int XUnionRegion( Region* p0, Region* p1, Region* p2 );
		public extern static void Xutf8SetWMProperties( Display* p0, Window p1, sbyte* p2, sbyte* p3, sbyte** p4, int p5, XSizeHints* p6, XWMHints* p7, XClassHint* p8 );
		public extern static int Xutf8TextListToTextProperty( Display* display, sbyte** list, int count, XICCEncodingStyle style, XTextProperty* textPropReturn );
		public extern static int Xutf8TextPropertyToTextList( Display* display, XTextProperty* textProp, sbyte*** listReturn, int* countReturn );
		public extern static void XwcFreeStringList( char** list );
		public extern static int XwcTextListToTextProperty( Display* display, char** list, int count, XICCEncodingStyle style, XTextProperty* textPropReturn );
		public extern static int XwcTextPropertyToTextList( Display* display, XTextProperty* textProp, char*** listReturn, int* countReturn );
		public extern static int XWMGeometry( Display* p0, int p1, sbyte* p2, sbyte* p3, uint p4, XSizeHints* p5, int* p6, int* p7, int* p8, int* p9, int* p10 );
		public extern static int XXorRegion( Region* p0, Region* p1, Region* p2 );
	}
	[ExternLibrary( Image = "/usr/lib64/libXrender.so" )]
	public static partial struct XRenderApi {
		public extern static void XRenderAddGlyphs( Display* dpy, XID glyphset, XID* gids, XGlyphInfo* glyphs, int nglyphs, sbyte* images, int nbyteImages );
		public extern static void XRenderAddTraps( Display* dpy, XID picture, int xOff, int yOff, XTrap* traps, int ntrap );
		public extern static void XRenderChangePicture( Display* dpy, XID picture, uintptr valuemask, XRenderPictureAttributes* attributes );
		public extern static void XRenderComposite( Display* dpy, int op, XID src, XID mask, XID dst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, uint width, uint height );
		public extern static void XRenderCompositeDoublePoly( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, int xDst, int yDst, XPointDouble* fpoints, int npoints, int winding );
		public extern static void XRenderCompositeString16( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, XID glyphset, int xSrc, int ySrc, int xDst, int yDst, ushort* @string, int nchar );
		public extern static void XRenderCompositeString32( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, XID glyphset, int xSrc, int ySrc, int xDst, int yDst, uint* @string, int nchar );
		public extern static void XRenderCompositeString8( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, XID glyphset, int xSrc, int ySrc, int xDst, int yDst, sbyte* @string, int nchar );
		public extern static void XRenderCompositeText16( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, int xDst, int yDst, XGlyphElt16* elts, int nelt );
		public extern static void XRenderCompositeText32( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, int xDst, int yDst, XGlyphElt32* elts, int nelt );
		public extern static void XRenderCompositeText8( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, int xDst, int yDst, XGlyphElt8* elts, int nelt );
		public extern static void XRenderCompositeTrapezoids( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, XTrapezoid* traps, int ntrap );
		public extern static void XRenderCompositeTriangles( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, XTriangle* triangles, int ntriangle );
		public extern static void XRenderCompositeTriFan( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, XPointFixed* points, int npoint );
		public extern static void XRenderCompositeTriStrip( Display* dpy, int op, XID src, XID dst, XRenderPictFormat* maskFormat, int xSrc, int ySrc, XPointFixed* points, int npoint );
		public extern static Cursor XRenderCreateAnimCursor( Display* dpy, int ncursor, XAnimCursor* cursors );
		public extern static XID XRenderCreateConicalGradient( Display* dpy, XConicalGradient* gradient, int* stops, XRenderColor* colors, int nstops );
		public extern static Cursor XRenderCreateCursor( Display* dpy, XID source, uint x, uint y );
		public extern static XID XRenderCreateGlyphSet( Display* dpy, XRenderPictFormat* format );
		public extern static XID XRenderCreateLinearGradient( Display* dpy, XLinearGradient* gradient, int* stops, XRenderColor* colors, int nstops );
		public extern static XID XRenderCreatePicture( Display* dpy, Drawable drawable, XRenderPictFormat* format, uintptr valuemask, XRenderPictureAttributes* attributes );
		public extern static XID XRenderCreateRadialGradient( Display* dpy, XRadialGradient* gradient, int* stops, XRenderColor* colors, int nstops );
		public extern static XID XRenderCreateSolidFill( Display* dpy, XRenderColor* color );
		public extern static void XRenderFillRectangle( Display* dpy, int op, XID dst, XRenderColor* color, int x, int y, uint width, uint height );
		public extern static void XRenderFillRectangles( Display* dpy, int op, XID dst, XRenderColor* color, XRectangle* rectangles, int nRects );
		public extern static XRenderPictFormat* XRenderFindFormat( Display* dpy, uintptr mask, XRenderPictFormat* templ, int count );
		public extern static XRenderPictFormat* XRenderFindStandardFormat( Display* dpy, int format );
		public extern static XRenderPictFormat* XRenderFindVisualFormat( Display* dpy, Visual* visual );
		public extern static void XRenderFreeGlyphs( Display* dpy, XID glyphset, XID* gids, int nglyphs );
		public extern static void XRenderFreeGlyphSet( Display* dpy, XID glyphset );
		public extern static void XRenderFreePicture( Display* dpy, XID picture );
		public extern static int XRenderParseColor( Display* dpy, sbyte* spec, XRenderColor* def );
		public extern static int XRenderQueryExtension( Display* dpy, int* eventBasep, int* errorBasep );
		public extern static XFilters* XRenderQueryFilters( Display* dpy, Drawable drawable );
		public extern static int XRenderQueryFormats( Display* dpy );
		public extern static XIndexValue* XRenderQueryPictIndexValues( Display* dpy, XRenderPictFormat* format, int* num );
		public extern static int XRenderQuerySubpixelOrder( Display* dpy, int screen );
		public extern static int XRenderQueryVersion( Display* dpy, int* majorVersionp, int* minorVersionp );
		public extern static XID XRenderReferenceGlyphSet( Display* dpy, XID existing );
		public extern static void XRenderSetPictureClipRectangles( Display* dpy, XID picture, int xOrigin, int yOrigin, XRectangle* rects, int n );
		public extern static void XRenderSetPictureClipRegion( Display* dpy, XID picture, Region* r );
		public extern static void XRenderSetPictureFilter( Display* dpy, XID picture, sbyte* filter, int* params, int nparams );
		public extern static void XRenderSetPictureTransform( Display* dpy, XID picture, XTransform* transform );
		public extern static int XRenderSetSubpixelOrder( Display* dpy, int screen, int subpixel );
	}
	public enum XAllowEvents : uint {
		AsyncPointer =   0,
		SyncPointer =    1,
		ReplayPointer =  2,
		AsyncKeyboard =  3,
		SyncKeyboard =   4,
		ReplayKeyboard = 5,
		AsyncBoth =      6,
		SyncBoth =       7,
	}
	public enum XBitGravity : uint {
		ForgetGravity =    0,
		NorthWestGravity = 1,
		NorthGravity =     2,
		NorthEastGravity = 3,
		WestGravity =      4,
		CenterGravity =    5,
		EastGravity =      6,
		SouthWestGravity = 7,
		SouthGravity =     8,
		SouthEastGravity = 9,
		StaticGravity =   10,
	}
	public enum XButton : uint {
		Button1 = 1,
		Button2 = 2,
		Button3 = 3,
		Button4 = 4,
		Button5 = 5,
	}
	public enum XCapStyle : uint {
		CapNotLast =    0,
		CapButt =       1,
		CapRound =      2,
		CapProjecting = 3,
	}
	public enum XCirculationRequest : uint {
		PlaceOnTop =    0,
		PlaceOnBottom = 1,
	}
	public enum XClipRectanglesMode : uint {
		Unsorted = 0,
		YSorted =  1,
		YXSorted = 2,
		YXBanded = 3,
	}
	public enum XCoordinateMode : uint {
		CoordModeOrigin =   0,
		CoordModePrevious = 1,
	}
	public enum XDisplayClass : uint {
		StaticGray =  0,
		GrayScale =   1,
		StaticColor = 2,
		PseudoColor = 3,
		TrueColor =   4,
		DirectColor = 5,
	}
	public enum XErrorCode : uint {
		Success =               0,
		BadRequest =            1,
		BadValue =              2,
		BadWindow =             3,
		BadPixmap =             4,
		BadAtom =               5,
		BadCursor =             6,
		BadFont =               7,
		BadMatch =              8,
		BadDrawable =           9,
		BadAccess =            10,
		BadAlloc =             11,
		BadColor =             12,
		BadGC =                13,
		BadIDChoice =          14,
		BadName =              15,
		BadLength =            16,
		BadImplementation =    17,
		FirstExtensionError = 128,
		LastExtensionError =  255,
	}
	[Flags]
	public enum XEventMask : uint {
		NoEventMask =                    0,
		KeyPressMask =                   1,
		KeyReleaseMask =                 2,
		ButtonPressMask =                4,
		ButtonReleaseMask =              8,
		EnterWindowMask =               16,
		LeaveWindowMask =               32,
		PointerMotionMask =             64,
		PointerMotionHintMask =        128,
		Button1MotionMask =            256,
		Button2MotionMask =            512,
		Button3MotionMask =           1024,
		Button4MotionMask =           2048,
		Button5MotionMask =           4096,
		ButtonMotionMask =            8192,
		KeymapStateMask =            16384,
		ExposureMask =               32768,
		VisibilityChangeMask =       65536,
		StructureNotifyMask =       131072,
		ResizeRedirectMask =        262144,
		SubstructureNotifyMask =    524288,
		SubstructureRedirectMask = 1048576,
		FocusChangeMask =          2097152,
		PropertyChangeMask =       4194304,
		ColormapChangeMask =       8388608,
		OwnerGrabButtonMask =     16777216,
	}
	public enum XEventType : uint {
		KeyPress =          2,
		KeyRelease =        3,
		ButtonPress =       4,
		ButtonRelease =     5,
		MotionNotify =      6,
		EnterNotify =       7,
		LeaveNotify =       8,
		FocusIn =           9,
		FocusOut =         10,
		KeymapNotify =     11,
		Expose =           12,
		GraphicsExpose =   13,
		NoExpose =         14,
		VisibilityNotify = 15,
		CreateNotify =     16,
		DestroyNotify =    17,
		UnmapNotify =      18,
		MapNotify =        19,
		MapRequest =       20,
		ReparentNotify =   21,
		ConfigureNotify =  22,
		ConfigureRequest = 23,
		GravityNotify =    24,
		ResizeRequest =    25,
		CirculateNotify =  26,
		CirculateRequest = 27,
		PropertyNotify =   28,
		SelectionClear =   29,
		SelectionRequest = 30,
		SelectionNotify =  31,
		ColormapNotify =   32,
		ClientMessage =    33,
		MappingNotify =    34,
		GenericEvent =     35,
		LASTEvent =        36,
	}
	public enum XFillRule : uint {
		EvenOddRule = 0,
		WindingRule = 1,
	}
	public enum XFunction : uint {
		GXclear =         0,
		GXand =           1,
		GXandReverse =    2,
		GXcopy =          3,
		GXandInverted =   4,
		GXnoop =          5,
		GXxor =           6,
		GXor =            7,
		GXnor =           8,
		GXequiv =         9,
		GXinvert =       10,
		GXorReverse =    11,
		GXcopyInverted = 12,
		GXorInverted =   13,
		GXnand =         14,
		GXset =          15,
	}
	[Flags]
	public enum XGCComponent : uint {
		None =                    0,
		GCFunction =              1,
		GCPlaneMask =             2,
		GCForeground =            4,
		GCBackground =            8,
		GCLineWidth =            16,
		GCLineStyle =            32,
		GCCapStyle =             64,
		GCJoinStyle =           128,
		GCFillStyle =           256,
		GCFillRule =            512,
		GCTile =               1024,
		GCStipple =            2048,
		GCTileStipXOrigin =    4096,
		GCTileStipYOrigin =    8192,
		GCFont =              16384,
		GCSubwindowMode =     32768,
		GCGraphicsExposures = 65536,
		GCClipXOrigin =      131072,
		GCClipYOrigin =      262144,
		GCClipMask =         524288,
		GCDashOffset =      1048576,
		GCDashList =        2097152,
		GCArcMode =         4194304,
		GCLastBit =              22,
	}
	public enum XGrabStatus : uint {
		GrabSuccess =     0,
		AlreadyGrabbed =  1,
		GrabInvalidTime = 2,
		GrabNotViewable = 3,
		GrabFrozen =      4,
	}
	public enum XICCEncodingStyle : uint {
		XStringStyle =       0,
		XCompoundTextStyle = 1,
		XTextStyle =         2,
		XStdICCTextStyle =   3,
		XUTF8StringStyle =   4,
	}
	public enum XImageFormat : uint {
		XYBitmap = 0,
		XYPixmap = 1,
		ZPixmap =  2,
	}
	public enum XIMCaretDirection : uint {
		XIMForwardChar =       0,
		XIMBackwardChar =      1,
		XIMForwardWord =       2,
		XIMBackwardWord =      3,
		XIMCaretUp =           4,
		XIMCaretDown =         5,
		XIMNextLine =          6,
		XIMPreviousLine =      7,
		XIMLineStart =         8,
		XIMLineEnd =           9,
		XIMAbsolutePosition = 10,
		XIMDontChange =       11,
	}
	public enum XIMCaretStyle : uint {
		XIMIsInvisible = 0,
		XIMIsPrimary =   1,
		XIMIsSecondary = 2,
	}
	public enum XIMStatusDataType : uint {
		XIMTextType =   0,
		XIMBitmapType = 1,
	}
	public enum XJoinStyle : uint {
		JoinMiter = 0,
		JoinRound = 1,
		JoinBevel = 2,
	}
	public enum XLineStyle : uint {
		LineSolid =      0,
		LineOnOffDash =  1,
		LineDoubleDash = 2,
	}
	public enum XNotifyDetail : uint {
		NotifyAncestor =         0,
		NotifyVirtual =          1,
		NotifyInferior =         2,
		NotifyNonlinear =        3,
		NotifyNonlinearVirtual = 4,
		NotifyPointer =          5,
		NotifyPointerRoot =      6,
		NotifyDetailNone =       7,
	}
	public enum XNotifyMode : uint {
		NotifyNormal =       0,
		NotifyGrab =         1,
		NotifyUngrab =       2,
		NotifyWhileGrabbed = 3,
	}
	public enum XOrientation : uint {
		XOMOrientation_LTR_TTB = 0,
		XOMOrientation_RTL_TTB = 1,
		XOMOrientation_TTB_LTR = 2,
		XOMOrientation_TTB_RTL = 3,
		XOMOrientation_Context = 4,
	}
	public enum XPolygonShape : uint {
		Complex =   0,
		Nonconvex = 1,
		Convex =    2,
	}
	public enum XProtocolFamily : uint {
		FamilyInternet =  0,
		FamilyDECnet =    1,
		FamilyChaos =     2,
		FamilyInternet6 = 6,
	}
	public enum XSubwindowMode : uint {
		ClipByChildren =   0,
		IncludeInferiors = 1,
	}
	public enum XVisibilityNotify : uint {
		VisibilityUnobscured =        0,
		VisibilityPartiallyObscured = 1,
		VisibilityFullyObscured =     2,
	}
	[Flags]
	public enum XWindowAttribute : uint {
		None =                 0,
		CWBackPixmap =         1,
		CWBackPixel =          2,
		CWBorderPixmap =       4,
		CWBorderPixel =        8,
		CWBitGravity =        16,
		CWWinGravity =        32,
		CWBackingStore =      64,
		CWBackingPlanes =    128,
		CWBackingPixel =     256,
		CWOverrideRedirect = 512,
		CWSaveUnder =       1024,
		CWEventMask =       2048,
		CWDontPropagate =   4096,
		CWColormap =        8192,
		CWCursor =         16384,
	}
	public enum XWindowClass : uint {
		InputOutput = 1,
		InputOnly =   2,
	}
	[Flags]
	public enum XWindowConfig : uint {
		None =           0,
		CWX =            1,
		CWY =            2,
		CWWidth =        4,
		CWHeight =       8,
		CWBorderWidth = 16,
		CWSibling =     32,
		CWStackMode =   64,
	}
	public partial struct _XPrivate {
	}
	[ExplicitSize( Size = 296 )]
	[Alignment( Boundary = 8 )]
	public partial struct _XPrivDisplay {
		[ExplicitOffset( Offset = 0 )]
		public XExtData* ext_data;
		[ExplicitOffset( Offset = 8 )]
		public _XPrivate* private1;
		[ExplicitOffset( Offset = 16 )]
		public int fd;
		[ExplicitOffset( Offset = 20 )]
		public int private2;
		[ExplicitOffset( Offset = 24 )]
		public int proto_major_version;
		[ExplicitOffset( Offset = 28 )]
		public int proto_minor_version;
		[ExplicitOffset( Offset = 32 )]
		public sbyte* vendor;
		[ExplicitOffset( Offset = 40 )]
		public XID private3;
		[ExplicitOffset( Offset = 48 )]
		public XID private4;
		[ExplicitOffset( Offset = 56 )]
		public XID private5;
		[ExplicitOffset( Offset = 64 )]
		public int private6;
		[ExplicitOffset( Offset = 72 )]
		public Functors.Func<Display*, XID> resource_alloc;
		[ExplicitOffset( Offset = 80 )]
		public int byte_order;
		[ExplicitOffset( Offset = 84 )]
		public int bitmap_unit;
		[ExplicitOffset( Offset = 88 )]
		public int bitmap_pad;
		[ExplicitOffset( Offset = 92 )]
		public int bitmap_bit_order;
		[ExplicitOffset( Offset = 96 )]
		public int nformats;
		[ExplicitOffset( Offset = 104 )]
		public ScreenFormat* pixmap_format;
		[ExplicitOffset( Offset = 112 )]
		public int private8;
		[ExplicitOffset( Offset = 116 )]
		public int release;
		[ExplicitOffset( Offset = 120 )]
		public _XPrivate* private9;
		[ExplicitOffset( Offset = 128 )]
		public _XPrivate* private10;
		[ExplicitOffset( Offset = 136 )]
		public int qlen;
		[ExplicitOffset( Offset = 144 )]
		public uintptr last_request_read;
		[ExplicitOffset( Offset = 152 )]
		public uintptr request;
		[ExplicitOffset( Offset = 160 )]
		public sbyte* private11;
		[ExplicitOffset( Offset = 168 )]
		public sbyte* private12;
		[ExplicitOffset( Offset = 176 )]
		public sbyte* private13;
		[ExplicitOffset( Offset = 184 )]
		public sbyte* private14;
		[ExplicitOffset( Offset = 192 )]
		public uint max_request_size;
		[ExplicitOffset( Offset = 200 )]
		public _XrmHashBucketRec* db;
		[ExplicitOffset( Offset = 208 )]
		public Functors.Func<Display*, int> private15;
		[ExplicitOffset( Offset = 216 )]
		public CUtf8String display_name;
		[ExplicitOffset( Offset = 224 )]
		public int default_screen;
		[ExplicitOffset( Offset = 228 )]
		public int nscreens;
		[ExplicitOffset( Offset = 232 )]
		public Screen* screens;
		[ExplicitOffset( Offset = 240 )]
		public uintptr motion_buffer;
		[ExplicitOffset( Offset = 248 )]
		public uintptr private16;
		[ExplicitOffset( Offset = 256 )]
		public int min_keycode;
		[ExplicitOffset( Offset = 260 )]
		public int max_keycode;
		[ExplicitOffset( Offset = 264 )]
		public sbyte* private17;
		[ExplicitOffset( Offset = 272 )]
		public sbyte* private18;
		[ExplicitOffset( Offset = 280 )]
		public int private19;
		[ExplicitOffset( Offset = 288 )]
		public sbyte* xdefaults;
	}
	public partial struct _XrmHashBucketRec {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Atom {
	}
	public partial struct ClientPtr {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Colormap {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Cursor {
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct Depth {
		[ExplicitOffset( Offset = 0 )]
		public int depth;
		[ExplicitOffset( Offset = 4 )]
		public int nvisuals;
		[ExplicitOffset( Offset = 8 )]
		public Visual* visuals;
	}
	public partial struct Display {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Drawable {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Font {
	}
	public partial struct FontPtr {
	}
	public partial struct GC {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct GContext {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct KeySym {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Pixmap {
	}
	public partial struct Region {
	}
	[ExplicitSize( Size = 128 )]
	[Alignment( Boundary = 8 )]
	public partial struct Screen {
		[ExplicitOffset( Offset = 0 )]
		public XExtData* ext_data;
		[ExplicitOffset( Offset = 8 )]
		public Display* display;
		[ExplicitOffset( Offset = 16 )]
		public Window root;
		[ExplicitOffset( Offset = 24 )]
		public int width;
		[ExplicitOffset( Offset = 28 )]
		public int height;
		[ExplicitOffset( Offset = 32 )]
		public int mwidth;
		[ExplicitOffset( Offset = 36 )]
		public int mheight;
		[ExplicitOffset( Offset = 40 )]
		public int ndepths;
		[ExplicitOffset( Offset = 48 )]
		public Depth* depths;
		[ExplicitOffset( Offset = 56 )]
		public int root_depth;
		[ExplicitOffset( Offset = 64 )]
		public Visual* root_visual;
		[ExplicitOffset( Offset = 72 )]
		public GC* default_gc;
		[ExplicitOffset( Offset = 80 )]
		public Colormap cmap;
		[ExplicitOffset( Offset = 88 )]
		public uintptr white_pixel;
		[ExplicitOffset( Offset = 96 )]
		public uintptr black_pixel;
		[ExplicitOffset( Offset = 104 )]
		public int max_maps;
		[ExplicitOffset( Offset = 108 )]
		public int min_maps;
		[ExplicitOffset( Offset = 112 )]
		public int backing_store;
		[ExplicitOffset( Offset = 116 )]
		public int save_unders;
		[ExplicitOffset( Offset = 120 )]
		public intptr root_input_mask;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct ScreenFormat {
		[ExplicitOffset( Offset = 0 )]
		public XExtData* ext_data;
		[ExplicitOffset( Offset = 8 )]
		public int depth;
		[ExplicitOffset( Offset = 12 )]
		public int bits_per_pixel;
		[ExplicitOffset( Offset = 16 )]
		public int scanline_pad;
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Time {
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct Visual {
		[ExplicitOffset( Offset = 0 )]
		public XExtData* ext_data;
		[ExplicitOffset( Offset = 8 )]
		public VisualID visualid;
		[ExplicitOffset( Offset = 16 )]
		public int c_class;
		[ExplicitOffset( Offset = 24 )]
		public uintptr red_mask;
		[ExplicitOffset( Offset = 32 )]
		public uintptr green_mask;
		[ExplicitOffset( Offset = 40 )]
		public uintptr blue_mask;
		[ExplicitOffset( Offset = 48 )]
		public int bits_per_rgb;
		[ExplicitOffset( Offset = 52 )]
		public int map_entries;
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct VisualID {
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct Window {
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XAnimCursor {
		[ExplicitOffset( Offset = 0 )]
		public Cursor cursor;
		[ExplicitOffset( Offset = 8 )]
		public uintptr delay;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct XAnyEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 2 )]
	public partial struct XArc {
		[ExplicitOffset( Offset = 0 )]
		public short x;
		[ExplicitOffset( Offset = 2 )]
		public short y;
		[ExplicitOffset( Offset = 4 )]
		public ushort width;
		[ExplicitOffset( Offset = 6 )]
		public ushort height;
		[ExplicitOffset( Offset = 8 )]
		public short angle1;
		[ExplicitOffset( Offset = 10 )]
		public short angle2;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XButtonEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Window root;
		[ExplicitOffset( Offset = 48 )]
		public Window subwindow;
		[ExplicitOffset( Offset = 56 )]
		public Time time;
		[ExplicitOffset( Offset = 64 )]
		public int x;
		[ExplicitOffset( Offset = 68 )]
		public int y;
		[ExplicitOffset( Offset = 72 )]
		public int x_root;
		[ExplicitOffset( Offset = 76 )]
		public int y_root;
		[ExplicitOffset( Offset = 80 )]
		public uint state;
		[ExplicitOffset( Offset = 84 )]
		public uint button;
		[ExplicitOffset( Offset = 88 )]
		public int same_screen;
	}
	[ExplicitSize( Size = 2 )]
	public partial struct XChar2b {
		[ExplicitOffset( Offset = 0 )]
		public byte byte1;
		[ExplicitOffset( Offset = 1 )]
		public byte byte2;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 2 )]
	public partial struct XCharStruct {
		[ExplicitOffset( Offset = 0 )]
		public short lbearing;
		[ExplicitOffset( Offset = 2 )]
		public short rbearing;
		[ExplicitOffset( Offset = 4 )]
		public short width;
		[ExplicitOffset( Offset = 6 )]
		public short ascent;
		[ExplicitOffset( Offset = 8 )]
		public short descent;
		[ExplicitOffset( Offset = 10 )]
		public ushort attributes;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 4 )]
	public partial struct XCircle {
		[ExplicitOffset( Offset = 0 )]
		public int x;
		[ExplicitOffset( Offset = 4 )]
		public int y;
		[ExplicitOffset( Offset = 8 )]
		public int radius;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XCirculateEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int place;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XCirculateRequestEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window parent;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int place;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XClassHint {
		[ExplicitOffset( Offset = 0 )]
		public CUtf8String res_name;
		[ExplicitOffset( Offset = 8 )]
		public sbyte* res_class;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XClientMessageEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Atom message_type;
		[ExplicitOffset( Offset = 48 )]
		public int format;
		[ExplicitOffset( Offset = 56 )]
		public UnnamedUnion_2C2EF20B data;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XColor {
		[ExplicitOffset( Offset = 0 )]
		public uintptr pixel;
		[ExplicitOffset( Offset = 8 )]
		public ushort red;
		[ExplicitOffset( Offset = 10 )]
		public ushort green;
		[ExplicitOffset( Offset = 12 )]
		public ushort blue;
		[ExplicitOffset( Offset = 14 )]
		public sbyte flags;
		[ExplicitOffset( Offset = 15 )]
		public sbyte pad;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XColormapEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Colormap colormap;
		[ExplicitOffset( Offset = 48 )]
		public int c_new;
		[ExplicitOffset( Offset = 52 )]
		public int state;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XComposeStatus {
		[ExplicitOffset( Offset = 0 )]
		public sbyte* compose_ptr;
		[ExplicitOffset( Offset = 8 )]
		public int chars_matched;
	}
	[ExplicitSize( Size = 88 )]
	[Alignment( Boundary = 8 )]
	public partial struct XConfigureEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int x;
		[ExplicitOffset( Offset = 52 )]
		public int y;
		[ExplicitOffset( Offset = 56 )]
		public int width;
		[ExplicitOffset( Offset = 60 )]
		public int height;
		[ExplicitOffset( Offset = 64 )]
		public int border_width;
		[ExplicitOffset( Offset = 72 )]
		public Window above;
		[ExplicitOffset( Offset = 80 )]
		public int override_redirect;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XConfigureRequestEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window parent;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int x;
		[ExplicitOffset( Offset = 52 )]
		public int y;
		[ExplicitOffset( Offset = 56 )]
		public int width;
		[ExplicitOffset( Offset = 60 )]
		public int height;
		[ExplicitOffset( Offset = 64 )]
		public int border_width;
		[ExplicitOffset( Offset = 72 )]
		public Window above;
		[ExplicitOffset( Offset = 80 )]
		public int detail;
		[ExplicitOffset( Offset = 88 )]
		public uintptr value_mask;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 4 )]
	public partial struct XConicalGradient {
		[ExplicitOffset( Offset = 0 )]
		public XPointFixed center;
		[ExplicitOffset( Offset = 8 )]
		public int angle;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XCreateWindowEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window parent;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int x;
		[ExplicitOffset( Offset = 52 )]
		public int y;
		[ExplicitOffset( Offset = 56 )]
		public int width;
		[ExplicitOffset( Offset = 60 )]
		public int height;
		[ExplicitOffset( Offset = 64 )]
		public int border_width;
		[ExplicitOffset( Offset = 68 )]
		public int override_redirect;
	}
	[ExplicitSize( Size = 104 )]
	[Alignment( Boundary = 8 )]
	public partial struct XCrossingEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Window root;
		[ExplicitOffset( Offset = 48 )]
		public Window subwindow;
		[ExplicitOffset( Offset = 56 )]
		public Time time;
		[ExplicitOffset( Offset = 64 )]
		public int x;
		[ExplicitOffset( Offset = 68 )]
		public int y;
		[ExplicitOffset( Offset = 72 )]
		public int x_root;
		[ExplicitOffset( Offset = 76 )]
		public int y_root;
		[ExplicitOffset( Offset = 80 )]
		public int mode;
		[ExplicitOffset( Offset = 84 )]
		public int detail;
		[ExplicitOffset( Offset = 88 )]
		public int same_screen;
		[ExplicitOffset( Offset = 92 )]
		public int focus;
		[ExplicitOffset( Offset = 96 )]
		public uint state;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XDestroyWindowEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 8 )]
	public partial struct XEDataObject {
		[Overlapped( Offset = 0 )]
		public Display* display;
		[Overlapped( Offset = 0 )]
		public GC* gc;
		[Overlapped( Offset = 0 )]
		public Visual* visual;
		[Overlapped( Offset = 0 )]
		public Screen* screen;
		[Overlapped( Offset = 0 )]
		public ScreenFormat* pixmap_format;
		[Overlapped( Offset = 0 )]
		public XFontStruct* font;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct XErrorEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public Display* display;
		[ExplicitOffset( Offset = 16 )]
		public XID resourceid;
		[ExplicitOffset( Offset = 24 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 32 )]
		public byte error_code;
		[ExplicitOffset( Offset = 33 )]
		public byte request_code;
		[ExplicitOffset( Offset = 34 )]
		public byte minor_code;
	}
	[ExplicitSize( Size = 192 )]
	[Alignment( Boundary = 8 )]
	public partial struct XEvent {
		[Overlapped( Offset = 0 )]
		public int type;
		[Overlapped( Offset = 0 )]
		public XAnyEvent xany;
		[Overlapped( Offset = 0 )]
		public XKeyEvent xkey;
		[Overlapped( Offset = 0 )]
		public XButtonEvent xbutton;
		[Overlapped( Offset = 0 )]
		public XMotionEvent xmotion;
		[Overlapped( Offset = 0 )]
		public XCrossingEvent xcrossing;
		[Overlapped( Offset = 0 )]
		public XFocusChangeEvent xfocus;
		[Overlapped( Offset = 0 )]
		public XExposeEvent xexpose;
		[Overlapped( Offset = 0 )]
		public XGraphicsExposeEvent xgraphicsexpose;
		[Overlapped( Offset = 0 )]
		public XNoExposeEvent xnoexpose;
		[Overlapped( Offset = 0 )]
		public XVisibilityEvent xvisibility;
		[Overlapped( Offset = 0 )]
		public XCreateWindowEvent xcreatewindow;
		[Overlapped( Offset = 0 )]
		public XDestroyWindowEvent xdestroywindow;
		[Overlapped( Offset = 0 )]
		public XUnmapEvent xunmap;
		[Overlapped( Offset = 0 )]
		public XMapEvent xmap;
		[Overlapped( Offset = 0 )]
		public XMapRequestEvent xmaprequest;
		[Overlapped( Offset = 0 )]
		public XReparentEvent xreparent;
		[Overlapped( Offset = 0 )]
		public XConfigureEvent xconfigure;
		[Overlapped( Offset = 0 )]
		public XGravityEvent xgravity;
		[Overlapped( Offset = 0 )]
		public XResizeRequestEvent xresizerequest;
		[Overlapped( Offset = 0 )]
		public XConfigureRequestEvent xconfigurerequest;
		[Overlapped( Offset = 0 )]
		public XCirculateEvent xcirculate;
		[Overlapped( Offset = 0 )]
		public XCirculateRequestEvent xcirculaterequest;
		[Overlapped( Offset = 0 )]
		public XPropertyEvent xproperty;
		[Overlapped( Offset = 0 )]
		public XSelectionClearEvent xselectionclear;
		[Overlapped( Offset = 0 )]
		public XSelectionRequestEvent xselectionrequest;
		[Overlapped( Offset = 0 )]
		public XSelectionEvent xselection;
		[Overlapped( Offset = 0 )]
		public XColormapEvent xcolormap;
		[Overlapped( Offset = 0 )]
		public XClientMessageEvent xclient;
		[Overlapped( Offset = 0 )]
		public XMappingEvent xmapping;
		[Overlapped( Offset = 0 )]
		public XErrorEvent xerror;
		[Overlapped( Offset = 0 )]
		public XKeymapEvent xkeymap;
		[Overlapped( Offset = 0 )]
		public XGenericEvent xgeneric;
		[Overlapped( Offset = 0 )]
		public XGenericEventCookie xcookie;
		[Overlapped( Offset = 0 )]
		public intptr[24] pad;
	}
	[ExplicitSize( Size = 64 )]
	[Alignment( Boundary = 8 )]
	public partial struct XExposeEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public int x;
		[ExplicitOffset( Offset = 44 )]
		public int y;
		[ExplicitOffset( Offset = 48 )]
		public int width;
		[ExplicitOffset( Offset = 52 )]
		public int height;
		[ExplicitOffset( Offset = 56 )]
		public int count;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 4 )]
	public partial struct XExtCodes {
		[ExplicitOffset( Offset = 0 )]
		public int extension;
		[ExplicitOffset( Offset = 4 )]
		public int major_opcode;
		[ExplicitOffset( Offset = 8 )]
		public int first_event;
		[ExplicitOffset( Offset = 12 )]
		public int first_error;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XExtData {
		[ExplicitOffset( Offset = 0 )]
		public int number;
		[ExplicitOffset( Offset = 8 )]
		public XExtData* next;
		[ExplicitOffset( Offset = 16 )]
		public Functors.Func<XExtData*, int> free_private;
		[ExplicitOffset( Offset = 24 )]
		public sbyte* private_data;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XFilters {
		[ExplicitOffset( Offset = 0 )]
		public int nfilter;
		[ExplicitOffset( Offset = 8 )]
		public sbyte** filter;
		[ExplicitOffset( Offset = 16 )]
		public int nalias;
		[ExplicitOffset( Offset = 24 )]
		public short* alias;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XFocusChangeEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public int mode;
		[ExplicitOffset( Offset = 44 )]
		public int detail;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XFontProp {
		[ExplicitOffset( Offset = 0 )]
		public Atom name;
		[ExplicitOffset( Offset = 8 )]
		public uintptr card32;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 2 )]
	public partial struct XFontSetExtents {
		[ExplicitOffset( Offset = 0 )]
		public XRectangle max_ink_extent;
		[ExplicitOffset( Offset = 8 )]
		public XRectangle max_logical_extent;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XFontStruct {
		[ExplicitOffset( Offset = 0 )]
		public XExtData* ext_data;
		[ExplicitOffset( Offset = 8 )]
		public Font fid;
		[ExplicitOffset( Offset = 16 )]
		public uint direction;
		[ExplicitOffset( Offset = 20 )]
		public uint min_char_or_byte2;
		[ExplicitOffset( Offset = 24 )]
		public uint max_char_or_byte2;
		[ExplicitOffset( Offset = 28 )]
		public uint min_byte1;
		[ExplicitOffset( Offset = 32 )]
		public uint max_byte1;
		[ExplicitOffset( Offset = 36 )]
		public int all_chars_exist;
		[ExplicitOffset( Offset = 40 )]
		public uint default_char;
		[ExplicitOffset( Offset = 44 )]
		public int n_properties;
		[ExplicitOffset( Offset = 48 )]
		public XFontProp* properties;
		[ExplicitOffset( Offset = 56 )]
		public XCharStruct min_bounds;
		[ExplicitOffset( Offset = 68 )]
		public XCharStruct max_bounds;
		[ExplicitOffset( Offset = 80 )]
		public XCharStruct* per_char;
		[ExplicitOffset( Offset = 88 )]
		public int ascent;
		[ExplicitOffset( Offset = 92 )]
		public int descent;
	}
	[ExplicitSize( Size = 128 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGCValues {
		[ExplicitOffset( Offset = 0 )]
		public int function;
		[ExplicitOffset( Offset = 8 )]
		public uintptr plane_mask;
		[ExplicitOffset( Offset = 16 )]
		public uintptr foreground;
		[ExplicitOffset( Offset = 24 )]
		public uintptr background;
		[ExplicitOffset( Offset = 32 )]
		public int line_width;
		[ExplicitOffset( Offset = 36 )]
		public int line_style;
		[ExplicitOffset( Offset = 40 )]
		public int cap_style;
		[ExplicitOffset( Offset = 44 )]
		public int join_style;
		[ExplicitOffset( Offset = 48 )]
		public int fill_style;
		[ExplicitOffset( Offset = 52 )]
		public int fill_rule;
		[ExplicitOffset( Offset = 56 )]
		public int arc_mode;
		[ExplicitOffset( Offset = 64 )]
		public Pixmap tile;
		[ExplicitOffset( Offset = 72 )]
		public Pixmap stipple;
		[ExplicitOffset( Offset = 80 )]
		public int ts_x_origin;
		[ExplicitOffset( Offset = 84 )]
		public int ts_y_origin;
		[ExplicitOffset( Offset = 88 )]
		public Font font;
		[ExplicitOffset( Offset = 96 )]
		public int subwindow_mode;
		[ExplicitOffset( Offset = 100 )]
		public int graphics_exposures;
		[ExplicitOffset( Offset = 104 )]
		public int clip_x_origin;
		[ExplicitOffset( Offset = 108 )]
		public int clip_y_origin;
		[ExplicitOffset( Offset = 112 )]
		public Pixmap clip_mask;
		[ExplicitOffset( Offset = 120 )]
		public int dash_offset;
		[ExplicitOffset( Offset = 124 )]
		public sbyte dashes;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGenericEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public int extension;
		[ExplicitOffset( Offset = 36 )]
		public int evtype;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGenericEventCookie {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public int extension;
		[ExplicitOffset( Offset = 36 )]
		public int evtype;
		[ExplicitOffset( Offset = 40 )]
		public uint cookie;
		[ExplicitOffset( Offset = 48 )]
		public void* data;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGlyphElt16 {
		[ExplicitOffset( Offset = 0 )]
		public XID glyphset;
		[ExplicitOffset( Offset = 8 )]
		public ushort* chars;
		[ExplicitOffset( Offset = 16 )]
		public int nchars;
		[ExplicitOffset( Offset = 20 )]
		public int xOff;
		[ExplicitOffset( Offset = 24 )]
		public int yOff;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGlyphElt32 {
		[ExplicitOffset( Offset = 0 )]
		public XID glyphset;
		[ExplicitOffset( Offset = 8 )]
		public uint* chars;
		[ExplicitOffset( Offset = 16 )]
		public int nchars;
		[ExplicitOffset( Offset = 20 )]
		public int xOff;
		[ExplicitOffset( Offset = 24 )]
		public int yOff;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGlyphElt8 {
		[ExplicitOffset( Offset = 0 )]
		public XID glyphset;
		[ExplicitOffset( Offset = 8 )]
		public sbyte* chars;
		[ExplicitOffset( Offset = 16 )]
		public int nchars;
		[ExplicitOffset( Offset = 20 )]
		public int xOff;
		[ExplicitOffset( Offset = 24 )]
		public int yOff;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 2 )]
	public partial struct XGlyphInfo {
		[ExplicitOffset( Offset = 0 )]
		public ushort width;
		[ExplicitOffset( Offset = 2 )]
		public ushort height;
		[ExplicitOffset( Offset = 4 )]
		public short x;
		[ExplicitOffset( Offset = 6 )]
		public short y;
		[ExplicitOffset( Offset = 8 )]
		public short xOff;
		[ExplicitOffset( Offset = 10 )]
		public short yOff;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGraphicsExposeEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Drawable drawable;
		[ExplicitOffset( Offset = 40 )]
		public int x;
		[ExplicitOffset( Offset = 44 )]
		public int y;
		[ExplicitOffset( Offset = 48 )]
		public int width;
		[ExplicitOffset( Offset = 52 )]
		public int height;
		[ExplicitOffset( Offset = 56 )]
		public int count;
		[ExplicitOffset( Offset = 60 )]
		public int major_code;
		[ExplicitOffset( Offset = 64 )]
		public int minor_code;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XGravityEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int x;
		[ExplicitOffset( Offset = 52 )]
		public int y;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XHostAddress {
		[ExplicitOffset( Offset = 0 )]
		public int family;
		[ExplicitOffset( Offset = 4 )]
		public int length;
		[ExplicitOffset( Offset = 8 )]
		public sbyte* address;
	}
	public partial struct XIC {
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XICCallback {
		[ExplicitOffset( Offset = 0 )]
		public sbyte* client_data;
		[ExplicitOffset( Offset = 8 )]
		public Functors.Func<XIC*, sbyte*, sbyte*, int> callback;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 4 )]
	public partial struct XIconSize {
		[ExplicitOffset( Offset = 0 )]
		public int min_width;
		[ExplicitOffset( Offset = 4 )]
		public int min_height;
		[ExplicitOffset( Offset = 8 )]
		public int max_width;
		[ExplicitOffset( Offset = 12 )]
		public int max_height;
		[ExplicitOffset( Offset = 16 )]
		public int width_inc;
		[ExplicitOffset( Offset = 20 )]
		public int height_inc;
	}
	[PrimitiveType( Size = sizeof( uintptr ) )]
	public partial struct XID {
	}
	public partial struct XIM {
	}
	[ExplicitSize( Size = 136 )]
	[Alignment( Boundary = 8 )]
	public partial struct XImage {
		[ExplicitSize( Size = 48 )]
		[Alignment( Boundary = 8 )]
		public partial struct funcs {
			[ExplicitOffset( Offset = 0 )]
			public Functors.Func<Display*, Visual*, uint, int, int, sbyte*, uint, uint, int, int, XImage*> create_image;
			[ExplicitOffset( Offset = 8 )]
			public Functors.Func<XImage*, int> destroy_image;
			[ExplicitOffset( Offset = 16 )]
			public Functors.Func<XImage*, int, int, uintptr> get_pixel;
			[ExplicitOffset( Offset = 24 )]
			public Functors.Func<XImage*, int, int, uintptr, int> put_pixel;
			[ExplicitOffset( Offset = 32 )]
			public Functors.Func<XImage*, int, int, uint, uint, XImage*> sub_image;
			[ExplicitOffset( Offset = 40 )]
			public Functors.Func<XImage*, intptr, int> add_pixel;
		}
		[ExplicitOffset( Offset = 0 )]
		public int width;
		[ExplicitOffset( Offset = 4 )]
		public int height;
		[ExplicitOffset( Offset = 8 )]
		public int xoffset;
		[ExplicitOffset( Offset = 12 )]
		public int format;
		[ExplicitOffset( Offset = 16 )]
		public sbyte* data;
		[ExplicitOffset( Offset = 24 )]
		public int byte_order;
		[ExplicitOffset( Offset = 28 )]
		public int bitmap_unit;
		[ExplicitOffset( Offset = 32 )]
		public int bitmap_bit_order;
		[ExplicitOffset( Offset = 36 )]
		public int bitmap_pad;
		[ExplicitOffset( Offset = 40 )]
		public int depth;
		[ExplicitOffset( Offset = 44 )]
		public int bytes_per_line;
		[ExplicitOffset( Offset = 48 )]
		public int bits_per_pixel;
		[ExplicitOffset( Offset = 56 )]
		public uintptr red_mask;
		[ExplicitOffset( Offset = 64 )]
		public uintptr green_mask;
		[ExplicitOffset( Offset = 72 )]
		public uintptr blue_mask;
		[ExplicitOffset( Offset = 80 )]
		public sbyte* obdata;
		[ExplicitOffset( Offset = 88 )]
		public funcs f;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMCallback {
		[ExplicitOffset( Offset = 0 )]
		public sbyte* client_data;
		[ExplicitOffset( Offset = 8 )]
		public Functors.Action<XIM*, sbyte*, sbyte*> callback;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMHotKeyTrigger {
		[ExplicitOffset( Offset = 0 )]
		public KeySym keysym;
		[ExplicitOffset( Offset = 8 )]
		public int modifier;
		[ExplicitOffset( Offset = 12 )]
		public int modifier_mask;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMHotKeyTriggers {
		[ExplicitOffset( Offset = 0 )]
		public int num_hot_key;
		[ExplicitOffset( Offset = 8 )]
		public XIMHotKeyTrigger* key;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 4 )]
	public partial struct XIMPreeditCaretCallbackStruct {
		[ExplicitOffset( Offset = 0 )]
		public int position;
		[ExplicitOffset( Offset = 4 )]
		public XIMCaretDirection direction;
		[ExplicitOffset( Offset = 8 )]
		public XIMCaretStyle style;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMPreeditDrawCallbackStruct {
		[ExplicitOffset( Offset = 0 )]
		public int caret;
		[ExplicitOffset( Offset = 4 )]
		public int chg_first;
		[ExplicitOffset( Offset = 8 )]
		public int chg_length;
		[ExplicitOffset( Offset = 16 )]
		public XIMText* text;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMPreeditStateNotifyCallbackStruct {
		[ExplicitOffset( Offset = 0 )]
		public uintptr state;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMStatusDrawCallbackStruct {
		[ExplicitOffset( Offset = 0 )]
		public XIMStatusDataType type;
		[ExplicitOffset( Offset = 8 )]
		public UnnamedUnion_2C2E980A data;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMStringConversionCallbackStruct {
		[ExplicitOffset( Offset = 0 )]
		public ushort position;
		[ExplicitOffset( Offset = 4 )]
		public XIMCaretDirection direction;
		[ExplicitOffset( Offset = 8 )]
		public ushort operation;
		[ExplicitOffset( Offset = 10 )]
		public ushort factor;
		[ExplicitOffset( Offset = 16 )]
		public XIMStringConversionText* text;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMStringConversionText {
		[ExplicitOffset( Offset = 0 )]
		public ushort length;
		[ExplicitOffset( Offset = 8 )]
		public uintptr* feedback;
		[ExplicitOffset( Offset = 16 )]
		public int encoding_is_wchar;
		[ExplicitOffset( Offset = 24 )]
		public UnnamedUnion_2C2EA04A @string;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMStyles {
		[ExplicitOffset( Offset = 0 )]
		public ushort count_styles;
		[ExplicitOffset( Offset = 8 )]
		public uintptr* supported_styles;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMText {
		[ExplicitOffset( Offset = 0 )]
		public ushort length;
		[ExplicitOffset( Offset = 8 )]
		public uintptr* feedback;
		[ExplicitOffset( Offset = 16 )]
		public int encoding_is_wchar;
		[ExplicitOffset( Offset = 24 )]
		public UnnamedUnion_2C2E8328 @string;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIMValuesList {
		[ExplicitOffset( Offset = 0 )]
		public ushort count_values;
		[ExplicitOffset( Offset = 8 )]
		public sbyte** supported_values;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XIndexValue {
		[ExplicitOffset( Offset = 0 )]
		public uintptr pixel;
		[ExplicitOffset( Offset = 8 )]
		public ushort red;
		[ExplicitOffset( Offset = 10 )]
		public ushort green;
		[ExplicitOffset( Offset = 12 )]
		public ushort blue;
		[ExplicitOffset( Offset = 14 )]
		public ushort alpha;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 4 )]
	public partial struct XKeyboardControl {
		[ExplicitOffset( Offset = 0 )]
		public int key_click_percent;
		[ExplicitOffset( Offset = 4 )]
		public int bell_percent;
		[ExplicitOffset( Offset = 8 )]
		public int bell_pitch;
		[ExplicitOffset( Offset = 12 )]
		public int bell_duration;
		[ExplicitOffset( Offset = 16 )]
		public int led;
		[ExplicitOffset( Offset = 20 )]
		public int led_mode;
		[ExplicitOffset( Offset = 24 )]
		public int key;
		[ExplicitOffset( Offset = 28 )]
		public int auto_repeat_mode;
	}
	[ExplicitSize( Size = 64 )]
	[Alignment( Boundary = 8 )]
	public partial struct XKeyboardState {
		[ExplicitOffset( Offset = 0 )]
		public int key_click_percent;
		[ExplicitOffset( Offset = 4 )]
		public int bell_percent;
		[ExplicitOffset( Offset = 8 )]
		public uint bell_pitch;
		[ExplicitOffset( Offset = 12 )]
		public uint bell_duration;
		[ExplicitOffset( Offset = 16 )]
		public uintptr led_mask;
		[ExplicitOffset( Offset = 24 )]
		public int global_auto_repeat;
		[ExplicitOffset( Offset = 28 )]
		public sbyte[32] auto_repeats;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XKeyEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Window root;
		[ExplicitOffset( Offset = 48 )]
		public Window subwindow;
		[ExplicitOffset( Offset = 56 )]
		public Time time;
		[ExplicitOffset( Offset = 64 )]
		public int x;
		[ExplicitOffset( Offset = 68 )]
		public int y;
		[ExplicitOffset( Offset = 72 )]
		public int x_root;
		[ExplicitOffset( Offset = 76 )]
		public int y_root;
		[ExplicitOffset( Offset = 80 )]
		public uint state;
		[ExplicitOffset( Offset = 84 )]
		public uint keycode;
		[ExplicitOffset( Offset = 88 )]
		public int same_screen;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XKeymapEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public sbyte[32] key_vector;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 4 )]
	public partial struct XLinearGradient {
		[ExplicitOffset( Offset = 0 )]
		public XPointFixed p1;
		[ExplicitOffset( Offset = 8 )]
		public XPointFixed p2;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 4 )]
	public partial struct XLineFixed {
		[ExplicitOffset( Offset = 0 )]
		public XPointFixed p1;
		[ExplicitOffset( Offset = 8 )]
		public XPointFixed p2;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XMapEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int override_redirect;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XMappingEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public int request;
		[ExplicitOffset( Offset = 44 )]
		public int first_keycode;
		[ExplicitOffset( Offset = 48 )]
		public int count;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XMapRequestEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window parent;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XmbTextItem {
		[ExplicitOffset( Offset = 0 )]
		public sbyte* chars;
		[ExplicitOffset( Offset = 8 )]
		public int nchars;
		[ExplicitOffset( Offset = 12 )]
		public int delta;
		[ExplicitOffset( Offset = 16 )]
		public XOC* font_set;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XModifierKeymap {
		[ExplicitOffset( Offset = 0 )]
		public int max_keypermod;
		[ExplicitOffset( Offset = 8 )]
		public byte* modifiermap;
	}
	[ExplicitSize( Size = 96 )]
	[Alignment( Boundary = 8 )]
	public partial struct XMotionEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Window root;
		[ExplicitOffset( Offset = 48 )]
		public Window subwindow;
		[ExplicitOffset( Offset = 56 )]
		public Time time;
		[ExplicitOffset( Offset = 64 )]
		public int x;
		[ExplicitOffset( Offset = 68 )]
		public int y;
		[ExplicitOffset( Offset = 72 )]
		public int x_root;
		[ExplicitOffset( Offset = 76 )]
		public int y_root;
		[ExplicitOffset( Offset = 80 )]
		public uint state;
		[ExplicitOffset( Offset = 84 )]
		public sbyte is_hint;
		[ExplicitOffset( Offset = 88 )]
		public int same_screen;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XNoExposeEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Drawable drawable;
		[ExplicitOffset( Offset = 40 )]
		public int major_code;
		[ExplicitOffset( Offset = 44 )]
		public int minor_code;
	}
	public partial struct XOC {
	}
	public partial struct XOM {
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XOMCharSetList {
		[ExplicitOffset( Offset = 0 )]
		public int charset_count;
		[ExplicitOffset( Offset = 8 )]
		public sbyte** charset_list;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XOMFontInfo {
		[ExplicitOffset( Offset = 0 )]
		public int num_font;
		[ExplicitOffset( Offset = 8 )]
		public XFontStruct** font_struct_list;
		[ExplicitOffset( Offset = 16 )]
		public sbyte** font_name_list;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XOMOrientation {
		[ExplicitOffset( Offset = 0 )]
		public int num_orientation;
		[ExplicitOffset( Offset = 8 )]
		public XOrientation* orientation;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 4 )]
	public partial struct XPixmapFormatValues {
		[ExplicitOffset( Offset = 0 )]
		public int depth;
		[ExplicitOffset( Offset = 4 )]
		public int bits_per_pixel;
		[ExplicitOffset( Offset = 8 )]
		public int scanline_pad;
	}
	[ExplicitSize( Size = 4 )]
	[Alignment( Boundary = 2 )]
	public partial struct XPoint {
		[ExplicitOffset( Offset = 0 )]
		public short x;
		[ExplicitOffset( Offset = 2 )]
		public short y;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XPointDouble {
		[ExplicitOffset( Offset = 0 )]
		public double x;
		[ExplicitOffset( Offset = 8 )]
		public double y;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 4 )]
	public partial struct XPointFixed {
		[ExplicitOffset( Offset = 0 )]
		public int x;
		[ExplicitOffset( Offset = 4 )]
		public int y;
	}
	[ExplicitSize( Size = 64 )]
	[Alignment( Boundary = 8 )]
	public partial struct XPropertyEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Atom atom;
		[ExplicitOffset( Offset = 48 )]
		public Time time;
		[ExplicitOffset( Offset = 56 )]
		public int state;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 4 )]
	public partial struct XRadialGradient {
		[ExplicitOffset( Offset = 0 )]
		public XCircle inner;
		[ExplicitOffset( Offset = 12 )]
		public XCircle outer;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 2 )]
	public partial struct XRectangle {
		[ExplicitOffset( Offset = 0 )]
		public short x;
		[ExplicitOffset( Offset = 2 )]
		public short y;
		[ExplicitOffset( Offset = 4 )]
		public ushort width;
		[ExplicitOffset( Offset = 6 )]
		public ushort height;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 2 )]
	public partial struct XRenderColor {
		[ExplicitOffset( Offset = 0 )]
		public ushort red;
		[ExplicitOffset( Offset = 2 )]
		public ushort green;
		[ExplicitOffset( Offset = 4 )]
		public ushort blue;
		[ExplicitOffset( Offset = 6 )]
		public ushort alpha;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 2 )]
	public partial struct XRenderDirectFormat {
		[ExplicitOffset( Offset = 0 )]
		public short red;
		[ExplicitOffset( Offset = 2 )]
		public short redMask;
		[ExplicitOffset( Offset = 4 )]
		public short green;
		[ExplicitOffset( Offset = 6 )]
		public short greenMask;
		[ExplicitOffset( Offset = 8 )]
		public short blue;
		[ExplicitOffset( Offset = 10 )]
		public short blueMask;
		[ExplicitOffset( Offset = 12 )]
		public short alpha;
		[ExplicitOffset( Offset = 14 )]
		public short alphaMask;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct XRenderPictFormat {
		[ExplicitOffset( Offset = 0 )]
		public XID id;
		[ExplicitOffset( Offset = 8 )]
		public int type;
		[ExplicitOffset( Offset = 12 )]
		public int depth;
		[ExplicitOffset( Offset = 16 )]
		public XRenderDirectFormat direct;
		[ExplicitOffset( Offset = 32 )]
		public Colormap colormap;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XRenderPictureAttributes {
		[ExplicitOffset( Offset = 0 )]
		public int repeat;
		[ExplicitOffset( Offset = 8 )]
		public XID alpha_map;
		[ExplicitOffset( Offset = 16 )]
		public int alpha_x_origin;
		[ExplicitOffset( Offset = 20 )]
		public int alpha_y_origin;
		[ExplicitOffset( Offset = 24 )]
		public int clip_x_origin;
		[ExplicitOffset( Offset = 28 )]
		public int clip_y_origin;
		[ExplicitOffset( Offset = 32 )]
		public Pixmap clip_mask;
		[ExplicitOffset( Offset = 40 )]
		public int graphics_exposures;
		[ExplicitOffset( Offset = 44 )]
		public int subwindow_mode;
		[ExplicitOffset( Offset = 48 )]
		public int poly_edge;
		[ExplicitOffset( Offset = 52 )]
		public int poly_mode;
		[ExplicitOffset( Offset = 56 )]
		public Atom dither;
		[ExplicitOffset( Offset = 64 )]
		public int component_alpha;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XReparentEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public Window parent;
		[ExplicitOffset( Offset = 56 )]
		public int x;
		[ExplicitOffset( Offset = 60 )]
		public int y;
		[ExplicitOffset( Offset = 64 )]
		public int override_redirect;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XResizeRequestEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public int width;
		[ExplicitOffset( Offset = 44 )]
		public int height;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 2 )]
	public partial struct XSegment {
		[ExplicitOffset( Offset = 0 )]
		public short x1;
		[ExplicitOffset( Offset = 2 )]
		public short y1;
		[ExplicitOffset( Offset = 4 )]
		public short x2;
		[ExplicitOffset( Offset = 6 )]
		public short y2;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XSelectionClearEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public Atom selection;
		[ExplicitOffset( Offset = 48 )]
		public Time time;
	}
	[ExplicitSize( Size = 72 )]
	[Alignment( Boundary = 8 )]
	public partial struct XSelectionEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window requestor;
		[ExplicitOffset( Offset = 40 )]
		public Atom selection;
		[ExplicitOffset( Offset = 48 )]
		public Atom target;
		[ExplicitOffset( Offset = 56 )]
		public Atom property;
		[ExplicitOffset( Offset = 64 )]
		public Time time;
	}
	[ExplicitSize( Size = 80 )]
	[Alignment( Boundary = 8 )]
	public partial struct XSelectionRequestEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window owner;
		[ExplicitOffset( Offset = 40 )]
		public Window requestor;
		[ExplicitOffset( Offset = 48 )]
		public Atom selection;
		[ExplicitOffset( Offset = 56 )]
		public Atom target;
		[ExplicitOffset( Offset = 64 )]
		public Atom property;
		[ExplicitOffset( Offset = 72 )]
		public Time time;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XServerInterpretedAddress {
		[ExplicitOffset( Offset = 0 )]
		public int typelength;
		[ExplicitOffset( Offset = 4 )]
		public int valuelength;
		[ExplicitOffset( Offset = 8 )]
		public sbyte* type;
		[ExplicitOffset( Offset = 16 )]
		public sbyte* value;
	}
	[ExplicitSize( Size = 112 )]
	[Alignment( Boundary = 8 )]
	public partial struct XSetWindowAttributes {
		[ExplicitOffset( Offset = 0 )]
		public Pixmap background_pixmap;
		[ExplicitOffset( Offset = 8 )]
		public uintptr background_pixel;
		[ExplicitOffset( Offset = 16 )]
		public Pixmap border_pixmap;
		[ExplicitOffset( Offset = 24 )]
		public uintptr border_pixel;
		[ExplicitOffset( Offset = 32 )]
		public int bit_gravity;
		[ExplicitOffset( Offset = 36 )]
		public int win_gravity;
		[ExplicitOffset( Offset = 40 )]
		public int backing_store;
		[ExplicitOffset( Offset = 48 )]
		public uintptr backing_planes;
		[ExplicitOffset( Offset = 56 )]
		public uintptr backing_pixel;
		[ExplicitOffset( Offset = 64 )]
		public int save_under;
		[ExplicitOffset( Offset = 72 )]
		public intptr event_mask;
		[ExplicitOffset( Offset = 80 )]
		public intptr do_not_propagate_mask;
		[ExplicitOffset( Offset = 88 )]
		public int override_redirect;
		[ExplicitOffset( Offset = 96 )]
		public Colormap colormap;
		[ExplicitOffset( Offset = 104 )]
		public Cursor cursor;
	}
	[ExplicitSize( Size = 80 )]
	[Alignment( Boundary = 8 )]
	public partial struct XSizeHints {
		[ExplicitOffset( Offset = 0 )]
		public intptr flags;
		[ExplicitOffset( Offset = 8 )]
		public int x;
		[ExplicitOffset( Offset = 12 )]
		public int y;
		[ExplicitOffset( Offset = 16 )]
		public int width;
		[ExplicitOffset( Offset = 20 )]
		public int height;
		[ExplicitOffset( Offset = 24 )]
		public int min_width;
		[ExplicitOffset( Offset = 28 )]
		public int min_height;
		[ExplicitOffset( Offset = 32 )]
		public int max_width;
		[ExplicitOffset( Offset = 36 )]
		public int max_height;
		[ExplicitOffset( Offset = 40 )]
		public int width_inc;
		[ExplicitOffset( Offset = 44 )]
		public int height_inc;
		[ExplicitOffset( Offset = 48 )]
		public UnnamedStruct_7C88DD7E min_aspect;
		[ExplicitOffset( Offset = 56 )]
		public UnnamedStruct_7C88DD7E max_aspect;
		[ExplicitOffset( Offset = 64 )]
		public int base_width;
		[ExplicitOffset( Offset = 68 )]
		public int base_height;
		[ExplicitOffset( Offset = 72 )]
		public int win_gravity;
	}
	[ExplicitSize( Size = 12 )]
	[Alignment( Boundary = 4 )]
	public partial struct XSpanFix {
		[ExplicitOffset( Offset = 0 )]
		public int left;
		[ExplicitOffset( Offset = 4 )]
		public int right;
		[ExplicitOffset( Offset = 8 )]
		public int y;
	}
	[ExplicitSize( Size = 80 )]
	[Alignment( Boundary = 8 )]
	public partial struct XStandardColormap {
		[ExplicitOffset( Offset = 0 )]
		public Colormap colormap;
		[ExplicitOffset( Offset = 8 )]
		public uintptr red_max;
		[ExplicitOffset( Offset = 16 )]
		public uintptr red_mult;
		[ExplicitOffset( Offset = 24 )]
		public uintptr green_max;
		[ExplicitOffset( Offset = 32 )]
		public uintptr green_mult;
		[ExplicitOffset( Offset = 40 )]
		public uintptr blue_max;
		[ExplicitOffset( Offset = 48 )]
		public uintptr blue_mult;
		[ExplicitOffset( Offset = 56 )]
		public uintptr base_pixel;
		[ExplicitOffset( Offset = 64 )]
		public VisualID visualid;
		[ExplicitOffset( Offset = 72 )]
		public XID killid;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XTextItem {
		[ExplicitOffset( Offset = 0 )]
		public sbyte* chars;
		[ExplicitOffset( Offset = 8 )]
		public int nchars;
		[ExplicitOffset( Offset = 12 )]
		public int delta;
		[ExplicitOffset( Offset = 16 )]
		public Font font;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XTextItem16 {
		[ExplicitOffset( Offset = 0 )]
		public XChar2b* chars;
		[ExplicitOffset( Offset = 8 )]
		public int nchars;
		[ExplicitOffset( Offset = 12 )]
		public int delta;
		[ExplicitOffset( Offset = 16 )]
		public Font font;
	}
	[ExplicitSize( Size = 32 )]
	[Alignment( Boundary = 8 )]
	public partial struct XTextProperty {
		[ExplicitOffset( Offset = 0 )]
		public byte* value;
		[ExplicitOffset( Offset = 8 )]
		public Atom encoding;
		[ExplicitOffset( Offset = 16 )]
		public int format;
		[ExplicitOffset( Offset = 24 )]
		public uintptr nitems;
	}
	[ExplicitSize( Size = 16 )]
	[Alignment( Boundary = 8 )]
	public partial struct XTimeCoord {
		[ExplicitOffset( Offset = 0 )]
		public Time time;
		[ExplicitOffset( Offset = 8 )]
		public short x;
		[ExplicitOffset( Offset = 10 )]
		public short y;
	}
	[ExplicitSize( Size = 36 )]
	[Alignment( Boundary = 4 )]
	public partial struct XTransform {
		[ExplicitOffset( Offset = 0 )]
		public int[3][3] matrix;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 4 )]
	public partial struct XTrap {
		[ExplicitOffset( Offset = 0 )]
		public XSpanFix top;
		[ExplicitOffset( Offset = 12 )]
		public XSpanFix bottom;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 4 )]
	public partial struct XTrapezoid {
		[ExplicitOffset( Offset = 0 )]
		public int top;
		[ExplicitOffset( Offset = 4 )]
		public int bottom;
		[ExplicitOffset( Offset = 8 )]
		public XLineFixed left;
		[ExplicitOffset( Offset = 24 )]
		public XLineFixed right;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 4 )]
	public partial struct XTriangle {
		[ExplicitOffset( Offset = 0 )]
		public XPointFixed p1;
		[ExplicitOffset( Offset = 8 )]
		public XPointFixed p2;
		[ExplicitOffset( Offset = 16 )]
		public XPointFixed p3;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XUnmapEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window @event;
		[ExplicitOffset( Offset = 40 )]
		public Window window;
		[ExplicitOffset( Offset = 48 )]
		public int from_configure;
	}
	[ExplicitSize( Size = 48 )]
	[Alignment( Boundary = 8 )]
	public partial struct XVisibilityEvent {
		[ExplicitOffset( Offset = 0 )]
		public int type;
		[ExplicitOffset( Offset = 8 )]
		public uintptr serial;
		[ExplicitOffset( Offset = 16 )]
		public int send_event;
		[ExplicitOffset( Offset = 24 )]
		public Display* display;
		[ExplicitOffset( Offset = 32 )]
		public Window window;
		[ExplicitOffset( Offset = 40 )]
		public int state;
	}
	[ExplicitSize( Size = 64 )]
	[Alignment( Boundary = 8 )]
	public partial struct XVisualInfo {
		[ExplicitOffset( Offset = 0 )]
		public Visual* visual;
		[ExplicitOffset( Offset = 8 )]
		public VisualID visualid;
		[ExplicitOffset( Offset = 16 )]
		public int screen;
		[ExplicitOffset( Offset = 20 )]
		public int depth;
		[ExplicitOffset( Offset = 24 )]
		public int c_class;
		[ExplicitOffset( Offset = 32 )]
		public uintptr red_mask;
		[ExplicitOffset( Offset = 40 )]
		public uintptr green_mask;
		[ExplicitOffset( Offset = 48 )]
		public uintptr blue_mask;
		[ExplicitOffset( Offset = 56 )]
		public int colormap_size;
		[ExplicitOffset( Offset = 60 )]
		public int bits_per_rgb;
	}
	[ExplicitSize( Size = 24 )]
	[Alignment( Boundary = 8 )]
	public partial struct XwcTextItem {
		[ExplicitOffset( Offset = 0 )]
		public char* chars;
		[ExplicitOffset( Offset = 8 )]
		public int nchars;
		[ExplicitOffset( Offset = 12 )]
		public int delta;
		[ExplicitOffset( Offset = 16 )]
		public XOC* font_set;
	}
	[ExplicitSize( Size = 136 )]
	[Alignment( Boundary = 8 )]
	public partial struct XWindowAttributes {
		[ExplicitOffset( Offset = 0 )]
		public int x;
		[ExplicitOffset( Offset = 4 )]
		public int y;
		[ExplicitOffset( Offset = 8 )]
		public int width;
		[ExplicitOffset( Offset = 12 )]
		public int height;
		[ExplicitOffset( Offset = 16 )]
		public int border_width;
		[ExplicitOffset( Offset = 20 )]
		public int depth;
		[ExplicitOffset( Offset = 24 )]
		public Visual* visual;
		[ExplicitOffset( Offset = 32 )]
		public Window root;
		[ExplicitOffset( Offset = 40 )]
		public int c_class;
		[ExplicitOffset( Offset = 44 )]
		public int bit_gravity;
		[ExplicitOffset( Offset = 48 )]
		public int win_gravity;
		[ExplicitOffset( Offset = 52 )]
		public int backing_store;
		[ExplicitOffset( Offset = 56 )]
		public uintptr backing_planes;
		[ExplicitOffset( Offset = 64 )]
		public uintptr backing_pixel;
		[ExplicitOffset( Offset = 72 )]
		public int save_under;
		[ExplicitOffset( Offset = 80 )]
		public Colormap colormap;
		[ExplicitOffset( Offset = 88 )]
		public int map_installed;
		[ExplicitOffset( Offset = 92 )]
		public int map_state;
		[ExplicitOffset( Offset = 96 )]
		public intptr all_event_masks;
		[ExplicitOffset( Offset = 104 )]
		public intptr your_event_mask;
		[ExplicitOffset( Offset = 112 )]
		public intptr do_not_propagate_mask;
		[ExplicitOffset( Offset = 120 )]
		public int override_redirect;
		[ExplicitOffset( Offset = 128 )]
		public Screen* screen;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct XWindowChanges {
		[ExplicitOffset( Offset = 0 )]
		public int x;
		[ExplicitOffset( Offset = 4 )]
		public int y;
		[ExplicitOffset( Offset = 8 )]
		public int width;
		[ExplicitOffset( Offset = 12 )]
		public int height;
		[ExplicitOffset( Offset = 16 )]
		public int border_width;
		[ExplicitOffset( Offset = 24 )]
		public Window sibling;
		[ExplicitOffset( Offset = 32 )]
		public int stack_mode;
	}
	[ExplicitSize( Size = 56 )]
	[Alignment( Boundary = 8 )]
	public partial struct XWMHints {
		[ExplicitOffset( Offset = 0 )]
		public intptr flags;
		[ExplicitOffset( Offset = 8 )]
		public int input;
		[ExplicitOffset( Offset = 12 )]
		public int initial_state;
		[ExplicitOffset( Offset = 16 )]
		public Pixmap icon_pixmap;
		[ExplicitOffset( Offset = 24 )]
		public Window icon_window;
		[ExplicitOffset( Offset = 32 )]
		public int icon_x;
		[ExplicitOffset( Offset = 36 )]
		public int icon_y;
		[ExplicitOffset( Offset = 40 )]
		public Pixmap icon_mask;
		[ExplicitOffset( Offset = 48 )]
		public XID window_group;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 4 )]
	public partial struct UnnamedStruct_7C88DD7E {
		[ExplicitOffset( Offset = 0 )]
		public int x;
		[ExplicitOffset( Offset = 4 )]
		public int y;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 8 )]
	public partial struct UnnamedUnion_2C2E8328 {
		[Overlapped( Offset = 0 )]
		public sbyte* multi_byte;
		[Overlapped( Offset = 0 )]
		public char* wide_char;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 8 )]
	public partial struct UnnamedUnion_2C2E980A {
		[Overlapped( Offset = 0 )]
		public XIMText* text;
		[Overlapped( Offset = 0 )]
		public Pixmap bitmap;
	}
	[ExplicitSize( Size = 8 )]
	[Alignment( Boundary = 8 )]
	public partial struct UnnamedUnion_2C2EA04A {
		[Overlapped( Offset = 0 )]
		public sbyte* mbs;
		[Overlapped( Offset = 0 )]
		public char* wcs;
	}
	[ExplicitSize( Size = 40 )]
	[Alignment( Boundary = 8 )]
	public partial struct UnnamedUnion_2C2EF20B {
		[Overlapped( Offset = 0 )]
		public sbyte[20] b;
		[Overlapped( Offset = 0 )]
		public short[10] s;
		[Overlapped( Offset = 0 )]
		public intptr[5] l;
	}
}