mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-25 22:50:13 -05:00
Open source
This commit is contained in:
@@ -0,0 +1,459 @@
|
||||
PIXI.DISPLAY_FLAG = {
|
||||
AUTO_CHILDREN: 0,
|
||||
AUTO_CONTAINER: 1,
|
||||
AUTO_OBJECT: 2,
|
||||
MANUAL_CONTAINER: 3
|
||||
};
|
||||
var WebGLRenderer = PIXI.WebGLRenderer;
|
||||
var CanvasRenderer = PIXI.CanvasRenderer;
|
||||
Object.assign(PIXI.Container.prototype, {
|
||||
displayList: null,
|
||||
displayChildren: null,
|
||||
displayParent: null,
|
||||
updateTransform: function () {
|
||||
if (!this.visible) {
|
||||
return;
|
||||
}
|
||||
this.containerUpdateTransform();
|
||||
if (this.displayList) {
|
||||
this.displayList.update(this);
|
||||
}
|
||||
},
|
||||
renderCanvas: function (renderer) {
|
||||
if (!this.visible) {
|
||||
this.displayOrder = 0;
|
||||
return;
|
||||
}
|
||||
this.displayOrder = renderer.incDisplayOrder();
|
||||
if (this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
if (this.displayList) {
|
||||
this.displayList.renderCanvas(this, renderer);
|
||||
return;
|
||||
}
|
||||
this.containerRenderCanvas(renderer);
|
||||
},
|
||||
renderWebGL: function (renderer) {
|
||||
if (!this.visible) {
|
||||
this.displayOrder = 0;
|
||||
return;
|
||||
}
|
||||
this.displayOrder = renderer.incDisplayOrder();
|
||||
if (this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
if (this.displayList) {
|
||||
this.displayList.renderWebGL(this, renderer);
|
||||
return;
|
||||
}
|
||||
this.containerRenderWebGL(renderer);
|
||||
},
|
||||
containerRenderWebGL: PIXI.Container.prototype.renderWebGL,
|
||||
containerRenderCanvas: PIXI.Container.prototype.renderCanvas
|
||||
});
|
||||
var __extends = (this && this.__extends) || function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
var pixi_display;
|
||||
(function (pixi_display) {
|
||||
var utils = PIXI.utils;
|
||||
var DisplayGroup = (function (_super) {
|
||||
__extends(DisplayGroup, _super);
|
||||
function DisplayGroup(zIndex, sorting) {
|
||||
_super.call(this);
|
||||
this.currentIndex = 0;
|
||||
this.zIndex = 0;
|
||||
this.enableSort = false;
|
||||
this.computedChildren = [];
|
||||
this.currentDisplayList = null;
|
||||
this.currentIndex = 0;
|
||||
this.zIndex = zIndex || 0;
|
||||
this.enableSort = !!sorting;
|
||||
if (typeof sorting === 'function') {
|
||||
this.on('add', sorting);
|
||||
}
|
||||
}
|
||||
DisplayGroup.compareZOrder = function (a, b) {
|
||||
if (a.zOrder < b.zOrder) {
|
||||
return 1;
|
||||
}
|
||||
if (a.zOrder > b.zOrder) {
|
||||
return -1;
|
||||
}
|
||||
return a.updateOrder - b.updateOrder;
|
||||
};
|
||||
;
|
||||
DisplayGroup.prototype.clear = function () {
|
||||
var list = this.computedChildren;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var children = list[i].displayChildren;
|
||||
if (children && children.length > 0) {
|
||||
for (var j = 0; j < children.length; j++) {
|
||||
children[j].displayParent = null;
|
||||
}
|
||||
children.length = 0;
|
||||
}
|
||||
list[i].displayParent = null;
|
||||
}
|
||||
list.length = 0;
|
||||
this.currentDisplayList = null;
|
||||
this.currentIndex = 0;
|
||||
};
|
||||
;
|
||||
DisplayGroup.prototype.add = function (displayObject) {
|
||||
displayObject.displayOrder = this.computedChildren.length;
|
||||
this.emit('add', displayObject);
|
||||
this.computedChildren.push(displayObject);
|
||||
};
|
||||
;
|
||||
DisplayGroup.prototype.update = function () {
|
||||
this.emit('update');
|
||||
if (this.enableSort && this.computedChildren.length > 1) {
|
||||
this.computedChildren.sort(DisplayGroup.compareZOrder);
|
||||
}
|
||||
};
|
||||
;
|
||||
DisplayGroup.prototype.renderWebGL = function (parentContainer, renderer) {
|
||||
var list = this.computedChildren;
|
||||
for (var j = 0; j < list.length; j++) {
|
||||
var container = list[j];
|
||||
if (container.displayFlag) {
|
||||
container.renderWebGL(renderer);
|
||||
}
|
||||
else {
|
||||
container.displayOrder = renderer.incDisplayOrder();
|
||||
container._renderWebGL(renderer);
|
||||
var children = container.displayChildren;
|
||||
if (children && children.length) {
|
||||
for (var k = 0; k < children.length; k++) {
|
||||
var child = children[k];
|
||||
child.displayOrder = renderer.incDisplayOrder();
|
||||
if (child.displayFlag) {
|
||||
child.renderWebGL(renderer);
|
||||
}
|
||||
else {
|
||||
child._renderWebGL(renderer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
DisplayGroup.prototype.renderCanvas = function (parentContainer, renderer) {
|
||||
var list = this.computedChildren;
|
||||
for (var j = 0; j < list.length; j++) {
|
||||
var container = list[j];
|
||||
if (container.displayFlag) {
|
||||
container.renderCanvas(renderer);
|
||||
}
|
||||
else {
|
||||
container.displayOrder = renderer.incDisplayOrder();
|
||||
container._renderCanvas(renderer);
|
||||
var children = container.displayChildren;
|
||||
if (children && children.length) {
|
||||
for (var k = 0; k < children.length; k++) {
|
||||
var child = children[k];
|
||||
child.displayOrder = renderer.incDisplayOrder();
|
||||
if (child.displayFlag) {
|
||||
child.renderCanvas(renderer);
|
||||
}
|
||||
else {
|
||||
child._renderCanvas(renderer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
return DisplayGroup;
|
||||
}(utils.EventEmitter));
|
||||
pixi_display.DisplayGroup = DisplayGroup;
|
||||
})(pixi_display || (pixi_display = {}));
|
||||
var pixi_display;
|
||||
(function (pixi_display) {
|
||||
var utils = PIXI.utils;
|
||||
var DisplayList = (function (_super) {
|
||||
__extends(DisplayList, _super);
|
||||
function DisplayList() {
|
||||
_super.call(this);
|
||||
this.container = null;
|
||||
this.totalElements = 0;
|
||||
this.displayGroups = [];
|
||||
this.defaultDisplayGroup = new pixi_display.DisplayGroup(0, false);
|
||||
}
|
||||
DisplayList.prototype.clear = function () {
|
||||
var list = this.displayGroups;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
list[i].clear();
|
||||
}
|
||||
list.length = 0;
|
||||
this.totalElements = 0;
|
||||
this.container = null;
|
||||
};
|
||||
;
|
||||
DisplayList.prototype.destroy = function () {
|
||||
this.clear();
|
||||
};
|
||||
;
|
||||
DisplayList.compareZIndex = function (a, b) {
|
||||
if (a.zIndex !== b.zIndex) {
|
||||
return a.zIndex - b.zIndex;
|
||||
}
|
||||
return a.currentIndex - b.currentIndex;
|
||||
};
|
||||
;
|
||||
DisplayList.prototype._addRecursive = function (displayObject, parent) {
|
||||
var container = displayObject;
|
||||
if (!container.visible || !container.renderable) {
|
||||
return;
|
||||
}
|
||||
var groups = this.displayGroups;
|
||||
var group = parent.displayGroup;
|
||||
container.updateOrder = this.totalElements++;
|
||||
if (container.displayGroup) {
|
||||
group = container.displayGroup;
|
||||
if (!group.currentDisplayList) {
|
||||
group.currentDisplayList = this;
|
||||
group.currentIndex = groups.length;
|
||||
groups.push(group);
|
||||
}
|
||||
group.add(container);
|
||||
container.displayParent = container;
|
||||
}
|
||||
else {
|
||||
container.displayParent = parent;
|
||||
if (!parent.displayChildren) {
|
||||
parent.displayChildren = [];
|
||||
}
|
||||
parent.displayChildren.push(container);
|
||||
}
|
||||
if (container.displayFlag !== PIXI.DISPLAY_FLAG.MANUAL_CONTAINER) {
|
||||
var children = container.children;
|
||||
if (children && children.length > 0) {
|
||||
if (container._mask || container._filters && container._filters.length || container.displayList) {
|
||||
container.displayFlag = PIXI.DISPLAY_FLAG.AUTO_CONTAINER;
|
||||
}
|
||||
else {
|
||||
container.displayFlag = PIXI.DISPLAY_FLAG.AUTO_CHILDREN;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
this._addRecursive(children[i], container.displayParent);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
container.displayFlag = PIXI.DISPLAY_FLAG.AUTO_OBJECT;
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
DisplayList.prototype.update = function (parentContainer) {
|
||||
this.clear();
|
||||
var tempGroup = parentContainer.displayGroup;
|
||||
this.displayGroups.push(this.defaultDisplayGroup);
|
||||
this.defaultDisplayGroup.add(parentContainer);
|
||||
this.container = parentContainer;
|
||||
var children = parentContainer.children;
|
||||
var i = 0;
|
||||
for (i = 0; i < children.length; i++) {
|
||||
this._addRecursive(children[i], parentContainer);
|
||||
}
|
||||
var groups = this.displayGroups;
|
||||
groups.sort(DisplayList.compareZIndex);
|
||||
for (i = 0; i < groups.length; i++) {
|
||||
groups[i].currentIndex = i;
|
||||
groups[i].update();
|
||||
}
|
||||
this.emit('afterUpdate');
|
||||
};
|
||||
;
|
||||
DisplayList.prototype.renderWebGL = function (parentContainer, renderer) {
|
||||
parentContainer.displayFlag = PIXI.DISPLAY_FLAG.AUTO_CHILDREN;
|
||||
var groups = this.displayGroups;
|
||||
for (var i = 0; i < groups.length; i++) {
|
||||
var group = groups[i];
|
||||
group.renderWebGL(parentContainer, renderer);
|
||||
}
|
||||
};
|
||||
;
|
||||
DisplayList.prototype.renderCanvas = function (parentContainer, renderer) {
|
||||
var groups = this.displayGroups;
|
||||
for (var i = 0; i < groups.length; i++) {
|
||||
var group = groups[i];
|
||||
group.renderCanvas(parentContainer, renderer);
|
||||
}
|
||||
};
|
||||
;
|
||||
return DisplayList;
|
||||
}(utils.EventEmitter));
|
||||
pixi_display.DisplayList = DisplayList;
|
||||
})(pixi_display || (pixi_display = {}));
|
||||
Object.assign(PIXI.DisplayObject.prototype, {
|
||||
displayGroup: null,
|
||||
displayFlag: PIXI.DISPLAY_FLAG.AUTO_CHILDREN,
|
||||
displayParent: null,
|
||||
zOrder: 0,
|
||||
updateOrder: 0,
|
||||
displayOrder: 0
|
||||
});
|
||||
var pixi_display;
|
||||
(function (pixi_display) {
|
||||
var InteractionManager = PIXI.interaction.InteractionManager;
|
||||
Object.assign(InteractionManager.prototype, {
|
||||
_queue: [[], []],
|
||||
_displayProcessInteractive: function (point, displayObject, hitTestOrder, interactive) {
|
||||
if (!displayObject || !displayObject.visible) {
|
||||
return 0;
|
||||
}
|
||||
var hit = 0, interactiveParent = interactive = displayObject.interactive || interactive;
|
||||
if (displayObject.hitArea) {
|
||||
interactiveParent = false;
|
||||
}
|
||||
var mask = displayObject._mask;
|
||||
if (hitTestOrder < Infinity && mask) {
|
||||
if (!mask.containsPoint(point)) {
|
||||
hitTestOrder = Infinity;
|
||||
}
|
||||
}
|
||||
if (hitTestOrder < Infinity && displayObject.filterArea) {
|
||||
if (!displayObject.filterArea.contains(point.x, point.y)) {
|
||||
hitTestOrder = Infinity;
|
||||
}
|
||||
}
|
||||
var children = displayObject.children;
|
||||
if (displayObject.interactiveChildren && children) {
|
||||
for (var i = children.length - 1; i >= 0; i--) {
|
||||
var child = children[i];
|
||||
var hitChild = this._displayProcessInteractive(point, child, hitTestOrder, interactiveParent);
|
||||
if (hitChild) {
|
||||
if (!child.parent) {
|
||||
continue;
|
||||
}
|
||||
hit = hitChild;
|
||||
hitTestOrder = hitChild;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (interactive) {
|
||||
if (hitTestOrder < displayObject.displayOrder) {
|
||||
if (displayObject.hitArea) {
|
||||
displayObject.worldTransform.applyInverse(point, this._tempPoint);
|
||||
if (displayObject.hitArea.contains(this._tempPoint.x, this._tempPoint.y)) {
|
||||
hit = displayObject.displayOrder;
|
||||
}
|
||||
}
|
||||
else if (displayObject.containsPoint) {
|
||||
if (displayObject.containsPoint(point)) {
|
||||
hit = displayObject.displayOrder;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (displayObject.interactive) {
|
||||
this._queueAdd(displayObject, hit);
|
||||
}
|
||||
}
|
||||
return hit;
|
||||
},
|
||||
processInteractive: function (strangeStuff, displayObject, func, hitTest, interactive) {
|
||||
var interactionEvent = null;
|
||||
var point = null;
|
||||
if (strangeStuff.data &&
|
||||
strangeStuff.data.global) {
|
||||
interactionEvent = strangeStuff;
|
||||
point = interactionEvent.data.global;
|
||||
}
|
||||
else {
|
||||
point = strangeStuff;
|
||||
}
|
||||
this._startInteractionProcess();
|
||||
this._displayProcessInteractive(point, displayObject, hitTest ? 0 : Infinity, false);
|
||||
this._finishInteractionProcess(interactionEvent, func);
|
||||
},
|
||||
_startInteractionProcess: function () {
|
||||
this._eventDisplayOrder = 1;
|
||||
if (!this._queue) {
|
||||
this._queue = [[], []];
|
||||
}
|
||||
this._queue[0].length = 0;
|
||||
this._queue[1].length = 0;
|
||||
},
|
||||
_queueAdd: function (displayObject, order) {
|
||||
var queue = this._queue;
|
||||
if (order < this._eventDisplayOrder) {
|
||||
queue[0].push(displayObject);
|
||||
}
|
||||
else {
|
||||
if (order > this._eventDisplayOrder) {
|
||||
this._eventDisplayOrder = order;
|
||||
var q = queue[1];
|
||||
for (var i = 0; i < q.length; i++) {
|
||||
queue[0].push(q[i]);
|
||||
}
|
||||
queue[1].length = 0;
|
||||
}
|
||||
queue[1].push(displayObject);
|
||||
}
|
||||
},
|
||||
_finishInteractionProcess: function (event, func) {
|
||||
var queue = this._queue;
|
||||
var q = queue[0];
|
||||
var i = 0;
|
||||
for (; i < q.length; i++) {
|
||||
if (event) {
|
||||
func(event, q[i], false);
|
||||
}
|
||||
else {
|
||||
func(q[i], false);
|
||||
}
|
||||
}
|
||||
q = queue[1];
|
||||
for (i = 0; i < q.length; i++) {
|
||||
if (event) {
|
||||
if (!event.target) {
|
||||
event.target = q[i];
|
||||
}
|
||||
func(event, q[i], true);
|
||||
}
|
||||
else {
|
||||
func(q[i], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(pixi_display || (pixi_display = {}));
|
||||
Object.assign(WebGLRenderer.prototype, {
|
||||
_lastDisplayOrder: 0,
|
||||
incDisplayOrder: function () {
|
||||
return ++this._lastDisplayOrder;
|
||||
},
|
||||
_oldRender: WebGLRenderer.prototype.render,
|
||||
render: function (displayObject, renderTexture, clear, transform, skipUpdateTransform) {
|
||||
if (!renderTexture) {
|
||||
this._lastDisplayOrder = 0;
|
||||
}
|
||||
this._oldRender(displayObject, renderTexture, clear, transform, skipUpdateTransform);
|
||||
}
|
||||
});
|
||||
Object.assign(CanvasRenderer.prototype, {
|
||||
_lastDisplayOrder: 0,
|
||||
incDisplayOrder: function () {
|
||||
return ++this._lastDisplayOrder;
|
||||
},
|
||||
_oldRender: CanvasRenderer.prototype.render,
|
||||
render: function (displayObject, renderTexture, clear, transform, skipUpdateTransform) {
|
||||
if (!renderTexture) {
|
||||
this._lastDisplayOrder = 0;
|
||||
}
|
||||
this._oldRender(displayObject, renderTexture, clear, transform, skipUpdateTransform);
|
||||
}
|
||||
});
|
||||
Object.assign(PIXI, {
|
||||
display: pixi_display,
|
||||
DisplayGroup: pixi_display.DisplayGroup,
|
||||
DisplayList: pixi_display.DisplayList
|
||||
});
|
||||
//# sourceMappingURL=pixi-display.js.map
|
||||
Reference in New Issue
Block a user