Browse Source

Merge pull request #1357 from nockawa/master

Canvas2D: pointerEvent fix with designSize
Loïc Baumann 9 years ago
parent
commit
b5c11cd7ac
1 changed files with 5 additions and 4 deletions
  1. 5 4
      src/Canvas2d/babylon.canvas2d.ts

+ 5 - 4
src/Canvas2d/babylon.canvas2d.ts

@@ -452,6 +452,7 @@
         }
         }
 
 
         private _updatePointerInfo(eventData: PointerInfoBase, localPosition: Vector2) {
         private _updatePointerInfo(eventData: PointerInfoBase, localPosition: Vector2) {
+            let s = this.scale;
             let pii = this._primPointerInfo;
             let pii = this._primPointerInfo;
             if (!pii.canvasPointerPos) {
             if (!pii.canvasPointerPos) {
                 pii.canvasPointerPos = Vector2.Zero();
                 pii.canvasPointerPos = Vector2.Zero();
@@ -467,11 +468,11 @@
                 var x = localPosition.x - viewport.x;
                 var x = localPosition.x - viewport.x;
                 var y = localPosition.y - viewport.y;
                 var y = localPosition.y - viewport.y;
 
 
-                pii.canvasPointerPos.x = x - this.actualPosition.x;
-                pii.canvasPointerPos.y = engine.getRenderHeight() - y - this.actualPosition.y;
+                pii.canvasPointerPos.x = (x - this.actualPosition.x) / s;
+                pii.canvasPointerPos.y = (engine.getRenderHeight() - y - this.actualPosition.y) / s;
             } else {
             } else {
-                pii.canvasPointerPos.x = localPosition.x;
-                pii.canvasPointerPos.y = localPosition.y;
+                pii.canvasPointerPos.x = localPosition.x / s;
+                pii.canvasPointerPos.y = localPosition.y / s;
             }
             }
             //console.log(`UpdatePointerInfo for ${this.id}, X:${pii.canvasPointerPos.x}, Y:${pii.canvasPointerPos.y}`);
             //console.log(`UpdatePointerInfo for ${this.id}, X:${pii.canvasPointerPos.x}, Y:${pii.canvasPointerPos.y}`);
             pii.mouseWheelDelta = 0;
             pii.mouseWheelDelta = 0;