diff --git a/src/xcomposite.rs b/src/xcomposite.rs new file mode 100644 index 0000000..50630c9 --- /dev/null +++ b/src/xcomposite.rs @@ -0,0 +1,52 @@ +// x11-rs: Rust bindings for X11 libraries +// The X11 libraries are available under the MIT license. +// These bindings are public domain. + +use std::os::raw::{ + c_int, +}; + +use ::xlib::{ + Bool, + XID, + Status, + Window, + Display, + Pixmap +}; + + +// +// functions +// + +x11_link! { Xcomposite, xcomposite, ["libXcomposite.so.1", "libXcomposite.so"], 11, + pub fn XCompositeQueryExtension(_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> Bool, + pub fn XCompositeQueryVersion(_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> Status, + pub fn XCompositeVersion() -> c_int, + pub fn XCompositeRedirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeRedirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeUnredirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeUnredirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeCreateRegionFromBorderClip(_2: *mut Display, _1: Window) -> XserverRegion, + pub fn XCompositeNameWindowPixmap(_2: *mut Display, _1: Window) -> Pixmap, + pub fn XCompositeGetOverlayWindow(_2: *mut Display, _1: Window) -> Window, + pub fn XCompositeReleaseOverlayWindow(_2: *mut Display, _1: Window) -> (), +variadic: +globals: +} + + +// +// types +// + +pub type XserverRegion = XID; + + +// +// constants +// + +pub const CompositeRedirectAutomatic: c_int = 0; +pub const CompositeRedirectManual: c_int = 1; diff --git a/x11-dl/build.rs b/x11-dl/build.rs index 45e3c8a..3a7b038 100644 --- a/x11-dl/build.rs +++ b/x11-dl/build.rs @@ -14,6 +14,7 @@ fn main() { // lib pkgconfig name ("xext", "xext"), ("gl", "gl"), + ("xcomposite", "xcomposite"), ("xcursor", "xcursor"), ("xxf86vm", "xxf86vm"), ("xft", "xft"), diff --git a/x11-dl/src/lib.rs b/x11-dl/src/lib.rs index 41ea2dc..fb089d1 100644 --- a/x11-dl/src/lib.rs +++ b/x11-dl/src/lib.rs @@ -25,6 +25,7 @@ pub mod xlib; pub mod dpms; pub mod glx; pub mod keysym; +pub mod xcomposite; pub mod xcursor; pub mod xf86vmode; pub mod xfixes; diff --git a/x11-dl/src/xcomposite.rs b/x11-dl/src/xcomposite.rs new file mode 120000 index 0000000..d1acfd2 --- /dev/null +++ b/x11-dl/src/xcomposite.rs @@ -0,0 +1 @@ +../../src/xcomposite.rs \ No newline at end of file diff --git a/x11/Cargo.toml b/x11/Cargo.toml index 52d183b..cb2f427 100644 --- a/x11/Cargo.toml +++ b/x11/Cargo.toml @@ -35,6 +35,7 @@ all = ["dpms", "dox"] dpms = [] glx = [] +xcomposite = [] xcursor = [] xf86vmode = [] xft = [] diff --git a/x11/build.rs b/x11/build.rs index 649cdf0..52068a8 100644 --- a/x11/build.rs +++ b/x11/build.rs @@ -15,6 +15,7 @@ fn main() { ("gl", "1", "glx"), ("x11", "1.4.99.1", "xlib"), ("x11-xcb", "1.6", "xlib_xcb"), + ("xcomposite", "0.4.5", "xcomposite"), ("xcursor", "1.1", "xcursor"), ("xext", "1.3", "dpms"), ("xft", "2.1", "xft"), diff --git a/x11/src/lib.rs b/x11/src/lib.rs index dde5d34..6744440 100644 --- a/x11/src/lib.rs +++ b/x11/src/lib.rs @@ -21,6 +21,7 @@ pub mod xlib; pub mod dpms; pub mod glx; pub mod keysym; +pub mod xcomposite; pub mod xcursor; pub mod xf86vmode; pub mod xfixes; diff --git a/x11/src/xcomposite.rs b/x11/src/xcomposite.rs new file mode 120000 index 0000000..d1acfd2 --- /dev/null +++ b/x11/src/xcomposite.rs @@ -0,0 +1 @@ +../../src/xcomposite.rs \ No newline at end of file