diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index dcd36a6..acd0505 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -421,7 +421,7 @@ this.managedFramebuffers = []; - for (let i = 0; i < list.count; i++) + for (let i = 0; i < list.length; i++) { this.disposeFramebuffer(list[i], contextLost); } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index dcd36a6..acd0505 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -421,7 +421,7 @@ this.managedFramebuffers = []; - for (let i = 0; i < list.count; i++) + for (let i = 0; i < list.length; i++) { this.disposeFramebuffer(list[i], contextLost); } diff --git a/packages/core/src/renderTexture/BaseRenderTexture.js b/packages/core/src/renderTexture/BaseRenderTexture.js index dc0248f..17666f9 100644 --- a/packages/core/src/renderTexture/BaseRenderTexture.js +++ b/packages/core/src/renderTexture/BaseRenderTexture.js @@ -142,7 +142,5 @@ super.destroy(true); this.framebuffer = null; - - this.renderer = null; } } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index dcd36a6..acd0505 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -421,7 +421,7 @@ this.managedFramebuffers = []; - for (let i = 0; i < list.count; i++) + for (let i = 0; i < list.length; i++) { this.disposeFramebuffer(list[i], contextLost); } diff --git a/packages/core/src/renderTexture/BaseRenderTexture.js b/packages/core/src/renderTexture/BaseRenderTexture.js index dc0248f..17666f9 100644 --- a/packages/core/src/renderTexture/BaseRenderTexture.js +++ b/packages/core/src/renderTexture/BaseRenderTexture.js @@ -142,7 +142,5 @@ super.destroy(true); this.framebuffer = null; - - this.renderer = null; } } diff --git a/packages/core/src/textures/BaseTexture.js b/packages/core/src/textures/BaseTexture.js index d1167ae..5f2228d 100644 --- a/packages/core/src/textures/BaseTexture.js +++ b/packages/core/src/textures/BaseTexture.js @@ -303,7 +303,7 @@ */ get realWidth() { - return this.width * this.resolution; + return Math.ceil(this.width * this.resolution); } /** @@ -314,7 +314,7 @@ */ get realHeight() { - return this.height * this.resolution; + return Math.ceil(this.height * this.resolution); } /** @@ -378,8 +378,8 @@ setRealSize(realWidth, realHeight, resolution) { this.resolution = resolution || this.resolution; - this.width = realWidth / this.resolution; - this.height = realHeight / this.resolution; + this.width = Math.ceil(realWidth / this.resolution); + this.height = Math.ceil(realHeight / this.resolution); this._refreshPOT(); this.update(); @@ -415,8 +415,8 @@ if (this.valid) { - this.width = this.width * oldResolution / resolution; - this.height = this.height * oldResolution / resolution; + this.width = Math.ceil(this.width * oldResolution / resolution); + this.height = Math.ceil(this.height * oldResolution / resolution); this.emit('update', this); } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index dcd36a6..acd0505 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -421,7 +421,7 @@ this.managedFramebuffers = []; - for (let i = 0; i < list.count; i++) + for (let i = 0; i < list.length; i++) { this.disposeFramebuffer(list[i], contextLost); } diff --git a/packages/core/src/renderTexture/BaseRenderTexture.js b/packages/core/src/renderTexture/BaseRenderTexture.js index dc0248f..17666f9 100644 --- a/packages/core/src/renderTexture/BaseRenderTexture.js +++ b/packages/core/src/renderTexture/BaseRenderTexture.js @@ -142,7 +142,5 @@ super.destroy(true); this.framebuffer = null; - - this.renderer = null; } } diff --git a/packages/core/src/textures/BaseTexture.js b/packages/core/src/textures/BaseTexture.js index d1167ae..5f2228d 100644 --- a/packages/core/src/textures/BaseTexture.js +++ b/packages/core/src/textures/BaseTexture.js @@ -303,7 +303,7 @@ */ get realWidth() { - return this.width * this.resolution; + return Math.ceil(this.width * this.resolution); } /** @@ -314,7 +314,7 @@ */ get realHeight() { - return this.height * this.resolution; + return Math.ceil(this.height * this.resolution); } /** @@ -378,8 +378,8 @@ setRealSize(realWidth, realHeight, resolution) { this.resolution = resolution || this.resolution; - this.width = realWidth / this.resolution; - this.height = realHeight / this.resolution; + this.width = Math.ceil(realWidth / this.resolution); + this.height = Math.ceil(realHeight / this.resolution); this._refreshPOT(); this.update(); @@ -415,8 +415,8 @@ if (this.valid) { - this.width = this.width * oldResolution / resolution; - this.height = this.height * oldResolution / resolution; + this.width = Math.ceil(this.width * oldResolution / resolution); + this.height = Math.ceil(this.height * oldResolution / resolution); this.emit('update', this); } diff --git a/packages/extract/src/Extract.js b/packages/extract/src/Extract.js index 986d158..e79f2d4 100644 --- a/packages/extract/src/Extract.js +++ b/packages/extract/src/Extract.js @@ -113,8 +113,8 @@ renderer.renderTexture.bind(null); } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); @@ -136,7 +136,7 @@ // add the pixels to the canvas const canvasData = canvasBuffer.context.getImageData(0, 0, width, height); - canvasData.data.set(webglPixels); + Extract.arrayPostDivide(webglPixels, canvasData.data); canvasBuffer.context.putImageData(canvasData, 0, 0); @@ -162,7 +162,7 @@ * * @param {PIXI.DisplayObject|PIXI.RenderTexture} target - A displayObject or renderTexture * to convert. If left empty will use the main renderer - * @return {Uint8ClampedArray} One-dimensional array containing the pixel data of the entire texture + * @return {Uint8Array} One-dimensional array containing the pixel data of the entire texture */ pixels(target) { @@ -227,6 +227,8 @@ renderTexture.destroy(true); } + Extract.arrayPostDivide(webglPixels, webglPixels); + return webglPixels; } @@ -239,4 +241,32 @@ this.renderer.extract = null; this.renderer = null; } + + /** + * Takes premultiplied pixel data and produces regular pixel data + * + * @private + * @param pixels {number[] | Uint8Array | Uint8ClampedArray} array of pixel data + * @param out {number[] | Uint8Array | Uint8ClampedArray} output array + */ + static arrayPostDivide(pixels, out) + { + for (let i = 0; i < pixels.length; i += 4) + { + const alpha = out[i + 3] = pixels[i + 3]; + + if (alpha !== 0) + { + out[i] = Math.round(Math.min(pixels[i] * 255.0 / alpha, 255.0)); + out[i + 1] = Math.round(Math.min(pixels[i + 1] * 255.0 / alpha, 255.0)); + out[i + 2] = Math.round(Math.min(pixels[i + 2] * 255.0 / alpha, 255.0)); + } + else + { + out[i] = pixels[i]; + out[i + 1] = pixels[i + 1]; + out[i + 2] = pixels[i + 2]; + } + } + } } diff --git a/packages/accessibility/src/AccessibilityManager.js b/packages/accessibility/src/AccessibilityManager.js index eefb65e..89916a0 100644 --- a/packages/accessibility/src/AccessibilityManager.js +++ b/packages/accessibility/src/AccessibilityManager.js @@ -472,6 +472,8 @@ const interactionManager = this.renderer.plugins.interaction; interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'pointertap', interactionManager.eventData); + interactionManager.dispatchEvent(e.target.displayObject, 'tap', interactionManager.eventData); } /** diff --git a/packages/canvas/canvas-extract/src/CanvasExtract.js b/packages/canvas/canvas-extract/src/CanvasExtract.js index 58dfcbc..5b791cb 100644 --- a/packages/canvas/canvas-extract/src/CanvasExtract.js +++ b/packages/canvas/canvas-extract/src/CanvasExtract.js @@ -105,8 +105,8 @@ frame.height = this.renderer.height; } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); const canvasData = context.getImageData(frame.x * resolution, frame.y * resolution, width, height); diff --git a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js index 225beb0..c61c338 100644 --- a/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js +++ b/packages/canvas/canvas-sprite/src/CanvasSpriteRenderer.js @@ -162,12 +162,12 @@ sprite._tintedCanvas, 0, 0, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } else @@ -176,12 +176,12 @@ source, texture._frame.x * resolution, texture._frame.y * resolution, - width * resolution, - height * resolution, - dx * renderer.resolution, - dy * renderer.resolution, - width * renderer.resolution, - height * renderer.resolution + Math.floor(width * resolution), + Math.floor(height * resolution), + Math.floor(dx * renderer.resolution), + Math.floor(dy * renderer.resolution), + Math.floor(width * renderer.resolution), + Math.floor(height * renderer.resolution) ); } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 1a2c851..d60bf55 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -384,7 +384,7 @@ */ resize(screenWidth, screenHeight) { - AbstractRenderer.prototype.resize.call(this, screenWidth, screenHeight); + super.resize(screenWidth, screenHeight); this.runners.resize.run(screenWidth, screenHeight); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index dcd36a6..acd0505 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -421,7 +421,7 @@ this.managedFramebuffers = []; - for (let i = 0; i < list.count; i++) + for (let i = 0; i < list.length; i++) { this.disposeFramebuffer(list[i], contextLost); } diff --git a/packages/core/src/renderTexture/BaseRenderTexture.js b/packages/core/src/renderTexture/BaseRenderTexture.js index dc0248f..17666f9 100644 --- a/packages/core/src/renderTexture/BaseRenderTexture.js +++ b/packages/core/src/renderTexture/BaseRenderTexture.js @@ -142,7 +142,5 @@ super.destroy(true); this.framebuffer = null; - - this.renderer = null; } } diff --git a/packages/core/src/textures/BaseTexture.js b/packages/core/src/textures/BaseTexture.js index d1167ae..5f2228d 100644 --- a/packages/core/src/textures/BaseTexture.js +++ b/packages/core/src/textures/BaseTexture.js @@ -303,7 +303,7 @@ */ get realWidth() { - return this.width * this.resolution; + return Math.ceil(this.width * this.resolution); } /** @@ -314,7 +314,7 @@ */ get realHeight() { - return this.height * this.resolution; + return Math.ceil(this.height * this.resolution); } /** @@ -378,8 +378,8 @@ setRealSize(realWidth, realHeight, resolution) { this.resolution = resolution || this.resolution; - this.width = realWidth / this.resolution; - this.height = realHeight / this.resolution; + this.width = Math.ceil(realWidth / this.resolution); + this.height = Math.ceil(realHeight / this.resolution); this._refreshPOT(); this.update(); @@ -415,8 +415,8 @@ if (this.valid) { - this.width = this.width * oldResolution / resolution; - this.height = this.height * oldResolution / resolution; + this.width = Math.ceil(this.width * oldResolution / resolution); + this.height = Math.ceil(this.height * oldResolution / resolution); this.emit('update', this); } diff --git a/packages/extract/src/Extract.js b/packages/extract/src/Extract.js index 986d158..e79f2d4 100644 --- a/packages/extract/src/Extract.js +++ b/packages/extract/src/Extract.js @@ -113,8 +113,8 @@ renderer.renderTexture.bind(null); } - const width = frame.width * resolution; - const height = frame.height * resolution; + const width = Math.floor(frame.width * resolution); + const height = Math.floor(frame.height * resolution); const canvasBuffer = new CanvasRenderTarget(width, height, 1); @@ -136,7 +136,7 @@ // add the pixels to the canvas const canvasData = canvasBuffer.context.getImageData(0, 0, width, height); - canvasData.data.set(webglPixels); + Extract.arrayPostDivide(webglPixels, canvasData.data); canvasBuffer.context.putImageData(canvasData, 0, 0); @@ -162,7 +162,7 @@ * * @param {PIXI.DisplayObject|PIXI.RenderTexture} target - A displayObject or renderTexture * to convert. If left empty will use the main renderer - * @return {Uint8ClampedArray} One-dimensional array containing the pixel data of the entire texture + * @return {Uint8Array} One-dimensional array containing the pixel data of the entire texture */ pixels(target) { @@ -227,6 +227,8 @@ renderTexture.destroy(true); } + Extract.arrayPostDivide(webglPixels, webglPixels); + return webglPixels; } @@ -239,4 +241,32 @@ this.renderer.extract = null; this.renderer = null; } + + /** + * Takes premultiplied pixel data and produces regular pixel data + * + * @private + * @param pixels {number[] | Uint8Array | Uint8ClampedArray} array of pixel data + * @param out {number[] | Uint8Array | Uint8ClampedArray} output array + */ + static arrayPostDivide(pixels, out) + { + for (let i = 0; i < pixels.length; i += 4) + { + const alpha = out[i + 3] = pixels[i + 3]; + + if (alpha !== 0) + { + out[i] = Math.round(Math.min(pixels[i] * 255.0 / alpha, 255.0)); + out[i + 1] = Math.round(Math.min(pixels[i + 1] * 255.0 / alpha, 255.0)); + out[i + 2] = Math.round(Math.min(pixels[i + 2] * 255.0 / alpha, 255.0)); + } + else + { + out[i] = pixels[i]; + out[i + 1] = pixels[i + 1]; + out[i + 2] = pixels[i + 2]; + } + } + } } diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index b1625d0..21e1c76 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -311,8 +311,8 @@ const padding = style.trim ? 0 : style.padding; const baseTexture = texture.baseTexture; - texture.trim.width = texture._frame.width = canvas.width / this._resolution; - texture.trim.height = texture._frame.height = canvas.height / this._resolution; + texture.trim.width = texture._frame.width = Math.ceil(canvas.width / this._resolution); + texture.trim.height = texture._frame.height = Math.ceil(canvas.height / this._resolution); texture.trim.x = -padding; texture.trim.y = -padding; @@ -406,8 +406,8 @@ let currentIteration; let stop; - const width = this.canvas.width / this._resolution; - const height = this.canvas.height / this._resolution; + const width = Math.ceil(this.canvas.width / this._resolution); + const height = Math.ceil(this.canvas.height / this._resolution); // make a copy of the style settings, so we can manipulate them later const fill = style.fill.slice();