Extract rect calculation

This commit is contained in:
Philip Giuliani 2015-04-08 21:45:38 +02:00
parent 6778533642
commit 50e46b104e

View File

@ -1155,32 +1155,36 @@ function drawTiles( tiledImage, lastDrawn ){
viewer, viewer,
viewport, viewport,
position, position,
tileSource; tileSource,
needsRestore = false;
var needsRestore = false; // TODO: Move this function
if (tiledImage._clip) { var boxToDrawerRectangle = function( box ) {
tiledImage._drawer.saveContext();
var box = tiledImage.imageToViewportRectangle(tiledImage._clip, true);
var topLeft = tiledImage.viewport.pixelFromPoint(box.getTopLeft(), true); var topLeft = tiledImage.viewport.pixelFromPoint(box.getTopLeft(), true);
var size = tiledImage.viewport.deltaPixelsFromPoints(box.getSize(), 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, topLeft.y * $.pixelDensityRatio,
size.x * $.pixelDensityRatio, size.x * $.pixelDensityRatio,
size.y * $.pixelDensityRatio); size.y * $.pixelDensityRatio
tiledImage._drawer.setClip(box); );
};
if ( tiledImage._clip ) {
tiledImage._drawer.saveContext();
var box = tiledImage.imageToViewportRectangle(tiledImage._clip, true);
var clipRect = boxToDrawerRectangle(box);
tiledImage._drawer.setClip(clipRect);
needsRestore = true; needsRestore = true;
} }
if ( lastDrawn.length === 0 ) { if ( lastDrawn.length === 0 ) {
tiledImage._drawer.saveContext(); tiledImage._drawer.saveContext();
var box = tiledImage.getBounds(true); var placeholderRect = boxToDrawerRectangle( tiledImage.getBounds(true) );
var topLeft = tiledImage.viewport.pixelFromPoint(box.getTopLeft(), true);
var size = tiledImage.viewport.deltaPixelsFromPoints(box.getSize(), true); tiledImage._drawer.drawPlaceholder(placeholderRect);
box = new OpenSeadragon.Rect(topLeft.x * $.pixelDensityRatio,
topLeft.y * $.pixelDensityRatio,
size.x * $.pixelDensityRatio,
size.y * $.pixelDensityRatio);
tiledImage._drawer.drawPlaceholder(box);
needsRestore = true; needsRestore = true;
} }
@ -1189,10 +1193,10 @@ function drawTiles( tiledImage, lastDrawn ){
tiledImage._drawer.drawTile( tile, tiledImage._drawingHandler ); tiledImage._drawer.drawTile( tile, tiledImage._drawingHandler );
tile.beingDrawn = true; tile.beingDrawn = true;
if( tiledImage.debugMode ){ if( tiledImage.debugMode ) {
try{ try {
tiledImage._drawer.drawDebugInfo( tile, lastDrawn.length, i ); tiledImage._drawer.drawDebugInfo( tile, lastDrawn.length, i );
}catch(e){ } catch(e) {
$.console.error(e); $.console.error(e);
} }
} }