From 59def83bf3e2c9bd355c3325c9fe788795550397 Mon Sep 17 00:00:00 2001 From: ProtoShark Date: Mon, 24 Mar 2025 10:13:31 -0700 Subject: [PATCH] Get wl_registry global object --- src/main.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main.rs b/src/main.rs index 1964e3e..2cae9e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,8 +12,30 @@ fn wl_connect() -> Result> { Ok(sock) } + +fn wl_display_get_registry(wl_sock: &mut UnixStream, wl_current_id: &mut u32) -> Result<(), Box> { + const OBJECT: u32 = 1; + const OPCODE: u16 = 1; + const MSG_SIZE: u16 = 12; + + let mut request = [0u8; MSG_SIZE as usize]; + request[0..4].copy_from_slice(&OBJECT.to_ne_bytes()); + request[4..6].copy_from_slice(&OPCODE.to_ne_bytes()); + request[6..8].copy_from_slice(&MSG_SIZE.to_ne_bytes()); + + *wl_current_id += 1; + request[8..12].copy_from_slice(&wl_current_id.to_ne_bytes()); + + let written = wl_sock.write(&request)?; + assert!(written == MSG_SIZE.into()); + + Ok(()) +} + fn main() ->Result<(), Box> { + let mut wl_current_id: u32 = 0; + let mut wl_sock = match wl_connect() { Ok(res) => res, Err(err) => { @@ -22,5 +44,7 @@ fn main() ->Result<(), Box> { } }; + wl_display_get_registry(&mut wl_sock, &mut wl_current_id); + Ok(()) }