mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-25 06:36:11 +03:00
Merge branch 'openseadragon:master' into master
This commit is contained in:
commit
67b9b16f6e
@ -5,7 +5,7 @@ OPENSEADRAGON CHANGELOG
|
|||||||
|
|
||||||
* BREAKING CHANGE: Dropped support for IE11 (#2300, #2361 @AndrewADev)
|
* BREAKING CHANGE: Dropped support for IE11 (#2300, #2361 @AndrewADev)
|
||||||
* DEPRECATION: The OpenSeadragon.createCallback function is no longer recommended (#2367 @akansjain)
|
* DEPRECATION: The OpenSeadragon.createCallback function is no longer recommended (#2367 @akansjain)
|
||||||
* The viewer now uses WebGL when available (#2310, #2462, #2466, #2468, #2469, #2472, #2478 @pearcetm, @Aiosa, @thec0keman)
|
* The viewer now uses WebGL when available (#2310, #2462, #2466, #2468, #2469, #2472, #2478, #2488, #2492 @pearcetm, @Aiosa, @thec0keman)
|
||||||
* Added webp to supported image formats (#2455 @BeebBenjamin)
|
* Added webp to supported image formats (#2455 @BeebBenjamin)
|
||||||
* Introduced maxTilesPerFrame option to allow loading more tiles simultaneously (#2387 @jetic83)
|
* Introduced maxTilesPerFrame option to allow loading more tiles simultaneously (#2387 @jetic83)
|
||||||
* Now when creating a viewer or navigator, we leave its position style alone if possible (#2393 @VIRAT9358)
|
* Now when creating a viewer or navigator, we leave its position style alone if possible (#2393 @VIRAT9358)
|
||||||
@ -17,6 +17,7 @@ OPENSEADRAGON CHANGELOG
|
|||||||
* Fixed: dragToPan gesture could not be disabled when flickEnabled was activated (#2464 @jonasengelmann)
|
* Fixed: dragToPan gesture could not be disabled when flickEnabled was activated (#2464 @jonasengelmann)
|
||||||
* Fixed: placeholderFillStyle didn't work properly when the image was rotated (#2469 @pearcetm)
|
* Fixed: placeholderFillStyle didn't work properly when the image was rotated (#2469 @pearcetm)
|
||||||
* Fixed: Sometimes exponential springs wouldn't ever settle (#2469 @pearcetm)
|
* Fixed: Sometimes exponential springs wouldn't ever settle (#2469 @pearcetm)
|
||||||
|
* Fixed: The navigator wouldn't update its tracking rectangle when the navigator was resized (#2491 @pearcetm)
|
||||||
|
|
||||||
4.1.0:
|
4.1.0:
|
||||||
|
|
||||||
|
@ -309,6 +309,7 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
|
|||||||
this.oldContainerSize = containerSize;
|
this.oldContainerSize = containerSize;
|
||||||
this.world.update();
|
this.world.update();
|
||||||
this.world.draw();
|
this.world.draw();
|
||||||
|
this.update(this.viewer.viewport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -355,7 +356,7 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
|
|||||||
/**
|
/**
|
||||||
* Used to update the navigator minimap's viewport rectangle when a change in the viewer's viewport occurs.
|
* Used to update the navigator minimap's viewport rectangle when a change in the viewer's viewport occurs.
|
||||||
* @function
|
* @function
|
||||||
* @param {OpenSeadragon.Viewport} The viewport this navigator is tracking.
|
* @param {OpenSeadragon.Viewport} [viewport] The viewport to display. Default: the viewport this navigator is tracking.
|
||||||
*/
|
*/
|
||||||
update: function( viewport ) {
|
update: function( viewport ) {
|
||||||
|
|
||||||
@ -366,6 +367,10 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
|
|||||||
topleft,
|
topleft,
|
||||||
bottomright;
|
bottomright;
|
||||||
|
|
||||||
|
if(!viewport){
|
||||||
|
viewport = this.viewer.viewport;
|
||||||
|
}
|
||||||
|
|
||||||
viewerSize = $.getElementSize( this.viewer.element );
|
viewerSize = $.getElementSize( this.viewer.element );
|
||||||
if ( this._resizeWithViewer && viewerSize.x && viewerSize.y && !viewerSize.equals( this.oldViewerSize ) ) {
|
if ( this._resizeWithViewer && viewerSize.x && viewerSize.y && !viewerSize.equals( this.oldViewerSize ) ) {
|
||||||
this.oldViewerSize = viewerSize;
|
this.oldViewerSize = viewerSize;
|
||||||
|
@ -897,19 +897,32 @@
|
|||||||
let texture = gl.createTexture();
|
let texture = gl.createTexture();
|
||||||
let position;
|
let position;
|
||||||
let overlap = tiledImage.source.tileOverlap;
|
let overlap = tiledImage.source.tileOverlap;
|
||||||
|
|
||||||
|
// deal with tiles where there is padding, i.e. the pixel data doesn't take up the entire provided canvas
|
||||||
|
let sourceWidthFraction, sourceHeightFraction;
|
||||||
|
if (tile.sourceBounds) {
|
||||||
|
sourceWidthFraction = Math.min(tile.sourceBounds.width, canvas.width) / canvas.width;
|
||||||
|
sourceHeightFraction = Math.min(tile.sourceBounds.height, canvas.height) / canvas.height;
|
||||||
|
} else {
|
||||||
|
sourceWidthFraction = 1;
|
||||||
|
sourceHeightFraction = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if( overlap > 0){
|
if( overlap > 0){
|
||||||
// calculate the normalized position of the rect to actually draw
|
// calculate the normalized position of the rect to actually draw
|
||||||
// discarding overlap.
|
// discarding overlap.
|
||||||
let overlapFraction = this._calculateOverlapFraction(tile, tiledImage);
|
let overlapFraction = this._calculateOverlapFraction(tile, tiledImage);
|
||||||
|
|
||||||
let left = tile.x === 0 ? 0 : overlapFraction.x;
|
let left = (tile.x === 0 ? 0 : overlapFraction.x) * sourceWidthFraction;
|
||||||
let top = tile.y === 0 ? 0 : overlapFraction.y;
|
let top = (tile.y === 0 ? 0 : overlapFraction.y) * sourceHeightFraction;
|
||||||
let right = tile.isRightMost ? 1 : 1 - overlapFraction.x;
|
let right = (tile.isRightMost ? 1 : 1 - overlapFraction.x) * sourceWidthFraction;
|
||||||
let bottom = tile.isBottomMost ? 1 : 1 - overlapFraction.y;
|
let bottom = (tile.isBottomMost ? 1 : 1 - overlapFraction.y) * sourceHeightFraction;
|
||||||
position = this._makeQuadVertexBuffer(left, right, top, bottom);
|
position = this._makeQuadVertexBuffer(left, right, top, bottom);
|
||||||
} else {
|
} else if (sourceWidthFraction === 1 && sourceHeightFraction === 1) {
|
||||||
// no overlap: this texture can use the unit quad as its position data
|
// no overlap and no padding: this texture can use the unit quad as its position data
|
||||||
position = this._unitQuad;
|
position = this._unitQuad;
|
||||||
|
} else {
|
||||||
|
position = this._makeQuadVertexBuffer(0, sourceWidthFraction, 0, sourceHeightFraction);
|
||||||
}
|
}
|
||||||
|
|
||||||
let textureInfo = {
|
let textureInfo = {
|
||||||
|
Loading…
Reference in New Issue
Block a user