提交 d842eb95 编写于 作者: E Eric Seidel

Add support for pressure on pointer events

The touch demo needs some basic smoothing, right now
it looks rather jittery after this change.  But the pressure
code is definitely working!

R=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/970493003
上级 ece11cc9
......@@ -4,10 +4,11 @@
<style>
dot {
position: absolute;
height: 100px;
width: 100px;
height: 10px;
width: 10px;
background-color: #00FF00;
border-radius: 50px;
border-radius: 5px;
opacity: .75;
}
</style>
<log>Ready!</log>
......@@ -46,8 +47,12 @@ void stopDots(event) {
}
void runToTheCenter(event) {
whichDot(event).style["transform"] =
"translate(${event.x-50}px,${event.y-50}px)";
float radius = (5 + (95 * event.pressure));
Element dot = whichDot(event);
dot.style["transform"] = "translate(${event.x-radius}px,${event.y-radius}px)";
dot.style["width"] = "${2 * radius}px";
dot.style["height"] = "${2 * radius}px";
dot.style["border-radius"] = "${radius}px";
}
void main() {
......
......@@ -112,11 +112,19 @@ public class PlatformView extends SurfaceView
pointerData.x = event.getX(pointerIndex);
pointerData.y = event.getY(pointerIndex);
pointerData.pressure = event.getPressure(pointerIndex);
// TODO(eseidel): Could get the calibrated range if necessary:
// event.getDevice().getMotionRange(MotionEvent.AXIS_PRESSURE)
pointerData.pressureMin = 0.0f;
pointerData.pressureMax = 1.0f;
InputEvent inputEvent = new InputEvent();
inputEvent.type = getTypeForAction(event.getActionMasked());
inputEvent.timeStamp = event.getEventTime();
inputEvent.pointerData = pointerData;
mViewportObserver.onInputEvent(inputEvent);
}
......
......@@ -41,6 +41,9 @@ scoped_ptr<blink::WebInputEvent> BuildWebPointerEvent(
web_event->pointer = event->pointer_data->pointer;
web_event->x = event->pointer_data->x / device_pixel_ratio;
web_event->y = event->pointer_data->y / device_pixel_ratio;
web_event->pressure = event->pointer_data->pressure;
web_event->pressureMin = event->pointer_data->pressure_min;
web_event->pressureMax = event->pointer_data->pressure_max;
}
return web_event.Pass();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册