@@ -83,33 +83,31 @@ define([
83
83
} ,
84
84
85
85
_drawCanvasImage : function ( canvasData ) {
86
- var canvas = canvasData . canvas ;
87
- var image = canvasData . image ;
88
- var x = canvasData . x ;
89
- var y = canvasData . y ;
90
- var z = canvasData . z ;
86
+ "use asm" ;
87
+ var canvas = canvasData . canvas ,
88
+ ctx = canvas . getContext ( '2d' ) ,
89
+ image = canvasData . image ,
90
+ zsteps = this . _getZoomSteps ( canvasData . z ) | 0 ; // force 32bit int type
91
91
92
- var ctx = canvas . getContext ( '2d' ) ;
93
- var zsteps = this . _getZoomSteps ( z ) ;
92
+ ctx . clearRect ( 0 , 0 , 256 , 256 ) ; // this will allow us to sum up the dots when the timeline is running
94
93
95
94
if ( zsteps < 0 ) {
96
95
ctx . drawImage ( image , 0 , 0 ) ;
97
- } else {
98
- ctx . imageSmoothingEnabled = false ;
96
+ } else { // over the maxzoom, we'll need to scale up each tile
97
+
98
+ ctx . imageSmoothingEnabled = false ; // disable pic enhancement
99
99
ctx . mozImageSmoothingEnabled = false ;
100
- ctx . webkitImageSmoothingEnabled = false ;
101
100
102
- var srcX = 256 / Math . pow ( 2 , zsteps ) * ( x % Math . pow ( 2 , zsteps ) ) ;
103
- var srcY = 256 / Math . pow ( 2 , zsteps ) * ( y % Math . pow ( 2 , zsteps ) ) ;
104
- var srcW = 256 / Math . pow ( 2 , zsteps ) ;
105
- var srcH = 256 / Math . pow ( 2 , zsteps ) ;
101
+ // tile scaling
102
+ var srcX = ( 256 / Math . pow ( 2 , zsteps ) * ( canvasData . x % Math . pow ( 2 , zsteps ) ) ) | 0 ,
103
+ srcY = ( 256 / Math . pow ( 2 , zsteps ) * ( canvasData . y % Math . pow ( 2 , zsteps ) ) ) | 0 ,
104
+ srcW = ( 256 / Math . pow ( 2 , zsteps ) ) | 0 ,
105
+ srcH = ( 256 / Math . pow ( 2 , zsteps ) ) | 0 ;
106
106
107
- ctx . clearRect ( 0 , 0 , 256 , 256 ) ;
108
107
ctx . drawImage ( image , srcX , srcY , srcW , srcH , 0 , 0 , 256 , 256 ) ;
109
108
}
110
-
111
109
var I = ctx . getImageData ( 0 , 0 , canvas . width , canvas . height ) ;
112
- this . filterCanvasImgdata ( I . data , canvas . width , canvas . height , z ) ;
110
+ this . filterCanvasImgdata ( I . data , canvas . width , canvas . height , canvasData . z ) ;
113
111
ctx . putImageData ( I , 0 , 0 ) ;
114
112
} ,
115
113
0 commit comments