summaryrefslogtreecommitdiff
path: root/src/window
diff options
context:
space:
mode:
Diffstat (limited to 'src/window')
-rw-r--r--src/window/x11.rs66
1 files changed, 0 insertions, 66 deletions
diff --git a/src/window/x11.rs b/src/window/x11.rs
deleted file mode 100644
index d4bcbe4..0000000
--- a/src/window/x11.rs
+++ /dev/null
@@ -1,66 +0,0 @@
-use crate::window::GraphicsContext;
-use buffer::Buffer;
-use geometry::HasDimensions;
-use raw_window_handle::XlibHandle;
-use std::os::raw::{c_char, c_uint};
-use x11_dl::xlib::{Display, Visual, Xlib, ZPixmap, GC};
-
-pub struct X11GraphicsContext {
- handle: XlibHandle,
- lib: Xlib,
- gc: GC,
- visual: *mut Visual,
- depth: i32,
-}
-
-impl X11GraphicsContext {
- pub unsafe fn new(handle: XlibHandle) -> Self {
- let lib = match Xlib::open() {
- Ok(lib) => lib,
- Err(e) => panic!("{:?}", e),
- };
- let screen = (lib.XDefaultScreen)(handle.display as *mut Display);
- let gc = (lib.XDefaultGC)(handle.display as *mut Display, screen);
- let visual = (lib.XDefaultVisual)(handle.display as *mut Display, screen);
- let depth = (lib.XDefaultDepth)(handle.display as *mut Display, screen);
-
- Self { handle, lib, gc, visual, depth }
- }
-}
-
-impl GraphicsContext for X11GraphicsContext {
- unsafe fn blit(&mut self, buffer: &Buffer) {
- let array = buffer.as_u32_slice();
- let dimensions = buffer.dimensions();
- //create image
- let image = (self.lib.XCreateImage)(
- self.handle.display as *mut Display,
- self.visual,
- self.depth as u32,
- ZPixmap,
- 0,
- (array.as_ptr()) as *mut c_char,
- dimensions.width as u32,
- dimensions.height as u32,
- 32,
- (dimensions.width * 4) as i32,
- );
-
- //push image to window
- (self.lib.XPutImage)(
- self.handle.display as *mut Display,
- self.handle.window,
- self.gc,
- image,
- 0,
- 0,
- 0,
- 0,
- dimensions.width as c_uint,
- dimensions.height as c_uint,
- );
-
- (*image).data = std::ptr::null_mut();
- (self.lib.XDestroyImage)(image);
- }
-}