Merge pull request #708 from GeoICON/hires_rotation

FIXED: Rotation works improperly on retina display #683
This commit is contained in:
Ian Gilman 2015-08-20 09:34:43 -07:00
commit 1762baa4db

View File

@ -488,29 +488,18 @@ $.Drawer.prototype = /** @lends OpenSeadragon.Drawer.prototype */{
// private // private
_offsetForRotation: function( tile, degrees, useSketch ){ _offsetForRotation: function( tile, degrees, useSketch ){
var cx = this.canvas.width / 2, var cx = this.canvas.width / 2,
cy = this.canvas.height / 2, cy = this.canvas.height / 2;
px = tile.position.x - cx,
py = tile.position.y - cy;
var context = this._getContext( useSketch ); var context = this._getContext( useSketch );
context.save(); context.save();
context.translate(cx, cy); context.translate(cx, cy);
context.rotate( Math.PI / 180 * degrees); context.rotate( Math.PI / 180 * degrees);
tile.position.x = px; context.translate(-cx, -cy);
tile.position.y = py;
}, },
// private // private
_restoreRotationChanges: function( tile, useSketch ){ _restoreRotationChanges: function( tile, useSketch ){
var cx = this.canvas.width / 2,
cy = this.canvas.height / 2,
px = tile.position.x + cx,
py = tile.position.y + cy;
tile.position.x = px;
tile.position.y = py;
var context = this._getContext( useSketch ); var context = this._getContext( useSketch );
context.restore(); context.restore();
}, },