Re-exports

pub use crate::dimensions::DISPLAYHEIGHT;
pub use crate::dimensions::DISPLAYWIDTH;
pub use crate::dimensions::MTHEIGHT;
pub use crate::dimensions::MTWIDTH;
pub use crate::dimensions::WACOMHEIGHT;
pub use crate::dimensions::WACOMWIDTH;

Structs

Enums

Constants

xochitl tends to draw with these but there are many more
If no processing required, skip update processing No processing means:
Enables PXP_LUT_BLACK_WHITE transform on the buffer
An update won’t be merged upon a conflict in case of a collusion if either update has this flag set, unless they are identical regions (same y,x,h,w)
This is basically double buffering. We give it the bitmap we want to update, it swaps them. However the bitmap needs to fall within the smem.
Enables PXP_USE_CMAP transform on the buffer
Should be 0x4048462e. This is not the ordinary value which is used in most software. Even the official toolchain(s). See: https://github.com/canselcik/libremarkable/wiki/Framebuffer-Overview

Type Definitions

This is to allow tests to run on systems with 64bit pointer types. It doesn’t make a difference since we will be mocking the ioctl calls.