diff --git a/lib/logging.js b/lib/logging.js index 3fb9601..63f3846 100644 --- a/lib/logging.js +++ b/lib/logging.js @@ -20,4 +20,20 @@ export default class Logging { console.log(message) } } + + static warn(message) { + if (ipc) { + ipc.send('warn', message) + } else { + console.warn(message) + } + } + + static error(message) { + if (ipc) { + ipc.send('error', message) + } else { + console.error(message) + } + } } diff --git a/lib/pixi/deepzoom/tile.js b/lib/pixi/deepzoom/tile.js index 39b074e..26da450 100644 --- a/lib/pixi/deepzoom/tile.js +++ b/lib/pixi/deepzoom/tile.js @@ -198,13 +198,30 @@ export default class Tile extends PIXI.Sprite { return null } + /** + * Specialized renderWebGL to avoid freezing system + * + * @param {*} renderer + * @memberof Tile + */ + renderWebGL(renderer) { + try { + super.renderWebGL(renderer) + } + catch (e) { + // We want persistent logging here + Logging.error("Error in Tile.renderWebGL: " + e.message) + } + } + /** * Texture received too late. We do not need it. * @param {*} url * @param {*} texture */ static lateTexture(url, texture) { - let destroyBase = !registeredTiles.has(url) + let destroyBase = Tile.isObsolete(url) + console.log("Tile.lateTexture", destroyBase) texture.destroy(destroyBase) }