import xlib

const
 COMPOSITE_NAME* = "Composite"
 COMPOSITE_MAJOR* = 0
 COMPOSITE_MINOR* = 4
 CompositeRedirectAutomatic* = 0
 CompositeRedirectManual* = 1
 X_CompositeQueryVersion* = 0
 X_CompositeRedirectWindow* = 1
 X_CompositeRedirectSubwindows* = 2
 X_CompositeUnredirectWindow* = 3
 X_CompositeUnredirectSubwindows* = 4
 X_CompositeCreateRegionFromBorderClip* = 5
 X_CompositeNameWindowPixmap* = 6
 X_CompositeGetOverlayWindow* = 7
 X_CompositeReleaseOverlayWindow* = 8
 CompositeNumberRequests* = 9 #(X_CompositeReleaseOverlayWindow + 1)
 CompositeNumberEvents* = 0
 XCOMPOSITE_MAJOR* = 0#COMPOSITE_MAJOR
 XCOMPOSITE_MINOR* = 4#COMPOSITE_MINOR
 XCOMPOSITE_REVISION* = 2
 XCOMPOSITE_VERSION* = ((XCOMPOSITE_MAJOR * 10000) + (XCOMPOSITE_MINOR * 100) + (XCOMPOSITE_REVISION))

#int XCompositeVersion (void);

proc XCompositeQueryExtension*( dpy: ptr Display
                               , event_base_return: ptr int
                               , error_base_return: ptr int
                               ): bool {.importc, cdecl.}

# Status XCompositeQueryVersion (Display *dpy,
#                                int     *major_version_return,
#                                int     *minor_version_return);


# void
# XCompositeRedirectWindow (Display *dpy, Window window, int update);

# void
# XCompositeRedirectSubwindows (Display *dpy, Window window, int update);

# void
# XCompositeUnredirectWindow (Display *dpy, Window window, int update);

# void
# XCompositeUnredirectSubwindows (Display *dpy, Window window, int update);

# XserverRegion
# XCompositeCreateRegionFromBorderClip (Display *dpy, Window window);

# Pixmap
# XCompositeNameWindowPixmap (Display *dpy, Window window);

# Window
# XCompositeGetOverlayWindow (Display *dpy, Window window);

# void
# XCompositeReleaseOverlayWindow (Display *dpy, Window window);