refactor(wayland): continue implementing better buffer release

Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
Schmarni
2025-07-18 02:37:30 +02:00
parent eca5bb4bf2
commit 9466e97dd1
4 changed files with 46 additions and 24 deletions

View File

@@ -38,7 +38,7 @@ pub enum SurfaceRole {
#[derive(Debug, Clone)]
pub struct BufferState {
pub buffer: Arc<Buffer>,
pub usage: Arc<BufferUsage>,
pub usage: Option<Arc<BufferUsage>>,
}
#[derive(Debug, Clone)]
@@ -232,7 +232,9 @@ impl WlSurface for Surface {
self.state.lock().pending.buffer = buffer.and_then(|b| {
let buffer = client.get::<Buffer>(b)?;
Some(BufferState {
usage: BufferUsage::new(client, &buffer),
usage: buffer
.uses_buffer_usage()
.then(|| BufferUsage::new(client, &buffer)),
buffer,
})
});