1
0
Fork 0
forked from wry/wry

it: use single-pixel buffer instead of shm

This commit is contained in:
Julian Orth 2024-04-02 10:23:55 +02:00
parent aaed003ec8
commit f562f887f0
17 changed files with 280 additions and 76 deletions

View file

@ -2,8 +2,11 @@ use {
crate::{
format::Format,
it::{
test_error::TestError, test_ifs::test_shm_buffer::TestShmBuffer, test_mem::TestMem,
test_object::TestObject, test_transport::TestTransport,
test_error::TestError,
test_ifs::{test_buffer::TestBuffer, test_shm_buffer::TestShmBuffer},
test_mem::TestMem,
test_object::TestObject,
test_transport::TestTransport,
},
utils::clonecell::CloneCell,
wire::{wl_shm_pool::*, WlShmPoolId},
@ -19,6 +22,7 @@ pub struct TestShmPool {
}
impl TestShmPool {
#[allow(dead_code)]
pub fn create_buffer(
&self,
offset: i32,
@ -35,17 +39,19 @@ impl TestShmPool {
bail!("Out-of-bounds buffer");
}
let buffer = Rc::new(TestShmBuffer {
id: self.tran.id(),
tran: self.tran.clone(),
buffer: Rc::new(TestBuffer {
id: self.tran.id(),
tran: self.tran.clone(),
released: Cell::new(true),
destroyed: Cell::new(false),
}),
range: start..end,
mem,
released: Cell::new(true),
destroyed: Cell::new(false),
});
self.tran.add_obj(buffer.clone())?;
self.tran.add_obj(buffer.buffer.clone())?;
self.tran.send(CreateBuffer {
self_id: self.id,
id: buffer.id,
id: buffer.buffer.id,
offset,
width,
height,
@ -55,6 +61,7 @@ impl TestShmPool {
Ok(buffer)
}
#[allow(dead_code)]
pub fn resize(&self, size: usize) -> Result<(), TestError> {
let mem = self.mem.get().grow(size)?;
self.mem.set(mem);