[input] Adds pointer fusion rust library

This change creates a rust library to fuse raw mouse and touch events
into PointerEvent. This is based off similar implementations found in
Flutter [1],[2] and Chromium [3]. The client of this library will be
AppKit [4] and it's clients.

- This first implementation only fuses mouse events, touch events will
  follow in subsequent cls.

[1] - https://github.com/flutter/engine/blob/main/shell/platform/fuchsia/flutter/pointer_delegate.cc
[2] - https://github.com/flutter/engine/blob/main/lib/ui/window/pointer_data_packet_converter.cc
[3] - https://crsrc.org/c/ui/events/fuchsia/pointer_events_handler.cc
[4] - http://cs/fuchsia/src/experiences/session_shells/gazelle/appkit/

Bug: 110099
Test: fx test -o pointer_fusion_tests
Multiply: pointer_fusion_tests
Change-Id: Id3dc1d8a46601a04fa16b1c057816de91befd7f4
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/731044
Commit-Queue: Sanjay Chouksey <sanjayc@google.com>
Reviewed-by: Filip Filmar <fmil@google.com>
7 files changed
tree: 044e80f3476a3b65f5a5709cda9a058122b0faa3
  1. base_shells/
  2. bin/
  3. examples/
  4. lib/
  5. session_shells/
  6. tests/
  7. .gitignore
  8. AUTHORS
  9. BUILD.gn
  10. CONTRIBUTING.md
  11. LICENSE
  12. OWNERS
  13. PATENTS
  14. README.md
README.md

Fuchsia Experiences Repository

This is a companion repository to Fuchsia and contains code that either implements or supports user facing code for the Fuchsia platform. The code provides a majority of the user interface for the Workstation product as well as a small set of examples, tests, and benchmarks.

Build & Run

This repository is a “source petal” included in the Fuchsia Platform Source Tree (FPST) checkout. Code in this repository must be built with Fuchsia in order to be functional, see the guide for instructions on getting the source.

Hardware

Hardware support should be considered experimental. However, NUC's and Pixelbooks are known to work best. For details on hardware setup see: Install Fuchsia on a Device

Building

Once you have functional checkout you can configure a build targeting Workstation:

    fx set workstation.<board> # For options run: `fx list-boards`
    fx build

See Fuchsia's build and pave instructions for detailed instructions.

Running

Once built, standard Fuchsia workflows for paving, running code, and testing apply. See: fx workflows for detailed instructions.