#pragma once #include typedef enum class PointerAction { GenericPrimary = 1 << 0, // Left Mouse Button, Pen Touch, or Finger Touch SecondaryMouseButton = 1 << 1, // Right Mouse Button TertiaryMouseButton = 1 << 2, // Middle Mouse Button PenPrimaryButton = 1 << 3, // Pen Button 1 PenSecondaryButton = 1 << 4, // Pen Button 2 PenEraserButton = 1 << 4, // Backside of Pen Touch MousePrimarySide = 1 << 5, // aka Mouse4 MouseSecondarySide = 1 << 6, // aka Mouse5 } PointerAction; typedef enum class PointerDirection { None, Down, Up } PointerDirection; typedef struct PointerEvent { uint64_t timestampNanos; PointerDirection actDirection; unsigned int action; unsigned int pointerId; float screenX; float screenY; float canvasX; float canvasY; float pressure; } PointerEvent;