Fixed worker path problems.
This commit is contained in:
		
							parent
							
								
									da212ac188
								
							
						
					
					
						commit
						4e9dd2fa02
					
				
							
								
								
									
										122
									
								
								dist/iwmlib.pixi.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										122
									
								
								dist/iwmlib.pixi.js
									
									
									
									
										vendored
									
									
								
							| @ -1402,6 +1402,8 @@ | ||||
|     Events$1.simulated = []; | ||||
|     Events$1.simulationRunning = false; | ||||
| 
 | ||||
|     /* global PIXI TweenLite */ | ||||
| 
 | ||||
|     /** | ||||
|      * Callback for the button action. | ||||
|      * | ||||
| @ -1559,7 +1561,7 @@ | ||||
|             } | ||||
| 
 | ||||
|             if (this.opts.style === 'link') { | ||||
|                 Object.assign(this.opts, {strokeAlpha: 0, strokeActiveAlpha: 0, fillAlpha: 0, fillActiveAlpha: 0}); | ||||
|                 Object.assign(this.opts, { strokeAlpha: 0, strokeActiveAlpha: 0, fillAlpha: 0, fillActiveAlpha: 0 }); | ||||
|             } | ||||
| 
 | ||||
|             this._active = null; | ||||
| @ -1631,7 +1633,7 @@ | ||||
|             //-----------------
 | ||||
|             this.button.on('pointerover', e => { | ||||
|                 this.capture(e); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, {alpha: .83, overwrite: 'none'}); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, { alpha: .83, overwrite: 'none' }); | ||||
|             }); | ||||
| 
 | ||||
|             this.button.on('pointermove', e => { | ||||
| @ -1640,12 +1642,13 @@ | ||||
| 
 | ||||
|             this.button.on('pointerout', e => { | ||||
|                 this.capture(e); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, {alpha: 1, overwrite: 'none'}); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, { alpha: 1, overwrite: 'none' }); | ||||
|             }); | ||||
| 
 | ||||
|             // eslint-disable-next-line no-unused-vars
 | ||||
|             this.button.on('pointerdown', e => { | ||||
|                 //this.capture(e)
 | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, {alpha: .7, overwrite: 'none'}); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, { alpha: .7, overwrite: 'none' }); | ||||
|             }); | ||||
| 
 | ||||
|             this.button.on('pointerup', e => { | ||||
| @ -1658,7 +1661,7 @@ | ||||
|                     this.opts.action.call(this, e, this); | ||||
|                 } | ||||
| 
 | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, {alpha: .83, overwrite: 'none'}); | ||||
|                 TweenLite.to([this.button, this.content], this.theme.fast, { alpha: .83, overwrite: 'none' }); | ||||
| 
 | ||||
|                 if (this.opts.type === 'checkbox') { | ||||
|                     this.active = !this.active; | ||||
| @ -1681,9 +1684,9 @@ | ||||
|             //-----------------
 | ||||
|             if (this.opts.tooltip) { | ||||
|                 if (typeof this.opts.tooltip === 'string') { | ||||
|                     this.tooltip = new Tooltip({object: this, content: this.opts.tooltip}); | ||||
|                     this.tooltip = new Tooltip({ object: this, content: this.opts.tooltip }); | ||||
|                 } else { | ||||
|                     this.opts.tooltip = Object.assign({}, {object: this}, this.opts.tooltip); | ||||
|                     this.opts.tooltip = Object.assign({}, { object: this }, this.opts.tooltip); | ||||
|                     this.tooltip = new Tooltip(this.opts.tooltip); | ||||
|                 } | ||||
|             } | ||||
| @ -1698,7 +1701,7 @@ | ||||
|                     offsetTop: 0 | ||||
|                 }); | ||||
|                 if (typeof this.opts.badge === 'string') { | ||||
|                     opts = Object.assign(opts, {content: this.opts.badge}); | ||||
|                     opts = Object.assign(opts, { content: this.opts.badge }); | ||||
|                 } else { | ||||
|                     opts = Object.assign(opts, this.opts.badge); | ||||
|                 } | ||||
| @ -1706,25 +1709,25 @@ | ||||
|                 const badge = new Badge(opts); | ||||
| 
 | ||||
|                 switch (opts.align) { | ||||
|                     case 'left': | ||||
|                         badge.x = this.x - badge.width / 2 + opts.offsetLeft; | ||||
|                         break | ||||
|                     case 'center': | ||||
|                         badge.x = this.x + this.width / 2 - badge.width / 2 + opts.offsetLeft; | ||||
|                         break | ||||
|                     case 'right': | ||||
|                         badge.x = this.x + this.width - badge.width / 2 + opts.offsetLeft; | ||||
|                 case 'left': | ||||
|                     badge.x = this.x - badge.width / 2 + opts.offsetLeft; | ||||
|                     break | ||||
|                 case 'center': | ||||
|                     badge.x = this.x + this.width / 2 - badge.width / 2 + opts.offsetLeft; | ||||
|                     break | ||||
|                 case 'right': | ||||
|                     badge.x = this.x + this.width - badge.width / 2 + opts.offsetLeft; | ||||
|                 } | ||||
| 
 | ||||
|                 switch (opts.verticalAlign) { | ||||
|                     case 'top': | ||||
|                         badge.y = this.y - badge.height / 2 + opts.offsetTop; | ||||
|                         break | ||||
|                     case 'middle': | ||||
|                         badge.y = this.y + this.height / 2 - badge.height / 2 + opts.offsetTop; | ||||
|                         break | ||||
|                     case 'bottom': | ||||
|                         badge.y = this.y + this.height - badge.height / 2 + opts.offsetTop; | ||||
|                 case 'top': | ||||
|                     badge.y = this.y - badge.height / 2 + opts.offsetTop; | ||||
|                     break | ||||
|                 case 'middle': | ||||
|                     badge.y = this.y + this.height / 2 - badge.height / 2 + opts.offsetTop; | ||||
|                     break | ||||
|                 case 'bottom': | ||||
|                     badge.y = this.y + this.height - badge.height / 2 + opts.offsetTop; | ||||
|                 } | ||||
| 
 | ||||
|                 this.addChild(badge); | ||||
| @ -1834,15 +1837,15 @@ | ||||
| 
 | ||||
|             for (let child of this.content.children) { | ||||
|                 switch (this.opts.verticalAlign) { | ||||
|                     case 'top': | ||||
|                         child.y = 0; | ||||
|                         break | ||||
|                     case 'middle': | ||||
|                         child.y = this.content.height / 2 - child.height / 2; | ||||
|                         break | ||||
|                     case 'bottom': | ||||
|                         child.y = this.content.height - child.height; | ||||
|                         break | ||||
|                 case 'top': | ||||
|                     child.y = 0; | ||||
|                     break | ||||
|                 case 'middle': | ||||
|                     child.y = this.content.height / 2 - child.height / 2; | ||||
|                     break | ||||
|                 case 'bottom': | ||||
|                     child.y = this.content.height - child.height; | ||||
|                     break | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
| @ -1859,27 +1862,27 @@ | ||||
|         layoutContent() { | ||||
| 
 | ||||
|             switch (this.opts.align) { | ||||
|                 case 'left': | ||||
|                     this.content.x = this.opts.padding; | ||||
|                     break | ||||
|                 case 'center': | ||||
|                     this.content.x = ((this._width - this.content.width) / 2); | ||||
|                     break | ||||
|                 case 'right': | ||||
|                     this.content.x = this._width - this.opts.padding - this.content.width; | ||||
|                     break | ||||
|             case 'left': | ||||
|                 this.content.x = this.opts.padding; | ||||
|                 break | ||||
|             case 'center': | ||||
|                 this.content.x = ((this._width - this.content.width) / 2); | ||||
|                 break | ||||
|             case 'right': | ||||
|                 this.content.x = this._width - this.opts.padding - this.content.width; | ||||
|                 break | ||||
|             } | ||||
| 
 | ||||
|             switch (this.opts.verticalAlign) { | ||||
|                 case 'top': | ||||
|                     this.content.y = this.opts.padding; | ||||
|                     break | ||||
|                 case 'middle': | ||||
|                     this.content.y = (this._height - this.content.height) / 2; | ||||
|                     break | ||||
|                 case 'bottom': | ||||
|                     this.content.y = this._height - this.opts.padding - this.content.height; | ||||
|                     break | ||||
|             case 'top': | ||||
|                 this.content.y = this.opts.padding; | ||||
|                 break | ||||
|             case 'middle': | ||||
|                 this.content.y = (this._height - this.content.height) / 2; | ||||
|                 break | ||||
|             case 'bottom': | ||||
|                 this.content.y = this._height - this.opts.padding - this.content.height; | ||||
|                 break | ||||
|             } | ||||
| 
 | ||||
|             return this | ||||
| @ -8320,9 +8323,11 @@ | ||||
|      **/ | ||||
|     class WorkerTileLoader extends TileLoader { | ||||
| 
 | ||||
|         constructor(tiles) { | ||||
|         constructor(tiles, workerPath) { | ||||
|             super(tiles); | ||||
|             let worker = this.worker = new Worker("../../lib/pixi/deepzoom/tileloader.js"); | ||||
| 
 | ||||
|             let worker = this.worker = new Worker(workerPath); | ||||
| 
 | ||||
|             worker.onmessage = (event) => { | ||||
|                 if (event.data.success) { | ||||
|                     let { url, col, row, buffer } = event.data; | ||||
| @ -8414,10 +8419,11 @@ | ||||
|             this.tileScale = scale; | ||||
|             this.fadeInTime = fadeInTime; | ||||
|             this.keep = false; | ||||
|             if (this.view.preferWorker && view.info.compression.length > 0) | ||||
|                 this.loader = new WorkerTileLoader(this); | ||||
|             else | ||||
|             if (this.view.useWorker && view.info.compression && view.info.compression.length > 0) { | ||||
|                 this.loader = new WorkerTileLoader(this, this.view.useWorker); | ||||
|             } else { | ||||
|                 this.loader = new PIXITileLoader(this, view.info.compression); | ||||
|             } | ||||
|             this.interactive = false; | ||||
|             this._highlight = null; | ||||
| 
 | ||||
| @ -9040,7 +9046,7 @@ | ||||
|                 world = null,               // Defines the world bounds the images lives in
 | ||||
|                 highResolution = true, | ||||
|                 autoLoadTiles = true, | ||||
|                 preferWorker = false, | ||||
|                 useWorker = '', | ||||
|                 minimumLevel = 0, | ||||
|                 alpha = 1, | ||||
|                 app = window.app | ||||
| @ -9051,7 +9057,7 @@ | ||||
|             this.debug = debug; | ||||
|             this.shadow = shadow; | ||||
|             this.world = world; | ||||
|             this.preferWorker = preferWorker; | ||||
|             this.useWorker = useWorker; | ||||
|             this.resolution = highResolution | ||||
|                 ? Math.round(window.devicePixelRatio) | ||||
|                 : 1; | ||||
|  | ||||
| @ -344,7 +344,7 @@ export class DeepZoomImage extends PIXI.Container { | ||||
|             world = null,               // Defines the world bounds the images lives in
 | ||||
|             highResolution = true, | ||||
|             autoLoadTiles = true, | ||||
|             preferWorker = false, | ||||
|             useWorker = '', | ||||
|             minimumLevel = 0, | ||||
|             alpha = 1, | ||||
|             app = window.app | ||||
| @ -355,7 +355,7 @@ export class DeepZoomImage extends PIXI.Container { | ||||
|         this.debug = debug | ||||
|         this.shadow = shadow | ||||
|         this.world = world | ||||
|         this.preferWorker = preferWorker | ||||
|         this.useWorker = useWorker | ||||
|         this.resolution = highResolution | ||||
|             ? Math.round(window.devicePixelRatio) | ||||
|             : 1 | ||||
|  | ||||
| @ -327,9 +327,11 @@ export class RequestTileLoader extends TileLoader { | ||||
|  **/ | ||||
| export class WorkerTileLoader extends TileLoader { | ||||
| 
 | ||||
|     constructor(tiles) { | ||||
|     constructor(tiles, workerPath) { | ||||
|         super(tiles) | ||||
|         let worker = this.worker = new Worker("../../lib/pixi/deepzoom/tileloader.js") | ||||
| 
 | ||||
|         let worker = this.worker = new Worker(workerPath) | ||||
| 
 | ||||
|         worker.onmessage = (event) => { | ||||
|             if (event.data.success) { | ||||
|                 let { url, col, row, buffer } = event.data | ||||
|  | ||||
| @ -9,7 +9,7 @@ function load() { | ||||
|         let tile = loadQueue.shift() | ||||
|         let [col, row, url] = tile | ||||
|         let xhr = new XMLHttpRequest() | ||||
|         xhr.responseType = "arraybuffer" | ||||
|         xhr.responseType = 'arraybuffer' | ||||
|         xhr.onload = (event) => { | ||||
|             pendingRequests.delete(url) | ||||
|             let buffer = xhr.response | ||||
| @ -27,7 +27,7 @@ function load() { | ||||
|     if (loadQueue.length>0) | ||||
|         setTimeout(load, 1000/120) | ||||
|     else { | ||||
|         if (debug) console.log("Ready") | ||||
|         if (debug) console.log('Ready') | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -48,10 +48,11 @@ export class Tiles extends PIXI.Container { | ||||
|         this.tileScale = scale | ||||
|         this.fadeInTime = fadeInTime | ||||
|         this.keep = false | ||||
|         if (this.view.preferWorker && view.info.compression.length > 0) | ||||
|             this.loader = new WorkerTileLoader(this) | ||||
|         else | ||||
|         if (this.view.useWorker && view.info.compression && view.info.compression.length > 0) { | ||||
|             this.loader = new WorkerTileLoader(this, this.view.useWorker) | ||||
|         } else { | ||||
|             this.loader = new PIXITileLoader(this, view.info.compression) | ||||
|         } | ||||
|         this.interactive = false | ||||
|         this._highlight = null | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										39
									
								
								lib/pixi/deepzoom/worker/module.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								lib/pixi/deepzoom/worker/module.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| <!doctype html> | ||||
| <html lang="en"> | ||||
| 
 | ||||
| <head> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||||
| 
 | ||||
|     <title>DeepZoomImage Worker Doctests</title> | ||||
| 
 | ||||
|     <link rel="stylesheet" href="../../../3rdparty/highlight/styles/default.css"> | ||||
|     <link rel="stylesheet" href="../../../../css/doctest.css"> | ||||
| 
 | ||||
|     <script src="../../../3rdparty/highlight/highlight.pack.js"></script> | ||||
| 
 | ||||
|     <script src="../../../../dist/iwmlib.3rdparty.js"></script> | ||||
|     <script src="../../../bootstrap.js"></script> | ||||
| 
 | ||||
|     <style> | ||||
|         #app { | ||||
|             display: table; | ||||
|             margin: 0 auto; | ||||
|         } | ||||
| 
 | ||||
|         #app > * { | ||||
|             margin-bottom: 5px; | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
|     <h1>DeepZoomImage with tiles loaded by a worker...</h1> | ||||
|     <p>...from inside a module.</p> | ||||
|     <br /> | ||||
|     <div id="div1"></div> | ||||
|     <script class="doctest"> | ||||
|         Bootstrap.import("./module.js") | ||||
|     </script> | ||||
| </body> | ||||
| 
 | ||||
| </html> | ||||
							
								
								
									
										54
									
								
								lib/pixi/deepzoom/worker/module.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								lib/pixi/deepzoom/worker/module.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | ||||
| import PIXIApp from '../../app.js' | ||||
| import {DeepZoomInfo, DeepZoomImage} from '../image.js' | ||||
| import {ScatterContainer, DisplayObjectScatter} from '../../scatter.js' | ||||
| 
 | ||||
| // deepZoom
 | ||||
| //--------------------
 | ||||
| const deepZoomInfo = new DeepZoomInfo({ | ||||
|     compression: ["dds"], | ||||
|     clip: { | ||||
|         minLevel: 12, | ||||
|         maxLevel: 20, | ||||
|         startCol: 275215, | ||||
|         startRow: 181050, | ||||
|         bounds: { | ||||
|             min: [48.458353, 8.96484374976547], | ||||
|             max: [48.5747899110263, 9.14062499976523] | ||||
|         } | ||||
|     }, | ||||
|     tileSize: 512, | ||||
|     format: "png", | ||||
|     overlap: 0, | ||||
|     type: "map", | ||||
|     height: 131072, | ||||
|     width: 131072, | ||||
|     path: "../../../../Tuesch/var/luftbild/2018", | ||||
|     urlTileTemplate: "{path}/{level}/{row}/{column}.{format}" | ||||
| }) | ||||
| 
 | ||||
| // app
 | ||||
| //--------------------
 | ||||
| const app = new PIXIApp({ | ||||
|     width: 800, | ||||
|     height: 500 | ||||
| }).setup().run() | ||||
| 
 | ||||
| div1.appendChild(app.view) | ||||
| 
 | ||||
| // create the ScatterContainer
 | ||||
| //--------------------
 | ||||
| const scatterContainer = new ScatterContainer(app.renderer, {showBounds: true, app: app}) | ||||
| app.scene.addChild(scatterContainer) | ||||
| 
 | ||||
| // Create the DeepZoomImage
 | ||||
| //--------------------
 | ||||
| const deepZoomImage = new DeepZoomImage(deepZoomInfo, {app, world: scatterContainer, useWorker: '../tileloader.js'}) | ||||
| deepZoomImage.scatter = new DisplayObjectScatter(deepZoomImage, app.renderer, { | ||||
|     minScale: 0, | ||||
|     maxScale: 50, | ||||
|     onTransform: event => { | ||||
|         deepZoomImage.transformed(event) | ||||
|     } | ||||
| }) | ||||
| 
 | ||||
| scatterContainer.addChild(deepZoomImage) | ||||
							
								
								
									
										91
									
								
								lib/pixi/deepzoom/worker/script.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								lib/pixi/deepzoom/worker/script.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,91 @@ | ||||
| <!doctype html> | ||||
| <html lang="en"> | ||||
| 
 | ||||
| <head> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||||
| 
 | ||||
|     <title>DeepZoomImage Worker Doctests</title> | ||||
| 
 | ||||
|     <link rel="stylesheet" href="../../../3rdparty/highlight/styles/default.css"> | ||||
|     <link rel="stylesheet" href="../../../../css/doctest.css"> | ||||
| 
 | ||||
|     <script src="../../../3rdparty/highlight/highlight.pack.js"></script> | ||||
| 
 | ||||
|     <script src="../../../../dist/iwmlib.3rdparty.js"></script> | ||||
|     <script src="../../../../dist/iwmlib.js"></script> | ||||
|     <script src="../../../../dist/iwmlib.pixi.js"></script> | ||||
| 
 | ||||
|     <style> | ||||
|         #app { | ||||
|             display: table; | ||||
|             margin: 0 auto; | ||||
|         } | ||||
| 
 | ||||
|         #app > * { | ||||
|             margin-bottom: 5px; | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| 
 | ||||
| <body onload="Doctest.run()"> | ||||
|     <h1>DeepZoomImage with tiles loaded by a worker...</h1> | ||||
|     <p>...using the dist variants.</p> | ||||
|     <br /> | ||||
|     <div id="div1"></div> | ||||
|     <script class="doctest"> | ||||
|          | ||||
|         // deepZoom | ||||
|         //-------------------- | ||||
|         const deepZoomInfo = new DeepZoomInfo({ | ||||
|             compression: ["dds"], | ||||
|             clip: { | ||||
|                 minLevel: 12, | ||||
|                 maxLevel: 20, | ||||
|                 startCol: 275215, | ||||
|                 startRow: 181050, | ||||
|                 bounds: { | ||||
|                     min: [48.458353, 8.96484374976547], | ||||
|                     max: [48.5747899110263, 9.14062499976523] | ||||
|                 } | ||||
|             }, | ||||
|             tileSize: 512, | ||||
|             format: "png", | ||||
|             overlap: 0, | ||||
|             type: "map", | ||||
|             height: 131072, | ||||
|             width: 131072, | ||||
|             path: "../../../../Tuesch/var/luftbild/2018", | ||||
|             urlTileTemplate: "{path}/{level}/{row}/{column}.{format}" | ||||
|         }) | ||||
| 
 | ||||
|         // app | ||||
|         //-------------------- | ||||
|         const app = new PIXIApp({ | ||||
|             width: 800, | ||||
|             height: 500 | ||||
|         }).setup().run() | ||||
|          | ||||
|         div1.appendChild(app.view) | ||||
| 
 | ||||
|         // create the ScatterContainer | ||||
|         //-------------------- | ||||
|         const scatterContainer = new ScatterContainer(app.renderer, {showBounds: true, app: app}) | ||||
|         app.scene.addChild(scatterContainer) | ||||
| 
 | ||||
|         // Create the DeepZoomImage | ||||
|         //-------------------- | ||||
|         const deepZoomImage = new DeepZoomImage(deepZoomInfo, {app, world: scatterContainer, useWorker: '../tileloader.js'}) | ||||
|         deepZoomImage.scatter = new DisplayObjectScatter(deepZoomImage, app.renderer, { | ||||
|             minScale: 0, | ||||
|             maxScale: 50, | ||||
|             onTransform: event => { | ||||
|                 deepZoomImage.transformed(event) | ||||
|             } | ||||
|         }) | ||||
| 
 | ||||
|         scatterContainer.addChild(deepZoomImage) | ||||
| 
 | ||||
|     </script> | ||||
| </body> | ||||
| 
 | ||||
| </html> | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user