pub enum CursorJob {
SetCallback(Py<PyAny>),
SetSize(i32),
SetSizeCap(i32),
Named {
name: &'static str,
},
Hide,
Shm {
hash: u64,
width: i32,
height: i32,
stride: i32,
offset: i32,
opaque: bool,
bytes: Vec<u8>,
hot_x: i32,
hot_y: i32,
},
Gles {
hash: u64,
width: i32,
height: i32,
bytes: Vec<u8>,
hot_x: i32,
hot_y: i32,
},
}Expand description
One unit of cursor-callback work handed from the calloop thread to the wl-cursor
worker. The calloop resolves everything renderer/surface-affine (SHM copies, dmabuf
readbacks, hotspots); the worker does the PNG encode, the cache, and the GIL-bound Python
call so none of that latency lands on the input/render thread. One channel keeps cursor
updates ordered with callback (re)registration.
Variants§
SetCallback(Py<PyAny>)
SetSize(i32)
Reload the worker’s theme handle at a new pixel size; later Named jobs render at it.
SetSizeCap(i32)
Cap the longest delivered cursor edge in pixels; larger sprites are downscaled with
the hotspot. <= 0 delivers them uncapped.
Named
Hide
Shm
wl_shm cursor sprite: raw pool bytes plus the sub-image descriptor.
Fields
Gles
dmabuf cursor sprite already read back to tightly-mapped RGBA on the calloop.
Auto Trait Implementations§
impl !RefUnwindSafe for CursorJob
impl Freeze for CursorJob
impl Send for CursorJob
impl Sync for CursorJob
impl Unpin for CursorJob
impl UnsafeUnpin for CursorJob
impl UnwindSafe for CursorJob
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more