aboutsummaryrefslogtreecommitdiff
path: root/src/cursor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cursor.rs')
-rw-r--r--src/cursor.rs26
1 files changed, 6 insertions, 20 deletions
diff --git a/src/cursor.rs b/src/cursor.rs
index bdaba542..e31808a9 100644
--- a/src/cursor.rs
+++ b/src/cursor.rs
@@ -8,8 +8,7 @@ use std::sync::Mutex;
use anyhow::{anyhow, Context};
use smithay::backend::allocator::Fourcc;
-use smithay::backend::renderer::element::texture::TextureBuffer;
-use smithay::backend::renderer::gles::{GlesRenderer, GlesTexture};
+use smithay::backend::renderer::element::memory::MemoryRenderBuffer;
use smithay::input::pointer::{CursorIcon, CursorImageAttributes, CursorImageStatus};
use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface;
use smithay::utils::{IsAlive, Logical, Physical, Point, Transform};
@@ -224,7 +223,7 @@ pub enum RenderCursor {
},
}
-type TextureCache = HashMap<(CursorIcon, i32), Vec<Option<TextureBuffer<GlesTexture>>>>;
+type TextureCache = HashMap<(CursorIcon, i32), Vec<MemoryRenderBuffer>>;
#[derive(Default)]
pub struct CursorTextureCache {
@@ -238,12 +237,11 @@ impl CursorTextureCache {
pub fn get(
&self,
- renderer: &mut GlesRenderer,
icon: CursorIcon,
scale: i32,
cursor: &XCursor,
idx: usize,
- ) -> Option<TextureBuffer<GlesTexture>> {
+ ) -> MemoryRenderBuffer {
self.cache
.borrow_mut()
.entry((icon, scale))
@@ -252,26 +250,14 @@ impl CursorTextureCache {
.frames()
.iter()
.map(|frame| {
- let _span = tracy_client::span!("create TextureBuffer");
-
- let buffer = TextureBuffer::from_memory(
- renderer,
+ MemoryRenderBuffer::from_slice(
&frame.pixels_rgba,
- Fourcc::Abgr8888,
+ Fourcc::Argb8888,
(frame.width as i32, frame.height as i32),
- false,
scale,
Transform::Normal,
None,
- );
-
- match buffer {
- Ok(x) => Some(x),
- Err(err) => {
- warn!("error creating a cursor texture: {err:?}");
- None
- }
- }
+ )
})
.collect()
})[idx]