1 unstable release

0.1.0 Nov 8, 2023

#782 in Graphics APIs

MIT license

17KB
400 lines

Touchscreen

A touchscreen is just a screen that you can touch. Central to this crate is the Touchscreen trait:

pub trait Touchscreen:
    embedded_graphics_core::prelude::DrawTarget +
    embedded_graphics_core::prelude::OriginDimensions {
        type TouchError;

        fn get_touch_event(&mut self) -> Result<Option<TouchEvent>, Self::TouchError>;
    }

It is overly simple right now, it is more of a tentative starting point. There are 2 implementations, which can be selected by feature flags:

  • red-screen: This is a screen that I had lying around which combines XPT2046 (touch) with ILI9488 (screen)
  • web-screen: A screen that marries WebSimulatorDisplay with mouse event handlers bound to a container element.

Todo

  • Support touchscreens that can signal touch with interrupt
  • Add an SDL touchscreen
  • Clean up web_screen, propagate mouse handling errors

Dependencies

~0.5–3MB
~53K SLoC