Skip to content
This repository was archived by the owner on Apr 29, 2021. It is now read-only.

Commit 9992941

Browse files
authored
Merge pull request #276 from UnityTech/yczhang1.5.4
[1.5.4] Finish upgrade material.
2 parents b104398 + fe59355 commit 9992941

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2028
-681
lines changed

Runtime/gestures/converter.cs

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public override string ToString() {
5656
return $"_PointerState(pointer: {this.pointer}, down: {this.down}, lastPosition: {this.lastPosition})";
5757
}
5858

59-
public int _synthesiseDownButtons(int buttons, PointerDeviceKind kind) {
59+
internal static int _synthesiseDownButtons(int buttons, PointerDeviceKind kind) {
6060
switch (kind) {
6161
case PointerDeviceKind.touch:
6262
return buttons;
@@ -83,10 +83,36 @@ static _PointerState _ensureStateForPointer(PointerData datum, Offset position)
8383
public static IEnumerable<PointerEvent> expand(IEnumerable<PointerData> data, float devicePixelRatio) {
8484
foreach (PointerData datum in data) {
8585
var position = new Offset(datum.physicalX, datum.physicalY) / devicePixelRatio;
86+
var radiusMinor = _toLogicalPixels(datum.radiusMinor, devicePixelRatio);
87+
var radiusMajor = _toLogicalPixels(datum.radiusMajor, devicePixelRatio);
88+
var radiusMin = _toLogicalPixels(datum.radiusMin, devicePixelRatio);
89+
var radiusMax = _toLogicalPixels(datum.radiusMax, devicePixelRatio);
8690
var timeStamp = datum.timeStamp;
8791
var kind = datum.kind;
8892

8993
switch (datum.change) {
94+
case PointerChange.add: {
95+
D.assert(!_pointers.ContainsKey(datum.device));
96+
_PointerState state = _ensureStateForPointer(datum, position);
97+
D.assert(state.lastPosition == position);
98+
yield return new PointerAddedEvent(
99+
timeStamp: timeStamp,
100+
kind: kind,
101+
device: datum.device,
102+
position: position,
103+
obscured: datum.obscured,
104+
pressureMin: datum.pressureMin,
105+
pressureMax: datum.pressureMax,
106+
distance: datum.distance,
107+
distanceMax: datum.distanceMax,
108+
radiusMin: radiusMin,
109+
radiusMax: radiusMax,
110+
orientation: datum.orientation,
111+
tilt: datum.tilt
112+
);
113+
break;
114+
}
115+
90116
case PointerChange.down: {
91117
_PointerState state = _ensureStateForPointer(datum, position);
92118
if (state.down) {
@@ -156,13 +182,13 @@ public static IEnumerable<PointerEvent> expand(IEnumerable<PointerData> data, fl
156182
state.lastPosition = position;
157183
}
158184

185+
Offset scrollDelta = new Offset(_scrollData.scrollX, _scrollData.scrollY) / devicePixelRatio;
159186
yield return new PointerScrollEvent(
160187
timeStamp: timeStamp,
161-
pointer: state.pointer,
162188
kind: kind,
163189
device: _scrollData.device,
164190
position: position,
165-
delta: new Offset(_scrollData.scrollX, _scrollData.scrollY) / devicePixelRatio
191+
scrollDelta: scrollDelta
166192
);
167193
break;
168194
}
@@ -240,5 +266,9 @@ public static IEnumerable<PointerEvent> expand(IEnumerable<PointerData> data, fl
240266
}
241267
}
242268
}
269+
270+
static float _toLogicalPixels(float physicalPixels, float devicePixelRatio) {
271+
return physicalPixels / devicePixelRatio;
272+
}
243273
}
244274
}

0 commit comments

Comments
 (0)