|
|
|
@ -164,9 +164,9 @@ public class AndroidInput implements |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Fetches a touch event from the reuse pool |
|
|
|
|
* @param wait if true waits for a reusable event to get available/released |
|
|
|
|
* @param wait if true waits for a reusable event to get available/released |
|
|
|
|
* by an other thread, if false returns a new one if needed. |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @return a usable TouchEvent |
|
|
|
|
*/ |
|
|
|
|
private TouchEvent getNextFreeTouchEvent(boolean wait) { |
|
|
|
@ -227,6 +227,7 @@ public class AndroidInput implements |
|
|
|
|
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) |
|
|
|
|
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT; |
|
|
|
|
int pointerId = event.getPointerId(pointerIndex); |
|
|
|
|
Vector2f lastPos = lastPositions.get(pointerId); |
|
|
|
|
|
|
|
|
|
// final int historySize = event.getHistorySize();
|
|
|
|
|
//final int pointerCount = event.getPointerCount();
|
|
|
|
@ -240,6 +241,9 @@ public class AndroidInput implements |
|
|
|
|
touch.setPressure(event.getPressure(pointerIndex)); |
|
|
|
|
processEvent(touch); |
|
|
|
|
|
|
|
|
|
lastPos = new Vector2f(event.getX(pointerIndex), view.getHeight() - event.getY(pointerIndex)); |
|
|
|
|
lastPositions.put(pointerId, lastPos); |
|
|
|
|
|
|
|
|
|
bWasHandled = true; |
|
|
|
|
break; |
|
|
|
|
case MotionEvent.ACTION_POINTER_UP: |
|
|
|
@ -251,13 +255,14 @@ public class AndroidInput implements |
|
|
|
|
touch.setTime(event.getEventTime()); |
|
|
|
|
touch.setPressure(event.getPressure(pointerIndex)); |
|
|
|
|
processEvent(touch); |
|
|
|
|
lastPositions.remove(pointerId); |
|
|
|
|
|
|
|
|
|
bWasHandled = true; |
|
|
|
|
break; |
|
|
|
|
case MotionEvent.ACTION_MOVE: |
|
|
|
|
// Convert all pointers into events
|
|
|
|
|
for (int p = 0; p < event.getPointerCount(); p++) { |
|
|
|
|
Vector2f lastPos = lastPositions.get(p); |
|
|
|
|
lastPos = lastPositions.get(p); |
|
|
|
|
if (lastPos == null) { |
|
|
|
|
lastPos = new Vector2f(event.getX(p), view.getHeight() - event.getY(p)); |
|
|
|
|
lastPositions.put(event.getPointerId(p), lastPos); |
|
|
|
@ -277,7 +282,7 @@ public class AndroidInput implements |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Try to detect gestures
|
|
|
|
|
// Try to detect gestures
|
|
|
|
|
this.detector.onTouchEvent(event); |
|
|
|
|
this.scaledetector.onTouchEvent(event); |
|
|
|
|
|
|
|
|
@ -384,7 +389,7 @@ public class AndroidInput implements |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// --------------- INSIDE GLThread ---------------
|
|
|
|
|
// --------------- INSIDE GLThread ---------------
|
|
|
|
|
@Override |
|
|
|
|
public void update() { |
|
|
|
|
generateEvents(); |
|
|
|
@ -419,7 +424,7 @@ public class AndroidInput implements |
|
|
|
|
|
|
|
|
|
switch (event.getType()) { |
|
|
|
|
case DOWN: |
|
|
|
|
// Handle mouse down event
|
|
|
|
|
// Handle mouse down event
|
|
|
|
|
btn = new MouseButtonEvent(0, true, newX, newY); |
|
|
|
|
btn.setTime(event.getTime()); |
|
|
|
|
listener.onMouseButtonEvent(btn); |
|
|
|
@ -429,7 +434,7 @@ public class AndroidInput implements |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case UP: |
|
|
|
|
// Handle mouse up event
|
|
|
|
|
// Handle mouse up event
|
|
|
|
|
btn = new MouseButtonEvent(0, false, newX, newY); |
|
|
|
|
btn.setTime(event.getTime()); |
|
|
|
|
listener.onMouseButtonEvent(btn); |
|
|
|
@ -472,9 +477,9 @@ public class AndroidInput implements |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// --------------- ENDOF INSIDE GLThread ---------------
|
|
|
|
|
// --------------- ENDOF INSIDE GLThread ---------------
|
|
|
|
|
|
|
|
|
|
// --------------- Gesture detected callback events ---------------
|
|
|
|
|
// --------------- Gesture detected callback events ---------------
|
|
|
|
|
public boolean onDown(MotionEvent event) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|