{"version":3,"file":"pixi-layers.js","sourceRoot":"","sources":["../src/ContainerMixin.ts","../src/DisplayObjectMixin.ts","../src/Group.ts","../src/InteractionManagerMixin.ts","../src/Layer.ts","../src/LayersTreeSearch.ts","../src/Stage.ts","../src/renderers.ts","../src/xporter.ts"],"names":[],"mappings":"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","sourcesContent":["declare namespace PIXI {\r\n export interface Container {\r\n containerRenderWebGL?(renderer: Renderer): void;\r\n }\r\n}\r\n\r\nnamespace pixi_display {\r\n (Object as any).assign(PIXI.Container.prototype, {\r\n render: function (renderer: PIXI.Renderer): void {\r\n if (this._activeParentLayer && this._activeParentLayer != renderer._activeLayer) {\r\n return;\r\n }\r\n\r\n if (!this.visible) {\r\n this.displayOrder = 0;\r\n return;\r\n }\r\n\r\n this.displayOrder = renderer.incDisplayOrder();\r\n\r\n // if the object is not visible or the alpha is 0 then no need to render this element\r\n if (this.worldAlpha <= 0 || !this.renderable) {\r\n return;\r\n }\r\n\r\n\t renderer._activeLayer = null;\r\n this.containerRenderWebGL(renderer);\r\n\t renderer._activeLayer = this._activeParentLayer;\r\n },\r\n renderCanvas: function (renderer: PIXI.CanvasRenderer): void {\r\n if (this._activeParentLayer && this._activeParentLayer != renderer._activeLayer) {\r\n return;\r\n }\r\n\r\n if (!this.visible) {\r\n this.displayOrder = 0;\r\n return;\r\n }\r\n\r\n this.displayOrder = renderer.incDisplayOrder();\r\n\r\n // if the object is not visible or the alpha is 0 then no need to render this element\r\n if (this.worldAlpha <= 0 || !this.renderable) {\r\n return;\r\n }\r\n\r\n\t renderer._activeLayer = null;\r\n this.containerRenderCanvas(renderer);\r\n\t renderer._activeLayer = this._activeParentLayer;\r\n },\r\n containerRenderWebGL: PIXI.Container.prototype.render,\r\n containerRenderCanvas: (PIXI.Container as any).prototype.renderCanvas\r\n });\r\n}","declare namespace PIXI {\r\n export interface DisplayObject {\r\n parentGroup: pixi_display.Group,\r\n\r\n /**\r\n * Object will be rendered\r\n *\r\n * please specify it to handle zOrder and zIndex\r\n *\r\n * its always null for layers\r\n *\r\n */\r\n parentLayer?: pixi_display.Layer,\r\n\r\n\r\n _activeParentLayer?: pixi_display.Layer,\r\n /**\r\n * zOrder is used to sort element inside the layer\r\n * It can be used with zIndex together: First PixiJS v5 sorts elements by zIndex inside a container,\r\n * then pixi-layers plugin sorts by zOrder inside a layer.\r\n */\r\n zOrder?: number,\r\n\r\n /**\r\n * updateOrder is calculated by DisplayList, it is required for sorting inside DisplayGroup\r\n */\r\n updateOrder?: number,\r\n\r\n /**\r\n * displayOrder is calculated by render, it is required for interaction\r\n */\r\n displayOrder?: number,\r\n\r\n /**\r\n * Stage will look inside for elements that can be re-arranged, if this flag is true\r\n * Make it false for ParticleContainer\r\n */\r\n layerableChildren?: boolean\r\n\r\n\t /**\r\n\t * is Layer\r\n\t */\r\n\t isLayer?: boolean;\r\n\r\n\t containsPoint?(p: PIXI.IPoint): boolean;\r\n }\r\n}\r\n\r\n(Object as any).assign(PIXI.DisplayObject.prototype, {\r\n parentLayer: null,\r\n _activeParentLayer: null,\r\n parentGroup: null,\r\n zOrder: 0,\r\n zIndex: 0,\r\n updateOrder: 0,\r\n displayOrder: 0,\r\n layerableChildren: true,\r\n\tisLayer: false\r\n});\r\n\r\nif (PIXI.ParticleContainer) {\r\n PIXI.ParticleContainer.prototype.layerableChildren = false;\r\n}\r\nelse if ((PIXI as any).ParticleContainer) {\r\n (PIXI as any).ParticleContainer.prototype.layerableChildren = false;\r\n}\r\n","/**\r\n * A shared component for multiple DisplayObject's allows to specify rendering order for them\r\n *\r\n * @class\r\n * @extends EventEmitter\r\n * @memberof PIXI\r\n * @param zIndex {number} z-index for display group\r\n * @param sorting {boolean | Function} if you need to sort elements inside, please provide function that will set displayObject.zOrder accordingly\r\n */\r\n\r\nnamespace pixi_display {\r\n import DisplayObject = PIXI.DisplayObject;\r\n import utils = PIXI.utils;\r\n\r\n export class Group extends utils.EventEmitter {\r\n static _layerUpdateId = 0;\r\n\r\n _activeLayer: Layer = null;\r\n\r\n _activeStage: Stage = null;\r\n\r\n _activeChildren: Array = [];\r\n\r\n _lastUpdateId = -1;\r\n\r\n useRenderTexture: boolean = false;\r\n useDoubleBuffer: boolean = false;\r\n sortPriority: number = 0;\r\n clearColor : ArrayLike = new Float32Array([0, 0, 0, 0]);\r\n\r\n //TODO: handle orphan groups\r\n //TODO: handle groups that don't want to be drawn in parent\r\n canDrawWithoutLayer = false;\r\n canDrawInParentStage = true;\r\n\r\n /**\r\n * default zIndex value for layers that are created with this Group\r\n * @type {number}\r\n */\r\n zIndex = 0;\r\n\r\n enableSort = false;\r\n\r\n constructor(zIndex: number, sorting: boolean | Function) {\r\n super();\r\n\r\n this.zIndex = zIndex;\r\n\r\n this.enableSort = !!sorting;\r\n\r\n if (typeof sorting === 'function') {\r\n this.on('sort', sorting);\r\n }\r\n }\r\n\r\n _tempResult: Array = [];\r\n _tempZero: Array = [];\r\n\r\n useZeroOptimization: boolean = false;\r\n\r\n doSort(layer: Layer, sorted: Array) {\r\n if ((this.listeners as any)('sort', true)) {\r\n for (let i = 0; i < sorted.length; i++) {\r\n this.emit('sort', sorted[i]);\r\n }\r\n }\r\n if (this.useZeroOptimization) {\r\n this.doSortWithZeroOptimization(layer, sorted);\r\n } else {\r\n sorted.sort(Group.compareZIndex);\r\n }\r\n }\r\n\r\n static compareZIndex(a: DisplayObject, b: DisplayObject) {\r\n if (a.zOrder < b.zOrder) {\r\n return -1;\r\n }\r\n if (a.zOrder > b.zOrder) {\r\n return 1;\r\n }\r\n return a.updateOrder - b.updateOrder;\r\n }\r\n\r\n doSortWithZeroOptimization(layer: Layer, sorted: Array) {\r\n throw new Error(\"not implemented yet\");\r\n //default sorting\r\n // const result = this._tempResult;\r\n // const zero = this._tempZero;\r\n // for (let i = 0; i < sorted.length; i++) {\r\n // const elem = sorted[i];\r\n // if (elem.zIndex == 0 && elem.zOrder == 0) {\r\n // zero.push(elem);\r\n // } else {\r\n // result.push(elem);\r\n // }\r\n // }\r\n // if (zero.length == 0) {\r\n // sorted.sort(Group.compareZOrder);\r\n // } else {\r\n // result.sort(Group.compareZOrder);\r\n // let j = 0;\r\n // for (let i = 0; i < result.length; i++) {\r\n // const elem = result[i];\r\n // if (elem.zIndex < 0 && elem.zIndex == 0 && elem.zOrder > 0) {\r\n // sorted[j++] = result[i]++;\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n /**\r\n * clears temporary variables\r\n */\r\n clear() {\r\n this._activeLayer = null;\r\n this._activeStage = null;\r\n this._activeChildren.length = 0;\r\n }\r\n\r\n /**\r\n * used only by displayList before sorting takes place\r\n */\r\n addDisplayObject(stage: Stage, displayObject: DisplayObject) {\r\n this.check(stage);\r\n displayObject._activeParentLayer = this._activeLayer;\r\n if (this._activeLayer) {\r\n this._activeLayer._activeChildren.push(displayObject);\r\n } else {\r\n this._activeChildren.push(displayObject);\r\n }\r\n }\r\n\r\n /**\r\n * called when corresponding layer is found in current stage\r\n * @param stage\r\n * @param layer\r\n */\r\n foundLayer(stage: Stage, layer: Layer) {\r\n this.check(stage);\r\n if (this._activeLayer != null) {\r\n Group.conflict();\r\n }\r\n this._activeLayer = layer;\r\n this._activeStage = stage;\r\n }\r\n\r\n /**\r\n * called after stage finished the work\r\n * @param stage\r\n */\r\n foundStage(stage: Stage) {\r\n if (!this._activeLayer && !this.canDrawInParentStage) {\r\n this.clear();\r\n }\r\n }\r\n\r\n check(stage: Stage) {\r\n if (this._lastUpdateId < Group._layerUpdateId) {\r\n this._lastUpdateId = Group._layerUpdateId;\r\n this.clear();\r\n this._activeStage = stage;\r\n } else if (this.canDrawInParentStage) {\r\n let current = this._activeStage;\r\n while (current && current != stage) {\r\n current = current._activeParentStage;\r\n }\r\n this._activeStage = current;\r\n if (current == null) {\r\n this.clear();\r\n return\r\n }\r\n }\r\n }\r\n\r\n static _lastLayerConflict = 0;\r\n\r\n static conflict() {\r\n if (Group._lastLayerConflict + 5000 < Date.now()) {\r\n Group._lastLayerConflict = Date.now();\r\n console.log(\"PIXI-display plugin found two layers with the same group in one stage - that's not healthy. Please place a breakpoint here and debug it\");\r\n }\r\n }\r\n }\r\n}\r\n","//TODO: add maxDisplayOrder for displayObjects and use it to speed up the interaction here\r\n\r\n/**\r\n * @mixin\r\n */\r\n\r\nnamespace pixi_display {\r\n import DisplayObject = PIXI.DisplayObject;\r\n import Point = PIXI.Point;\r\n import InteractionEvent = PIXI.InteractionEvent;\r\n\r\n export function processInteractive51(strangeStuff: InteractionEvent | Point, displayObject: DisplayObject, func: Function, hitTest: boolean, interactive: boolean) {\r\n if (!this.search) {\r\n this.search = new LayersTreeSearch();\r\n }\r\n this.search.findHit(strangeStuff, displayObject, func, hitTest);\r\n\r\n const delayedEvents = this.delayedEvents;\r\n\r\n if (delayedEvents && delayedEvents.length) {\r\n // Reset the propagation hint, because we start deeper in the tree again.\r\n (strangeStuff as any).stopPropagationHint = false;\r\n\r\n const delayedLen = delayedEvents.length;\r\n\r\n this.delayedEvents = [];\r\n\r\n for (let i = 0; i < delayedLen; i++) {\r\n const {displayObject, eventString, eventData} = delayedEvents[i];\r\n\r\n // When we reach the object we wanted to stop propagating at,\r\n // set the propagation hint.\r\n if (eventData.stopsPropagatingAt === displayObject) {\r\n eventData.stopPropagationHint = true;\r\n }\r\n\r\n this.dispatchEvent(displayObject, eventString, eventData);\r\n }\r\n }\r\n }\r\n\r\n export function patchInteractionManager(interactionManager: any) {\r\n if (!interactionManager) {\r\n return;\r\n }\r\n if (interactionManager.search) {\r\n if (!interactionManager.search.worksWithDisplay) {\r\n interactionManager.search = new LayersTreeSearch();\r\n }\r\n } else {\r\n interactionManager.processInteractive = processInteractive51;\r\n }\r\n }\r\n}\r\n","/**\r\n * Created by ivanp on 29.01.2017.\r\n */\r\n\r\nnamespace pixi_display {\r\n export class LayerTextureCache {\r\n constructor(public layer: Layer) {\r\n }\r\n\r\n renderTexture: PIXI.RenderTexture = null;\r\n doubleBuffer: Array = null;\r\n currentBufferIndex = 0;\r\n _tempRenderTarget: PIXI.RenderTexture = null;\r\n _tempRenderTargetSource = new PIXI.Rectangle();\r\n\r\n initRenderTexture(renderer?: PIXI.Renderer) {\r\n const width = renderer ? renderer.screen.width : 100;\r\n const height = renderer ? renderer.screen.height : 100;\r\n const resolution = renderer ? renderer.resolution : PIXI.settings.RESOLUTION;\r\n\r\n this.renderTexture = PIXI.RenderTexture.create({width, height, resolution});\r\n\r\n if (this.layer.group.useDoubleBuffer) {\r\n this.doubleBuffer = [\r\n PIXI.RenderTexture.create({width, height, resolution}),\r\n PIXI.RenderTexture.create({width, height, resolution})\r\n ];\r\n }\r\n }\r\n\r\n getRenderTexture() {\r\n if (!this.renderTexture) {\r\n this.initRenderTexture();\r\n }\r\n return this.renderTexture;\r\n }\r\n\r\n pushTexture(renderer: PIXI.Renderer) {\r\n const screen = renderer.screen;\r\n\r\n if (!this.renderTexture) {\r\n this.initRenderTexture(renderer);\r\n }\r\n\r\n const rt = this.renderTexture;\r\n const group = this.layer.group;\r\n const db = this.doubleBuffer;\r\n\r\n if (rt.width !== screen.width ||\r\n rt.height !== screen.height ||\r\n rt.baseTexture.resolution !== renderer.resolution) {\r\n rt.baseTexture.resolution = renderer.resolution;\r\n rt.resize(screen.width, screen.height);\r\n\r\n if (db) {\r\n db[0].baseTexture.resolution = renderer.resolution;\r\n db[0].resize(screen.width, screen.height);\r\n db[1].baseTexture.resolution = renderer.resolution;\r\n db[1].resize(screen.width, screen.height);\r\n }\r\n }\r\n\r\n this._tempRenderTarget = renderer.renderTexture.current;\r\n this._tempRenderTargetSource.copyFrom(renderer.renderTexture.sourceFrame);\r\n\r\n renderer.batch.flush();\r\n\r\n if (group.useDoubleBuffer) {\r\n // double-buffer logic\r\n let buffer = db[this.currentBufferIndex];\r\n if (!(buffer.baseTexture as any)._glTextures[renderer.CONTEXT_UID]) {\r\n renderer.renderTexture.bind(buffer, undefined, undefined);\r\n renderer.texture.bind(buffer);\r\n if (group.clearColor) {\r\n renderer.renderTexture.clear(group.clearColor as any);\r\n }\r\n }\r\n renderer.texture.unbind(rt.baseTexture);\r\n (rt.baseTexture as any)._glTextures = (buffer.baseTexture as any)._glTextures;\r\n (rt.baseTexture as any).framebuffer = (buffer.baseTexture as any).framebuffer;\r\n\r\n buffer = db[1 - this.currentBufferIndex];\r\n renderer.renderTexture.bind(buffer, undefined, undefined);\r\n } else {\r\n // simple logic\r\n renderer.renderTexture.bind(rt, undefined, undefined);\r\n }\r\n\r\n if (group.clearColor) {\r\n renderer.renderTexture.clear(group.clearColor as any);\r\n }\r\n\r\n // fix for filters\r\n const filterStack = renderer.filter.defaultFilterStack;\r\n if (filterStack.length > 1) {\r\n filterStack[filterStack.length - 1].renderTexture = renderer.renderTexture.current;\r\n }\r\n }\r\n\r\n popTexture(renderer: PIXI.Renderer) {\r\n renderer.batch.flush();\r\n // switch filters back\r\n const filterStack = renderer.filter.defaultFilterStack;\r\n if (filterStack.length > 1) {\r\n filterStack[filterStack.length - 1].renderTexture = this._tempRenderTarget;\r\n }\r\n renderer.renderTexture.bind(this._tempRenderTarget, this._tempRenderTargetSource, undefined);\r\n this._tempRenderTarget = null;\r\n\r\n\t const rt = this.renderTexture;\r\n\t const group = this.layer.group;\r\n\t const db = this.doubleBuffer;\r\n\r\n\t if (group.useDoubleBuffer) {\r\n\t\t renderer.texture.unbind(rt.baseTexture);\r\n\t\t this.currentBufferIndex = 1 - this.currentBufferIndex;\r\n\t\t let buffer = db[this.currentBufferIndex];\r\n\t\t (rt.baseTexture as any)._glTextures = (buffer.baseTexture as any)._glTextures;\r\n\t\t (rt.baseTexture as any).framebuffer = (buffer.baseTexture as any).framebuffer;\r\n\t }\r\n }\r\n\r\n destroy() {\r\n if (this.renderTexture) {\r\n this.renderTexture.destroy();\r\n if (this.doubleBuffer) {\r\n this.doubleBuffer[0].destroy(true);\r\n this.doubleBuffer[1].destroy(true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Layer extends PIXI.Container {\r\n constructor(group: Group = null) {\r\n super();\r\n if (group != null) {\r\n this.group = group;\r\n this.zIndex = group.zIndex;\r\n } else {\r\n this.group = new Group(0, false);\r\n }\r\n this._tempChildren = this.children;\r\n }\r\n\r\n isLayer = true;\r\n group: Group = null;\r\n _activeChildren: Array = [];\r\n _tempChildren: Array = null;\r\n _activeStageParent: Stage = null;\r\n _sortedChildren: Array = [];\r\n _tempLayerParent: Layer = null;\r\n\r\n textureCache: LayerTextureCache;\r\n insertChildrenBeforeActive = true;\r\n insertChildrenAfterActive = true;\r\n\r\n beginWork(stage: Stage) {\r\n const active = this._activeChildren;\r\n this._activeStageParent = stage;\r\n this.group.foundLayer(stage, this);\r\n const groupChildren = this.group._activeChildren;\r\n active.length = 0;\r\n for (let i = 0; i < groupChildren.length; i++) {\r\n groupChildren[i]._activeParentLayer = this;\r\n active.push(groupChildren[i]);\r\n }\r\n groupChildren.length = 0;\r\n }\r\n\r\n endWork() {\r\n const children = this.children;\r\n const active = this._activeChildren;\r\n const sorted = this._sortedChildren;\r\n\r\n for (let i = 0; i < active.length; i++) {\r\n this.emit(\"display\", active[i])\r\n }\r\n\r\n sorted.length = 0;\r\n if (this.insertChildrenBeforeActive) {\r\n for (let i = 0; i < children.length; i++) {\r\n sorted.push(children[i]);\r\n }\r\n }\r\n for (let i = 0; i < active.length; i++) {\r\n sorted.push(active[i]);\r\n }\r\n if (!this.insertChildrenBeforeActive &&\r\n this.insertChildrenAfterActive) {\r\n for (let i = 0; i < children.length; i++) {\r\n sorted.push(children[i]);\r\n }\r\n }\r\n\r\n if (this.group.enableSort) {\r\n this.doSort();\r\n }\r\n }\r\n\r\n get useRenderTexture() {\r\n return this.group.useRenderTexture;\r\n }\r\n\r\n set useRenderTexture(value: boolean) {\r\n this.group.useRenderTexture = value;\r\n }\r\n\r\n get useDoubleBuffer() {\r\n return this.group.useDoubleBuffer;\r\n }\r\n\r\n set useDoubleBuffer(value: boolean) {\r\n this.group.useDoubleBuffer = value;\r\n }\r\n\r\n get clearColor() {\r\n return this.group.clearColor;\r\n }\r\n\r\n set clearColor(value: ArrayLike) {\r\n this.group.clearColor = value;\r\n }\r\n\r\n get sortPriority() {\r\n return this.group.sortPriority;\r\n }\r\n\r\n set sortPriority(value: number) {\r\n this.group.sortPriority = value;\r\n }\r\n\r\n getRenderTexture() {\r\n if (!this.textureCache) {\r\n this.textureCache = new LayerTextureCache(this);\r\n }\r\n return this.textureCache.getRenderTexture();\r\n }\r\n\r\n updateDisplayLayers() {\r\n\r\n }\r\n\r\n /**\r\n * you can override this method for this particular layer, if you want\r\n */\r\n doSort() {\r\n this.group.doSort(this, this._sortedChildren);\r\n }\r\n\r\n _preRender(renderer: PIXI.Renderer): boolean {\r\n if (this._activeParentLayer && this._activeParentLayer != renderer._activeLayer) {\r\n return false;\r\n }\r\n\r\n if (!this.visible) {\r\n this.displayOrder = 0;\r\n return false;\r\n }\r\n\r\n this.displayOrder = renderer.incDisplayOrder();\r\n\r\n // if the object is not visible or the alpha is 0 then no need to render this element\r\n if (this.worldAlpha <= 0 || !this.renderable) {\r\n return false;\r\n }\r\n\r\n // we are making a hack with swapping children, it can go wrong easily\r\n // this is special \"recover\" if that allows stage to recover just after failed frame\r\n\r\n if (this.children !== this._sortedChildren &&\r\n this._tempChildren != this.children) {\r\n this._tempChildren = this.children;\r\n }\r\n\r\n //just a temporary feature - getBounds() for filters will work with that\r\n //TODO: make a better hack for getBounds()\r\n\r\n (this as any)._boundsID++;\r\n (this as any).children = this._sortedChildren;\r\n\r\n this._tempLayerParent = renderer._activeLayer;\r\n renderer._activeLayer = this;\r\n return true;\r\n }\r\n\r\n _postRender(renderer: PIXI.Renderer) {\r\n (this as any).children = this._tempChildren;\r\n renderer._activeLayer = this._tempLayerParent;\r\n this._tempLayerParent = null;\r\n }\r\n\r\n render(renderer: PIXI.Renderer) {\r\n if (!this._preRender(renderer)) {\r\n return;\r\n }\r\n\r\n if (this.group.useRenderTexture) {\r\n if (!this.textureCache) {\r\n this.textureCache = new LayerTextureCache(this);\r\n }\r\n this.textureCache.pushTexture(renderer);\r\n }\r\n\r\n this.containerRenderWebGL(renderer);\r\n this._postRender(renderer);\r\n\r\n if (this.group.useRenderTexture) {\r\n this.textureCache.popTexture(renderer);\r\n }\r\n }\r\n\r\n destroy(options?: any) {\r\n if (this.textureCache) {\r\n this.textureCache.destroy();\r\n this.textureCache = null;\r\n }\r\n super.destroy(options);\r\n }\r\n }\r\n\r\n (Layer.prototype as any).renderCanvas = function(renderer: PIXI.CanvasRenderer) {\r\n if (this._preRender(renderer)) {\r\n this.containerRenderCanvas(renderer);\r\n this._postRender(renderer);\r\n }\r\n }\r\n}\r\n","//TODO: add maxDisplayOrder for displayObjects and use it to speed up the interaction here\r\n\r\n/**\r\n * @mixin\r\n */\r\n\r\nnamespace pixi_display {\r\n import DisplayObject = PIXI.DisplayObject;\r\n import Point = PIXI.Point;\r\n import Graphics = PIXI.Graphics;\r\n import Container = PIXI.Container;\r\n import InteractionEvent = PIXI.InteractionEvent;\r\n\r\n export class LayersTreeSearch {\r\n _tempPoint = new Point();\r\n _queue = [[] as Array, [] as Array];\r\n _eventDisplayOrder = 0;\r\n worksWithDisplay = true;\r\n\r\n recursiveFindHit(point: Point, displayObject: DisplayObject, hitTestOrder: number, interactive: boolean, outOfMask: boolean): number {\r\n if (!displayObject || !displayObject.visible) {\r\n return 0;\r\n }\r\n\r\n let hit = 0,\r\n interactiveParent = interactive = displayObject.interactive || interactive;\r\n\r\n // if the displayobject has a hitArea, then it does not need to hitTest children.\r\n if (displayObject.hitArea) {\r\n interactiveParent = false;\r\n }\r\n\r\n if (displayObject._activeParentLayer) {\r\n outOfMask = false;\r\n }\r\n\r\n // it has a mask! Then lets hit test that before continuing..\r\n const mask: Graphics = (displayObject as any)._mask;\r\n if (hitTestOrder < Infinity && mask) {\r\n if (!mask.containsPoint(point)) {\r\n outOfMask = true;\r\n }\r\n }\r\n\r\n // it has a filterArea! Same as mask but easier, its a rectangle\r\n if (hitTestOrder < Infinity && displayObject.filterArea) {\r\n if (!displayObject.filterArea.contains(point.x, point.y)) {\r\n outOfMask = true;\r\n }\r\n }\r\n\r\n // ** FREE TIP **! If an object is not interactive or has no buttons in it\r\n // (such as a game scene!) set interactiveChildren to false for that displayObject.\r\n // This will allow pixi to completely ignore and bypass checking the displayObjects children.\r\n const children: Array = (displayObject as Container).children;\r\n if ((displayObject as Container).interactiveChildren && children) {\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i];\r\n\r\n // time to get recursive.. if this function will return if something is hit..\r\n const hitChild = this.recursiveFindHit(point, child, hitTestOrder, interactiveParent, outOfMask);\r\n if (hitChild) {\r\n // its a good idea to check if a child has lost its parent.\r\n // this means it has been removed whilst looping so its best\r\n if (!child.parent) {\r\n continue;\r\n }\r\n\r\n hit = hitChild;\r\n hitTestOrder = hitChild;\r\n }\r\n }\r\n }\r\n\r\n // no point running this if the item is not interactive or does not have an interactive parent.\r\n if (interactive) {\r\n if (!outOfMask) {\r\n // if we are hit testing (as in we have no hit any objects yet)\r\n // We also don't need to worry about hit testing if once of the displayObjects children has already been hit!\r\n if (hitTestOrder < displayObject.displayOrder) {\r\n //pixi v4\r\n if (displayObject.hitArea) {\r\n displayObject.worldTransform.applyInverse(point, this._tempPoint);\r\n if (displayObject.hitArea.contains(this._tempPoint.x, this._tempPoint.y)) {\r\n hit = displayObject.displayOrder;\r\n }\r\n } else if ((displayObject as any).containsPoint) {\r\n if ((displayObject as any).containsPoint(point)) {\r\n hit = displayObject.displayOrder;\r\n }\r\n }\r\n }\r\n\r\n if (displayObject.interactive) {\r\n this._queueAdd(displayObject, hit === Infinity ? 0 : hit);\r\n }\r\n } else {\r\n if (displayObject.interactive) {\r\n this._queueAdd(displayObject, 0);\r\n }\r\n }\r\n }\r\n\r\n return hit;\r\n }\r\n\r\n findHit(strangeStuff: InteractionEvent | Point, displayObject: DisplayObject, func: Function, hitTest: boolean)\r\n {\r\n let interactionEvent: InteractionEvent = null;\r\n let point: Point = null;\r\n if ((strangeStuff as InteractionEvent).data &&\r\n (strangeStuff as InteractionEvent).data.global) {\r\n interactionEvent = strangeStuff as InteractionEvent;\r\n point = interactionEvent.data.global;\r\n } else {\r\n point = strangeStuff as Point;\r\n }\r\n this._startInteractionProcess();\r\n this.recursiveFindHit(point, displayObject, hitTest ? 0 : Infinity, false, false);\r\n this._finishInteractionProcess(interactionEvent, func);\r\n }\r\n\r\n _startInteractionProcess() {\r\n //move it to constructor\r\n this._eventDisplayOrder = 1;\r\n if (!this._queue) {\r\n //move it to constructor\r\n this._queue = [[], []];\r\n }\r\n this._queue[0].length = 0;\r\n this._queue[1].length = 0;\r\n }\r\n\r\n _queueAdd(displayObject: DisplayObject, order: number) {\r\n let queue = this._queue;\r\n if (order < this._eventDisplayOrder) {\r\n queue[0].push(displayObject);\r\n } else {\r\n if (order > this._eventDisplayOrder) {\r\n this._eventDisplayOrder = order;\r\n let q = queue[1];\r\n for (let i = 0, l = q.length; i < l; i++) {\r\n queue[0].push(q[i]);\r\n }\r\n queue[1].length = 0;\r\n }\r\n queue[1].push(displayObject);\r\n }\r\n }\r\n _finishInteractionProcess(event: InteractionEvent, func: Function) {\r\n let queue = this._queue;\r\n let q = queue[0];\r\n for (var i = 0, l = q.length; i < l; i++) {\r\n if (event) {\r\n //v4.3\r\n if (func) {\r\n func(event, q[i], false);\r\n }\r\n } else {\r\n //old\r\n func(q[i], false);\r\n }\r\n }\r\n q = queue[1];\r\n for (var i = 0, l = q.length; i < l; i++) {\r\n if (event) {\r\n //v4.3\r\n if (!event.target) {\r\n event.target = q[i];\r\n }\r\n if (func) {\r\n func(event, q[i], true);\r\n }\r\n } else {\r\n //old\r\n func(q[i], true);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","namespace pixi_display {\r\n import DisplayObject = PIXI.DisplayObject;\r\n import Container = PIXI.Container;\r\n\r\n /**\r\n * Container for layers\r\n *\r\n */\r\n export class Stage extends Layer {\r\n constructor() {\r\n super();\r\n }\r\n\r\n static _updateOrderCounter: number = 0;\r\n\r\n isStage = true;\r\n\r\n _tempGroups: Array = [];\r\n\r\n /**\r\n * Found layers\r\n */\r\n _activeLayers: Array = [];\r\n\r\n _activeParentStage: Stage = null;\r\n\r\n /**\r\n * clears all display lists that were used in last rendering session\r\n * please clear it when you stop using this displayList, otherwise you may have problems with GC in some cases\r\n */\r\n clear() {\r\n this._activeLayers.length = 0;\r\n this._tempGroups.length = 0;\r\n }\r\n\r\n destroy(options?: any) {\r\n this.clear();\r\n super.destroy(options);\r\n }\r\n\r\n /**\r\n *\r\n * @param displayObject {PIXI.DisplayObject} container that we are adding to Stage\r\n * @private\r\n */\r\n _addRecursive(displayObject: DisplayObject) {\r\n if (!displayObject.visible) {\r\n return;\r\n }\r\n\r\n if ((displayObject as any).isLayer) {\r\n const layer = displayObject as any as Layer;\r\n this._activeLayers.push(layer);\r\n layer.beginWork(this);\r\n }\r\n\r\n if (displayObject != this && (displayObject as any).isStage) {\r\n const stage = displayObject as Stage;\r\n stage.updateAsChildStage(this);\r\n return;\r\n }\r\n\r\n // sometimes people put UNDEFINED in parentGroup or parentLayer\r\n // that's why there is != instead of !==\r\n\r\n let group = displayObject.parentGroup;\r\n if (group != null) {\r\n group.addDisplayObject(this, displayObject);\r\n }\r\n const layer = displayObject.parentLayer;\r\n if (layer != null) {\r\n group = layer.group;\r\n group.addDisplayObject(this, displayObject);\r\n }\r\n\r\n displayObject.updateOrder = ++Stage._updateOrderCounter;\r\n if (displayObject.alpha <= 0 || !displayObject.renderable\r\n || !displayObject.layerableChildren\r\n || group && group.sortPriority) {\r\n return;\r\n }\r\n\r\n const children = (displayObject as Container).children;\r\n if (children && children.length) {\r\n for (let i = 0; i < children.length; i++) {\r\n this._addRecursive(children[i]);\r\n }\r\n }\r\n }\r\n\r\n _addRecursiveChildren(displayObject: DisplayObject) {\r\n if (displayObject.alpha <= 0 || !displayObject.renderable\r\n || !displayObject.layerableChildren) {\r\n return;\r\n }\r\n const children = (displayObject as Container).children;\r\n if (children && children.length) {\r\n for (let i = 0; i < children.length; i++) {\r\n this._addRecursive(children[i]);\r\n }\r\n }\r\n }\r\n\r\n _updateStageInner() {\r\n this.clear();\r\n this._addRecursive(this);\r\n const layers = this._activeLayers;\r\n\r\n for (let i = 0; i < layers.length; i++) {\r\n const layer = layers[i];\r\n if (layer.group.sortPriority) {\r\n layer.endWork();\r\n const sorted = layer._sortedChildren;\r\n for (let j = 0; j < sorted.length; j++) {\r\n this._addRecursiveChildren(sorted[j]);\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < layers.length; i++) {\r\n const layer = layers[i];\r\n if (!layer.group.sortPriority) {\r\n layer.endWork();\r\n }\r\n }\r\n }\r\n\r\n updateAsChildStage(stage: Stage) {\r\n this._activeParentStage = stage;\r\n Stage._updateOrderCounter = 0;\r\n this._updateStageInner();\r\n }\r\n\r\n updateStage() {\r\n this._activeParentStage = null;\r\n Group._layerUpdateId++;\r\n this._updateStageInner();\r\n };\r\n }\r\n}\r\n","declare namespace PIXI {\r\n interface Renderer {\r\n _activeLayer?: pixi_display.Layer\r\n _renderSessionId?: number\r\n _lastDisplayOrder?: number\r\n CONTEXT_UID?: number\r\n incDisplayOrder?(): number\r\n }\r\n interface CanvasRenderer {\r\n _activeLayer?: pixi_display.Layer\r\n _renderSessionId?: number\r\n _lastDisplayOrder?: number\r\n incDisplayOrder?(): number\r\n }\r\n}\r\n\r\nnamespace pixi_display {\r\n (Object as any).assign(PIXI.Renderer.prototype, {\r\n _lastDisplayOrder: 0,\r\n _activeLayer: null,\r\n\r\n incDisplayOrder() {\r\n return ++this._lastDisplayOrder;\r\n },\r\n\r\n _oldRender: PIXI.Renderer.prototype.render,\r\n\r\n render(displayObject: PIXI.DisplayObject, renderTexture?: PIXI.RenderTexture, clear?: boolean, transform?: PIXI.Transform, skipUpdateTransform?: boolean) {\r\n if (!renderTexture) {\r\n this._lastDisplayOrder = 0;\r\n }\r\n this._activeLayer = null;\r\n if ((displayObject as Stage).isStage) {\r\n (displayObject as Stage).updateStage()\r\n }\r\n patchInteractionManager(this.plugins.interaction);\r\n this._oldRender(displayObject, renderTexture, clear, transform, skipUpdateTransform);\r\n }\r\n });\r\n\r\n let canvasRenderer = (PIXI as any).CanvasRenderer;\r\n if (canvasRenderer) {\r\n (Object as any).assign(canvasRenderer.prototype, {\r\n _lastDisplayOrder: 0,\r\n _activeLayer: null,\r\n\r\n incDisplayOrder() {\r\n return ++this._lastDisplayOrder;\r\n },\r\n\r\n _oldRender: canvasRenderer.prototype.render,\r\n\r\n render(displayObject: PIXI.DisplayObject, renderTexture?: PIXI.RenderTexture, clear?: boolean, transform?: PIXI.Transform, skipUpdateTransform?: boolean) {\r\n if (!renderTexture) {\r\n this._lastDisplayOrder = 0;\r\n }\r\n this._activeLayer = null;\r\n if ((displayObject as Stage).isStage) {\r\n (displayObject as Stage).updateStage()\r\n }\r\n patchInteractionManager(this.plugins.interaction);\r\n this._oldRender(displayObject, renderTexture, clear, transform, skipUpdateTransform);\r\n }\r\n });\r\n }\r\n}\r\n","/// \r\n\r\nnamespace pixi_display {\r\n\t(PIXI as any).display = pixi_display;\r\n}\r\n\r\ndeclare module \"pixi-layers\" {\r\n\texport = pixi_display;\r\n}\r\n"]}