From 50e46b104e0e4c4f5ab06030fdd44fa9311829f7 Mon Sep 17 00:00:00 2001 From: Philip Giuliani Date: Wed, 8 Apr 2015 21:45:38 +0200 Subject: [PATCH] Extract rect calculation --- src/tiledimage.js | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/tiledimage.js b/src/tiledimage.js index 48ed29b1..464f2477 100644 --- a/src/tiledimage.js +++ b/src/tiledimage.js @@ -1155,32 +1155,36 @@ function drawTiles( tiledImage, lastDrawn ){ viewer, viewport, position, - tileSource; + tileSource, + needsRestore = false; - var needsRestore = false; - if (tiledImage._clip) { - tiledImage._drawer.saveContext(); - var box = tiledImage.imageToViewportRectangle(tiledImage._clip, true); + // TODO: Move this function + var boxToDrawerRectangle = function( box ) { var topLeft = tiledImage.viewport.pixelFromPoint(box.getTopLeft(), true); var size = tiledImage.viewport.deltaPixelsFromPoints(box.getSize(), true); - box = new OpenSeadragon.Rect(topLeft.x * $.pixelDensityRatio, + + return new $.Rect( + topLeft.x * $.pixelDensityRatio, topLeft.y * $.pixelDensityRatio, - size.x * $.pixelDensityRatio, - size.y * $.pixelDensityRatio); - tiledImage._drawer.setClip(box); + size.x * $.pixelDensityRatio, + size.y * $.pixelDensityRatio + ); + }; + + if ( tiledImage._clip ) { + tiledImage._drawer.saveContext(); + var box = tiledImage.imageToViewportRectangle(tiledImage._clip, true); + var clipRect = boxToDrawerRectangle(box); + + tiledImage._drawer.setClip(clipRect); needsRestore = true; } if ( lastDrawn.length === 0 ) { tiledImage._drawer.saveContext(); - var box = tiledImage.getBounds(true); - var topLeft = tiledImage.viewport.pixelFromPoint(box.getTopLeft(), true); - var size = tiledImage.viewport.deltaPixelsFromPoints(box.getSize(), true); - box = new OpenSeadragon.Rect(topLeft.x * $.pixelDensityRatio, - topLeft.y * $.pixelDensityRatio, - size.x * $.pixelDensityRatio, - size.y * $.pixelDensityRatio); - tiledImage._drawer.drawPlaceholder(box); + var placeholderRect = boxToDrawerRectangle( tiledImage.getBounds(true) ); + + tiledImage._drawer.drawPlaceholder(placeholderRect); needsRestore = true; } @@ -1189,10 +1193,10 @@ function drawTiles( tiledImage, lastDrawn ){ tiledImage._drawer.drawTile( tile, tiledImage._drawingHandler ); tile.beingDrawn = true; - if( tiledImage.debugMode ){ - try{ + if( tiledImage.debugMode ) { + try { tiledImage._drawer.drawDebugInfo( tile, lastDrawn.length, i ); - }catch(e){ + } catch(e) { $.console.error(e); } }