|
|
@ -36,7 +36,7 @@ pub struct XcbCanvas<'a> { conn :Arc<xcb::Connection> |
|
|
, window :u32 |
|
|
, window :u32 |
|
|
, pixmap :u32 |
|
|
, pixmap :u32 |
|
|
, gc :u32 |
|
|
, gc :u32 |
|
|
, shm :&'a mut [u32] }
|
|
|
|
|
|
|
|
|
, shm :Box<&'a mut [u32]> }
|
|
|
|
|
|
|
|
|
impl XcbEasel {
|
|
|
impl XcbEasel {
|
|
|
pub fn new() -> Result<XcbEasel, xcb::ConnError> {
|
|
|
pub fn new() -> Result<XcbEasel, xcb::ConnError> {
|
|
|
@ -55,7 +55,7 @@ impl XcbEasel { |
|
|
self.setup().roots().nth(*num as usize)
|
|
|
self.setup().roots().nth(*num as usize)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
pub fn canvas(&self, width :u16, height :u16) -> Option<XcbCanvas> {
|
|
|
|
|
|
|
|
|
pub fn canvas<'a>(&self, width :u16, height :u16) -> Option<XcbCanvas<'a>> {
|
|
|
let Self(conn, _) = self;
|
|
|
let Self(conn, _) = self;
|
|
|
let conn = conn.clone();
|
|
|
let conn = conn.clone();
|
|
|
let screen = match self.screen() {
|
|
|
let screen = match self.screen() {
|
|
|
@ -63,6 +63,8 @@ impl XcbEasel { |
|
|
Some(screen) => screen,
|
|
|
Some(screen) => screen,
|
|
|
};
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
println!("root depth: {}", screen.root_depth());
|
|
|
|
|
|
|
|
|
let shmseg = conn.generate_id();
|
|
|
let shmseg = conn.generate_id();
|
|
|
let gc = conn.generate_id();
|
|
|
let gc = conn.generate_id();
|
|
|
let pixmap = conn.generate_id();
|
|
|
let pixmap = conn.generate_id();
|
|
|
@ -94,7 +96,7 @@ impl XcbEasel { |
|
|
, window: window
|
|
|
, window: window
|
|
|
, pixmap: pixmap
|
|
|
, pixmap: pixmap
|
|
|
, gc: gc
|
|
|
, gc: gc
|
|
|
, shm: shm } )
|
|
|
|
|
|
|
|
|
, shm: Box::new(shm) } )
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|