Crate octotablet
source ·Expand description
§Cross-platform Tablet, Pad, and Stylus API 🐙✨
A platform abstraction across stylus APIs, aiming to provide the union of platform feature sets so that no expressiveness is lost in translation.
This crate requires low-level access to the windowing server, which is provided by many windowing abstractions
such as eframe
and winit
through the raw_window_handle
crate.
To get started, create a Builder
.
§Supported platforms
See the Backend
enum and README.md
§Supported Hardware
Aims to support a wide range of devices, as long as they use standard platform APIs (ie, no tablet-specific APIs will be implemented).
During development, tested on:
- Wacom Cintiq 16 [DTK-1660]
- Wacom Intuos (S) [CTL-4100]
- Wacom Intuos Pro small [PTH-451]
- Wacom Pro Pen 2
- Wacom Pro Pen 2k
- XP-Pen Deco-01
§Quirks
Graphics tablets, drivers, and system compositors have no shortage of quirks. Some platforms try to correct for that, some dont. While API-level quirks are smoothed out by this crate, per-device quirk correction is beyond the scope of this project and quirked values are reported as-is. Where possible, documentation notes are included to warn where quirks are known to occur. If you encounter additional issues, please submit a PR documenting them. Guarantees are made only when explicitly stated so!
§Examples
See the examples directory for how
this can be integrated into winit
or eframe
projects and demos of the kind of hardware
capabilities this crate exposes.
Re-exports§
pub use builder::Builder;
Modules§
- Axes descriptions of tool capabilities and limits.
- Builder-style configuration for connecting to the system tablet API.
- Sequential information about interactions.
- Pads
- Tablets
- Tools
Structs§
- Maintains a connection to the OS’s tablet server. This is the main entry point for enumerating hardware and listening for events.
Enums§
- List of supported backends. This is not affected by enabled features.
- Errors that may occur during even pumping.