Clear buffer on forced draw

This commit is contained in:
Kenny Levinsen
2019-08-28 15:20:17 +02:00
parent 640165d8cc
commit 2d1d9d45d3
+7
View File
@@ -219,6 +219,9 @@ impl App {
let mmap = pool.mmap(); let mmap = pool.mmap();
let mut buf = Buffer::new(mmap, inner.dimensions); let mut buf = Buffer::new(mmap, inner.dimensions);
if force {
buf.memset(&bg);
}
let mut damage = vec![]; let mut damage = vec![];
{ {
@@ -249,9 +252,13 @@ impl App {
); );
for surface in inner.surfaces.iter() { for surface in inner.surfaces.iter() {
surface.attach(Some(&new_buffer), 0, 0); surface.attach(Some(&new_buffer), 0, 0);
if force {
surface.damage(0, 0, buf_x as i32, buf_y as i32);
} else {
for d in damage.iter() { for d in damage.iter() {
surface.damage(d.0, d.1, d.2, d.3); surface.damage(d.0, d.1, d.2, d.3);
} }
}
surface.commit(); surface.commit();
} }
Ok(()) Ok(())