class TouchSourceV2
Defined at line 3786 of file fidling/gen/sdk/fidl/fuchsia.ui.pointer/fuchsia.ui.pointer/hlcpp/fuchsia/ui/pointer/cpp/fidl.h
A push-based reader protocol for a client to receive touch events.
Does not support cooperative gesture disambiguation (always-consume model).
If Scenic has a mix of V1 and V2 clients contesting the same touch
interaction in the view tree, Scenic's gesture arena will implicitly treat
the V2 client as if it immediately responded `YES` (claim ownership) to all
pointer samples. Gesture ownership is then resolved using standard priority
rules against other V1 clients' explicit responses (like `YES`, `MAYBE`, or
`HOLD`).
Clients requiring cooperative gesture disambiguation or augmentation (such
as the accessibility subsystem using `LocalHit`) must continue using the
pull-based [`TouchSource`] protocol instead.
Flow control and acknowledgment rules:
- The server will not push more than
`TOUCH_SOURCE_V2_MAX_UNACKNOWLEDGED_EVENTS` (or a product-configured
maximum) events without receiving an acknowledgment from the client.
The server (Scenic) will throttle event delivery when unacknowledged
events in flight reach this limit.
- Clients should send acknowledgments periodically (e.g. before reaching
the limit, such as within 20 remaining credits) to avoid being throttled.
- No head-of-line blocking: Because channels and credit limits are
independent per-view, a slow client that fails to acknowledge terminal
events only blocks its own channel. Scenic can immediately start pushing
events to other views on their own channels.
Like [`TouchSource`], Scenic only dispatches touch events to the
`TouchSourceV2` channel if the touch coordinate successfully intersects one
of the view's active hit regions (determined via Scenic's global hit
testing). If the hit test fails or targets a different view, no touch events
are routed to this client's `TouchSourceV2` channel, preserving the security
containment boundaries of the Fuchsia UI system.
The position of a touch event is defined in the context of a viewport,
situated in the view, identical to [`TouchSource`].
Public Methods
void ~TouchSourceV2 ()
void AcknowledgeEvents (uint64_t last_acknowledged_event_stamp)
Acknowledges receipt of events up to `last_acknowledged_event_stamp`.
This grants the server "credits" to send more events. All events sent
with a `last_event_stamp` less than or equal to
`last_acknowledged_event_stamp` are considered acknowledged.
The server (Scenic) will throttle event delivery when unacknowledged
events in flight reach `TOUCH_SOURCE_V2_MAX_UNACKNOWLEDGED_EVENTS` (or a
product-configured maximum). Clients should send acknowledgments
periodically (e.g. before reaching the limit, such as within 20
remaining credits) to avoid being throttled.
`last_acknowledged_event_stamp` must be strictly increasing.
Non-compliance results in channel closure.
Protected Methods
void handle_unknown_method (uint64_t ordinal, bool method_has_response)
Friends
class TouchSourceV2_Stub