Initial Commit
This commit is contained in:
commit
ec5c71b3ac
1712 changed files with 1767257 additions and 0 deletions
69
www/js/libs/SteamConfig.ini
Normal file
69
www/js/libs/SteamConfig.ini
Normal file
|
@ -0,0 +1,69 @@
|
|||
[Settings]
|
||||
;game appid here
|
||||
|
||||
AppID = 1150690
|
||||
|
||||
;source steam_api.dll version
|
||||
|
||||
API = 4.28.51.7
|
||||
|
||||
;player name
|
||||
|
||||
PlayerName = STEAMRIP
|
||||
|
||||
;game Language
|
||||
;english german french italian koreana
|
||||
;spanish schinese tchinese russian thai
|
||||
;japanese portuguese polish danish dutch
|
||||
;finnish norwegian swedish hungarian czech
|
||||
;romanian turkish
|
||||
|
||||
Language = english
|
||||
|
||||
;save types:
|
||||
;ALI213(game dir) 0
|
||||
;ALI213(my documents) 1
|
||||
;RELOADED 4
|
||||
;SKIDROW 5
|
||||
;FLT 6
|
||||
;CODEX(3.0.4+/my documents) 7
|
||||
;CODEX(1.0.0.0+/APPDATA) 8
|
||||
|
||||
SaveType = 0
|
||||
|
||||
;Achievements Count limit
|
||||
|
||||
;AchievementsCount = 0
|
||||
|
||||
;game exe path
|
||||
|
||||
;GameEXE = game.exe
|
||||
|
||||
;SteamUserID = 12345678
|
||||
;SteamUserIDH = 12345678
|
||||
|
||||
;IsLoggedOn = 0
|
||||
|
||||
;Online = 0
|
||||
|
||||
UnLockListedDLCOnly = 1
|
||||
|
||||
[DLC]
|
||||
;SET DLC USE "APPID=NAME"
|
||||
|
||||
|
||||
[Option]
|
||||
;Block Network.
|
||||
|
||||
;FullBlockNetwork = 0
|
||||
|
||||
;Redirect File Handle to ".valve"
|
||||
|
||||
FileRedirectCheck = 1
|
||||
|
||||
;DECRYPT STEAM STUB
|
||||
;set 1 tells steam_api.dll / steam_api64.dll to decrypt the steam stub as soon as possible
|
||||
;set 2 tells SteamClient.dll / SteamClient64.dll to decrypt the steam stub as soon as possible
|
||||
;set 0 to disable it.
|
||||
|
||||
;DECRYPT_STEAM_STUB = 0
|
9766
www/js/libs/dragonbones/dragonBones.js
Normal file
9766
www/js/libs/dragonbones/dragonBones.js
Normal file
File diff suppressed because it is too large
Load diff
733
www/js/libs/dragonbones/dragonBonesPixi.js
Normal file
733
www/js/libs/dragonbones/dragonBonesPixi.js
Normal file
|
@ -0,0 +1,733 @@
|
|||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
|
||||
var dragonBones;
|
||||
(function (dragonBones) {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* Pixi 贴图集数据。
|
||||
* @version DragonBones 3.0
|
||||
*/
|
||||
var PixiTextureAtlasData = (function (_super) {
|
||||
__extends(PixiTextureAtlasData, _super);
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function PixiTextureAtlasData() {
|
||||
return _super.call(this) || this;
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiTextureAtlasData.toString = function () {
|
||||
return "[class dragonBones.PixiTextureAtlasData]";
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiTextureAtlasData.prototype._onClear = function () {
|
||||
_super.prototype._onClear.call(this);
|
||||
if (this.texture) {
|
||||
//this.texture.dispose();
|
||||
}
|
||||
this.texture = null;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiTextureAtlasData.prototype.generateTexture = function () {
|
||||
return dragonBones.BaseObject.borrowObject(PixiTextureData);
|
||||
};
|
||||
return PixiTextureAtlasData;
|
||||
}(dragonBones.TextureAtlasData));
|
||||
dragonBones.PixiTextureAtlasData = PixiTextureAtlasData;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
var PixiTextureData = (function (_super) {
|
||||
__extends(PixiTextureData, _super);
|
||||
function PixiTextureData() {
|
||||
return _super.call(this) || this;
|
||||
}
|
||||
PixiTextureData.toString = function () {
|
||||
return "[class dragonBones.PixiTextureData]";
|
||||
};
|
||||
PixiTextureData.prototype._onClear = function () {
|
||||
_super.prototype._onClear.call(this);
|
||||
if (this.texture) {
|
||||
this.texture.destroy();
|
||||
}
|
||||
this.texture = null;
|
||||
};
|
||||
return PixiTextureData;
|
||||
}(dragonBones.TextureData));
|
||||
dragonBones.PixiTextureData = PixiTextureData;
|
||||
})(dragonBones || (dragonBones = {}));
|
||||
|
||||
var dragonBones;
|
||||
(function (dragonBones) {
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
var PixiArmatureDisplay = (function (_super) {
|
||||
__extends(PixiArmatureDisplay, _super);
|
||||
/**
|
||||
* @internal
|
||||
* @private
|
||||
*/
|
||||
function PixiArmatureDisplay() {
|
||||
return _super.call(this) || this;
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiArmatureDisplay.prototype._onClear = function () {
|
||||
if (this._debugDrawer) {
|
||||
this._debugDrawer.destroy(true);
|
||||
}
|
||||
this._armature = null;
|
||||
this._debugDrawer = null;
|
||||
this.destroy();
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiArmatureDisplay.prototype._dispatchEvent = function (type, eventObject) {
|
||||
this.emit(type, eventObject);
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiArmatureDisplay.prototype._debugDraw = function (isEnabled) {
|
||||
if (!this._debugDrawer) {
|
||||
this._debugDrawer = new PIXI.Sprite();
|
||||
var boneDrawer = new PIXI.Graphics();
|
||||
this._debugDrawer.addChild(boneDrawer);
|
||||
}
|
||||
if (isEnabled) {
|
||||
this.addChild(this._debugDrawer);
|
||||
var boneDrawer = this._debugDrawer.getChildAt(0);
|
||||
boneDrawer.clear();
|
||||
var bones = this._armature.getBones();
|
||||
for (var i = 0, l = bones.length; i < l; ++i) {
|
||||
var bone = bones[i];
|
||||
var boneLength = bone.boneData.length;
|
||||
var startX = bone.globalTransformMatrix.tx;
|
||||
var startY = bone.globalTransformMatrix.ty;
|
||||
var endX = startX + bone.globalTransformMatrix.a * boneLength;
|
||||
var endY = startY + bone.globalTransformMatrix.b * boneLength;
|
||||
boneDrawer.lineStyle(2, bone.ik ? 0xFF0000 : 0x00FFFF, 0.7);
|
||||
boneDrawer.moveTo(startX, startY);
|
||||
boneDrawer.lineTo(endX, endY);
|
||||
boneDrawer.lineStyle(0, 0, 0);
|
||||
boneDrawer.beginFill(0x00FFFF, 0.7);
|
||||
boneDrawer.drawCircle(startX, startY, 3);
|
||||
boneDrawer.endFill();
|
||||
}
|
||||
var slots = this._armature.getSlots();
|
||||
for (var i = 0, l = slots.length; i < l; ++i) {
|
||||
var slot = slots[i];
|
||||
var boundingBoxData = slot.boundingBoxData;
|
||||
if (boundingBoxData) {
|
||||
var child = this._debugDrawer.getChildByName(slot.name);
|
||||
if (!child) {
|
||||
child = new PIXI.Graphics();
|
||||
child.name = slot.name;
|
||||
this._debugDrawer.addChild(child);
|
||||
}
|
||||
child.clear();
|
||||
child.beginFill(0xFF00FF, 0.3);
|
||||
switch (boundingBoxData.type) {
|
||||
case 0 /* Rectangle */:
|
||||
child.drawRect(-boundingBoxData.width * 0.5, -boundingBoxData.height * 0.5, boundingBoxData.width, boundingBoxData.height);
|
||||
break;
|
||||
case 1 /* Ellipse */:
|
||||
child.drawEllipse(-boundingBoxData.width * 0.5, -boundingBoxData.height * 0.5, boundingBoxData.width, boundingBoxData.height);
|
||||
break;
|
||||
case 2 /* Polygon */:
|
||||
var vertices = boundingBoxData.vertices;
|
||||
for (var i_1 = 0, l_1 = boundingBoxData.vertices.length; i_1 < l_1; i_1 += 2) {
|
||||
if (i_1 === 0) {
|
||||
child.moveTo(vertices[i_1], vertices[i_1 + 1]);
|
||||
}
|
||||
else {
|
||||
child.lineTo(vertices[i_1], vertices[i_1 + 1]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
child.endFill();
|
||||
slot._updateTransformAndMatrix();
|
||||
slot.updateGlobalTransform();
|
||||
var transform = slot.global;
|
||||
child.setTransform(transform.x, transform.y, transform.scaleX, transform.scaleY, transform.skewX, 0.0, transform.skewY - transform.skewX, slot._pivotX, slot._pivotY);
|
||||
}
|
||||
else {
|
||||
var child = this._debugDrawer.getChildByName(slot.name);
|
||||
if (child) {
|
||||
this._debugDrawer.removeChild(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this._debugDrawer && this._debugDrawer.parent === this) {
|
||||
this.removeChild(this._debugDrawer);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
PixiArmatureDisplay.prototype.hasEvent = function (type) {
|
||||
return this.listeners(type, true); // .d.ts bug
|
||||
};
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
PixiArmatureDisplay.prototype.addEvent = function (type, listener, target) {
|
||||
this.addListener(type, listener, target);
|
||||
};
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
PixiArmatureDisplay.prototype.removeEvent = function (type, listener, target) {
|
||||
this.removeListener(type, listener, target);
|
||||
};
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
PixiArmatureDisplay.prototype.dispose = function (disposeProxy) {
|
||||
if (disposeProxy === void 0) { disposeProxy = true; }
|
||||
if (this._armature) {
|
||||
this._armature.dispose();
|
||||
this._armature = null;
|
||||
}
|
||||
};
|
||||
Object.defineProperty(PixiArmatureDisplay.prototype, "armature", {
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
get: function () {
|
||||
return this._armature;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(PixiArmatureDisplay.prototype, "animation", {
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
get: function () {
|
||||
return this._armature.animation;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
/**
|
||||
* @deprecated
|
||||
* @see dragonBones.Armature#clock
|
||||
* @see dragonBones.PixiFactory#clock
|
||||
* @see dragonBones.Animation#timescale
|
||||
* @see dragonBones.Animation#stop()
|
||||
*/
|
||||
PixiArmatureDisplay.prototype.advanceTimeBySelf = function (on) {
|
||||
if (on) {
|
||||
this._armature.clock = dragonBones.PixiFactory.clock;
|
||||
}
|
||||
else {
|
||||
this._armature.clock = null;
|
||||
}
|
||||
};
|
||||
return PixiArmatureDisplay;
|
||||
}(PIXI.Container));
|
||||
dragonBones.PixiArmatureDisplay = PixiArmatureDisplay;
|
||||
})(dragonBones || (dragonBones = {}));
|
||||
|
||||
var dragonBones;
|
||||
(function (dragonBones) {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* Pixi 插槽。
|
||||
* @version DragonBones 3.0
|
||||
*/
|
||||
var PixiSlot = (function (_super) {
|
||||
__extends(PixiSlot, _super);
|
||||
/**
|
||||
* @internal
|
||||
* @private
|
||||
*/
|
||||
function PixiSlot() {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._updateTransform = PIXI.VERSION[0] === "3" ? _this._updateTransformV3 : _this._updateTransformV4;
|
||||
return _this;
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.toString = function () {
|
||||
return "[class dragonBones.PixiSlot]";
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._onClear = function () {
|
||||
_super.prototype._onClear.call(this);
|
||||
this._renderDisplay = null;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._initDisplay = function (value) {
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._disposeDisplay = function (value) {
|
||||
value.destroy();
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._onUpdateDisplay = function () {
|
||||
this._renderDisplay = (this._display ? this._display : this._rawDisplay);
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._addDisplay = function () {
|
||||
var container = this._armature.display;
|
||||
container.addChild(this._renderDisplay);
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._replaceDisplay = function (value) {
|
||||
var container = this._armature.display;
|
||||
var prevDisplay = value;
|
||||
container.addChild(this._renderDisplay);
|
||||
container.swapChildren(this._renderDisplay, prevDisplay);
|
||||
container.removeChild(prevDisplay);
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._removeDisplay = function () {
|
||||
this._renderDisplay.parent.removeChild(this._renderDisplay);
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateZOrder = function () {
|
||||
var container = this._armature.display;
|
||||
var index = container.getChildIndex(this._renderDisplay);
|
||||
if (index === this._zOrder) {
|
||||
return;
|
||||
}
|
||||
container.addChildAt(this._renderDisplay, this._zOrder);
|
||||
};
|
||||
/**
|
||||
* @internal
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateVisible = function () {
|
||||
this._renderDisplay.visible = this._parent.visible;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateBlendMode = function () {
|
||||
switch (this._blendMode) {
|
||||
case 0 /* Normal */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.NORMAL;
|
||||
break;
|
||||
case 1 /* Add */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.ADD;
|
||||
break;
|
||||
case 3 /* Darken */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.DARKEN;
|
||||
break;
|
||||
case 4 /* Difference */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.DIFFERENCE;
|
||||
break;
|
||||
case 6 /* HardLight */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.HARD_LIGHT;
|
||||
break;
|
||||
case 9 /* Lighten */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.LIGHTEN;
|
||||
break;
|
||||
case 10 /* Multiply */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.MULTIPLY;
|
||||
break;
|
||||
case 11 /* Overlay */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.OVERLAY;
|
||||
break;
|
||||
case 12 /* Screen */:
|
||||
this._renderDisplay.blendMode = PIXI.BLEND_MODES.SCREEN;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateColor = function () {
|
||||
this._renderDisplay.alpha = this._colorTransform.alphaMultiplier;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateFrame = function () {
|
||||
var isMeshDisplay = this._meshData && this._display === this._meshDisplay;
|
||||
var currentTextureData = this._textureData;
|
||||
if (this._displayIndex >= 0 && this._display && currentTextureData) {
|
||||
var currentTextureAtlasData = currentTextureData.parent;
|
||||
// Update replaced texture atlas.
|
||||
if (this._armature.replacedTexture && this._displayData && currentTextureAtlasData === this._displayData.texture.parent) {
|
||||
currentTextureAtlasData = this._armature._replaceTextureAtlasData;
|
||||
if (!currentTextureAtlasData) {
|
||||
currentTextureAtlasData = dragonBones.BaseObject.borrowObject(dragonBones.PixiTextureAtlasData);
|
||||
currentTextureAtlasData.copyFrom(currentTextureData.parent);
|
||||
currentTextureAtlasData.texture = this._armature.replacedTexture;
|
||||
this._armature._replaceTextureAtlasData = currentTextureAtlasData;
|
||||
}
|
||||
currentTextureData = currentTextureAtlasData.getTexture(currentTextureData.name);
|
||||
}
|
||||
var currentTextureAtlas = currentTextureAtlasData.texture;
|
||||
if (currentTextureAtlas) {
|
||||
if (!currentTextureData.texture) {
|
||||
currentTextureData.texture = new PIXI.Texture(currentTextureAtlas, currentTextureData.region, // No need to set frame.
|
||||
currentTextureData.region, new PIXI.Rectangle(0, 0, currentTextureData.region.width, currentTextureData.region.height), currentTextureData.rotated // .d.ts bug
|
||||
);
|
||||
}
|
||||
if (isMeshDisplay) {
|
||||
var meshDisplay = this._renderDisplay;
|
||||
var textureAtlasWidth = currentTextureAtlasData.width > 0.0 ? currentTextureAtlasData.width : currentTextureAtlas.width;
|
||||
var textureAtlasHeight = currentTextureAtlasData.height > 0.0 ? currentTextureAtlasData.height : currentTextureAtlas.height;
|
||||
meshDisplay.uvs = new Float32Array(this._meshData.uvs);
|
||||
meshDisplay.vertices = new Float32Array(this._meshData.vertices);
|
||||
meshDisplay.indices = new Uint16Array(this._meshData.vertexIndices);
|
||||
for (var i = 0, l = meshDisplay.uvs.length; i < l; i += 2) {
|
||||
var u = meshDisplay.uvs[i];
|
||||
var v = meshDisplay.uvs[i + 1];
|
||||
meshDisplay.uvs[i] = (currentTextureData.region.x + u * currentTextureData.region.width) / textureAtlasWidth;
|
||||
meshDisplay.uvs[i + 1] = (currentTextureData.region.y + v * currentTextureData.region.height) / textureAtlasHeight;
|
||||
}
|
||||
meshDisplay.texture = currentTextureData.texture;
|
||||
//meshDisplay.dirty = true; // Pixi 3.x
|
||||
meshDisplay.dirty++; // Pixi 4.x Can not support change mesh vertice count.
|
||||
}
|
||||
else {
|
||||
var normalDisplay = this._renderDisplay;
|
||||
normalDisplay.texture = currentTextureData.texture;
|
||||
}
|
||||
this._updateVisible();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (isMeshDisplay) {
|
||||
var meshDisplay = this._renderDisplay;
|
||||
meshDisplay.texture = null;
|
||||
meshDisplay.x = 0.0;
|
||||
meshDisplay.y = 0.0;
|
||||
meshDisplay.visible = false;
|
||||
}
|
||||
else {
|
||||
var normalDisplay = this._renderDisplay;
|
||||
normalDisplay.texture = null;
|
||||
normalDisplay.x = 0.0;
|
||||
normalDisplay.y = 0.0;
|
||||
normalDisplay.visible = false;
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateMesh = function () {
|
||||
var meshDisplay = this._renderDisplay;
|
||||
var hasFFD = this._ffdVertices.length > 0;
|
||||
if (this._meshData.skinned) {
|
||||
for (var i = 0, iF = 0, l = this._meshData.vertices.length; i < l; i += 2) {
|
||||
var iH = i / 2;
|
||||
var boneIndices = this._meshData.boneIndices[iH];
|
||||
var boneVertices = this._meshData.boneVertices[iH];
|
||||
var weights = this._meshData.weights[iH];
|
||||
var xG = 0.0, yG = 0.0;
|
||||
for (var iB = 0, lB = boneIndices.length; iB < lB; ++iB) {
|
||||
var bone = this._meshBones[boneIndices[iB]];
|
||||
var matrix = bone.globalTransformMatrix;
|
||||
var weight = weights[iB];
|
||||
var xL = 0.0, yL = 0.0;
|
||||
if (hasFFD) {
|
||||
xL = boneVertices[iB * 2] + this._ffdVertices[iF];
|
||||
yL = boneVertices[iB * 2 + 1] + this._ffdVertices[iF + 1];
|
||||
}
|
||||
else {
|
||||
xL = boneVertices[iB * 2];
|
||||
yL = boneVertices[iB * 2 + 1];
|
||||
}
|
||||
xG += (matrix.a * xL + matrix.c * yL + matrix.tx) * weight;
|
||||
yG += (matrix.b * xL + matrix.d * yL + matrix.ty) * weight;
|
||||
iF += 2;
|
||||
}
|
||||
meshDisplay.vertices[i] = xG;
|
||||
meshDisplay.vertices[i + 1] = yG;
|
||||
}
|
||||
}
|
||||
else if (hasFFD) {
|
||||
var vertices = this._meshData.vertices;
|
||||
for (var i = 0, l = this._meshData.vertices.length; i < l; i += 2) {
|
||||
var xG = vertices[i] + this._ffdVertices[i];
|
||||
var yG = vertices[i + 1] + this._ffdVertices[i + 1];
|
||||
meshDisplay.vertices[i] = xG;
|
||||
meshDisplay.vertices[i + 1] = yG;
|
||||
}
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateTransform = function (isSkinnedMesh) {
|
||||
throw new Error();
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateTransformV3 = function (isSkinnedMesh) {
|
||||
if (isSkinnedMesh) {
|
||||
this._renderDisplay.setTransform(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
else {
|
||||
this.updateGlobalTransform(); // Update transform.
|
||||
var x = this.globalTransformMatrix.tx - (this.globalTransformMatrix.a * this._pivotX + this.globalTransformMatrix.c * this._pivotY); // Pixi pivot do not work.
|
||||
var y = this.globalTransformMatrix.ty - (this.globalTransformMatrix.b * this._pivotX + this.globalTransformMatrix.d * this._pivotY); // Pixi pivot do not work.
|
||||
var transform = this.global;
|
||||
this._renderDisplay.setTransform(x, y, transform.scaleX, transform.scaleY, transform.skewX, 0.0, transform.skewY - transform.skewX);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiSlot.prototype._updateTransformV4 = function (isSkinnedMesh) {
|
||||
if (isSkinnedMesh) {
|
||||
this._renderDisplay.setTransform(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
else {
|
||||
this.updateGlobalTransform(); // Update transform.
|
||||
var transform = this.global;
|
||||
this._renderDisplay.setTransform(transform.x, transform.y, transform.scaleX, transform.scaleY, transform.skewX, 0.0, transform.skewY - transform.skewX, this._pivotX, this._pivotY);
|
||||
}
|
||||
};
|
||||
return PixiSlot;
|
||||
}(dragonBones.Slot));
|
||||
dragonBones.PixiSlot = PixiSlot;
|
||||
})(dragonBones || (dragonBones = {}));
|
||||
var dragonBones;
|
||||
(function (dragonBones) {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* Pixi 工厂。
|
||||
* @version DragonBones 3.0
|
||||
*/
|
||||
var PixiFactory = (function (_super) {
|
||||
__extends(PixiFactory, _super);
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 创建一个工厂。 (通常只需要一个全局工厂实例)
|
||||
* @param dataParser 龙骨数据解析器,如果不设置,则使用默认解析器。
|
||||
* @version DragonBones 3.0
|
||||
*/
|
||||
function PixiFactory(dataParser) {
|
||||
if (dataParser === void 0) { dataParser = null; }
|
||||
var _this = _super.call(this, dataParser) || this;
|
||||
if (!PixiFactory._eventManager) {
|
||||
PixiFactory._eventManager = new dragonBones.PixiArmatureDisplay();
|
||||
PixiFactory._clock = new dragonBones.WorldClock();
|
||||
PIXI.ticker.shared.add(PixiFactory._clockHandler, PixiFactory);
|
||||
}
|
||||
return _this;
|
||||
}
|
||||
PixiFactory._clockHandler = function (passedTime) {
|
||||
PixiFactory._clock.advanceTime(-1); // passedTime !?
|
||||
//console.log("Dragonbones' clock ticking");
|
||||
};
|
||||
Object.defineProperty(PixiFactory, "factory", {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 一个可以直接使用的全局工厂实例。
|
||||
* @version DragonBones 4.7
|
||||
*/
|
||||
get: function () {
|
||||
if (!PixiFactory._factory) {
|
||||
PixiFactory._factory = new PixiFactory();
|
||||
}
|
||||
return PixiFactory._factory;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(PixiFactory, "clock", {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 一个可以直接使用的全局 WorldClock 实例.
|
||||
* @version DragonBones 5.0
|
||||
*/
|
||||
get: function () {
|
||||
return PixiFactory._clock;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiFactory.prototype._generateTextureAtlasData = function (textureAtlasData, textureAtlas) {
|
||||
if (textureAtlasData) {
|
||||
textureAtlasData.texture = textureAtlas;
|
||||
}
|
||||
else {
|
||||
textureAtlasData = dragonBones.BaseObject.borrowObject(dragonBones.PixiTextureAtlasData);
|
||||
}
|
||||
return textureAtlasData;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiFactory.prototype._generateArmature = function (dataPackage) {
|
||||
var armature = dragonBones.BaseObject.borrowObject(dragonBones.Armature);
|
||||
var armatureDisplay = new dragonBones.PixiArmatureDisplay();
|
||||
armatureDisplay._armature = armature;
|
||||
armature._init(dataPackage.armature, dataPackage.skin, armatureDisplay, armatureDisplay, PixiFactory._eventManager);
|
||||
return armature;
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
PixiFactory.prototype._generateSlot = function (dataPackage, skinSlotData, armature) {
|
||||
var slotData = skinSlotData.slot;
|
||||
var slot = dragonBones.BaseObject.borrowObject(dragonBones.PixiSlot);
|
||||
var displayList = [];
|
||||
slot._init(skinSlotData, new PIXI.Sprite(), new PIXI.mesh.Mesh(null, null, null, null, PIXI.mesh.Mesh.DRAW_MODES.TRIANGLES));
|
||||
for (var i = 0, l = skinSlotData.displays.length; i < l; ++i) {
|
||||
var displayData = skinSlotData.displays[i];
|
||||
switch (displayData.type) {
|
||||
case 0 /* Image */:
|
||||
if (!displayData.texture) {
|
||||
displayData.texture = this._getTextureData(dataPackage.dataName, displayData.path);
|
||||
}
|
||||
if (dataPackage.textureAtlasName) {
|
||||
slot._textureDatas[i] = this._getTextureData(dataPackage.textureAtlasName, displayData.path);
|
||||
}
|
||||
displayList[i] = slot.rawDisplay;
|
||||
break;
|
||||
case 2 /* Mesh */:
|
||||
if (!displayData.texture) {
|
||||
displayData.texture = this._getTextureData(dataPackage.dataName, displayData.path);
|
||||
}
|
||||
if (dataPackage.textureAtlasName) {
|
||||
slot._textureDatas[i] = this._getTextureData(dataPackage.textureAtlasName, displayData.path);
|
||||
}
|
||||
if (!displayData.mesh && displayData.share) {
|
||||
displayData.mesh = skinSlotData.getMesh(displayData.share);
|
||||
}
|
||||
displayList[i] = slot.meshDisplay;
|
||||
break;
|
||||
case 1 /* Armature */:
|
||||
var childArmature = this.buildArmature(displayData.path, dataPackage.dataName, null, dataPackage.textureAtlasName);
|
||||
if (childArmature) {
|
||||
childArmature.inheritAnimation = displayData.inheritAnimation;
|
||||
if (!childArmature.inheritAnimation) {
|
||||
var actions = slotData.actions.length > 0 ? slotData.actions : childArmature.armatureData.actions;
|
||||
if (actions.length > 0) {
|
||||
for (var i_2 = 0, l_2 = actions.length; i_2 < l_2; ++i_2) {
|
||||
childArmature._bufferAction(actions[i_2]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
childArmature.animation.play();
|
||||
}
|
||||
}
|
||||
displayData.armature = childArmature.armatureData; //
|
||||
}
|
||||
displayList[i] = childArmature;
|
||||
break;
|
||||
default:
|
||||
displayList[i] = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
slot._setDisplayList(displayList);
|
||||
return slot;
|
||||
};
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 创建一个指定名称的骨架,并使用骨架的显示容器来更新骨架动画。
|
||||
* @param armatureName 骨架名称。
|
||||
* @param dragonBonesName 龙骨数据名称,如果未设置,将检索所有的龙骨数据,如果多个数据中包含同名的骨架数据,可能无法创建出准确的骨架。
|
||||
* @param skinName 皮肤名称,如果未设置,则使用默认皮肤。
|
||||
* @param textureAtlasName 贴图集数据名称,如果未设置,则使用龙骨数据。
|
||||
* @returns 骨架的显示容器。
|
||||
* @see dragonBones.PixiArmatureDisplay
|
||||
* @version DragonBones 4.5
|
||||
*/
|
||||
PixiFactory.prototype.buildArmatureDisplay = function (armatureName, dragonBonesName, skinName, textureAtlasName) {
|
||||
if (dragonBonesName === void 0) { dragonBonesName = null; }
|
||||
if (skinName === void 0) { skinName = null; }
|
||||
if (textureAtlasName === void 0) { textureAtlasName = null; }
|
||||
var armature = this.buildArmature(armatureName, dragonBonesName, skinName, textureAtlasName);
|
||||
if (armature) {
|
||||
var armatureDisplay = armature.display;
|
||||
PixiFactory._clock.add(armature);
|
||||
return armatureDisplay;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 获取带有指定贴图的显示对象。
|
||||
* @param textureName 指定的贴图名称。
|
||||
* @param dragonBonesName 指定的龙骨数据名称,如果未设置,将检索所有的龙骨数据。
|
||||
* @version DragonBones 3.0
|
||||
*/
|
||||
PixiFactory.prototype.getTextureDisplay = function (textureName, dragonBonesName) {
|
||||
if (dragonBonesName === void 0) { dragonBonesName = null; }
|
||||
var textureData = this._getTextureData(dragonBonesName, textureName);
|
||||
if (textureData) {
|
||||
if (!textureData.texture) {
|
||||
var textureAtlasTexture = textureData.parent.texture;
|
||||
var originSize = new PIXI.Rectangle(0, 0, textureData.region.width, textureData.region.height);
|
||||
textureData.texture = new PIXI.Texture(textureAtlasTexture, textureData.region, textureData.region, originSize, textureData.rotated // .d.ts bug
|
||||
);
|
||||
}
|
||||
return new PIXI.Sprite(textureData.texture);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
Object.defineProperty(PixiFactory.prototype, "soundEventManater", {
|
||||
/**
|
||||
* @language zh_CN
|
||||
* 获取全局声音事件管理器。
|
||||
* @version DragonBones 4.5
|
||||
*/
|
||||
get: function () {
|
||||
return PixiFactory._eventManager;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
return PixiFactory;
|
||||
}(dragonBones.BaseFactory));
|
||||
PixiFactory._factory = null;
|
||||
PixiFactory._eventManager = null;
|
||||
PixiFactory._clock = null;
|
||||
dragonBones.PixiFactory = PixiFactory;
|
||||
})(dragonBones || (dragonBones = {}));
|
15
www/js/libs/fpsmeter.js
Normal file
15
www/js/libs/fpsmeter.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */
|
||||
(function(m,j){function s(a,e){for(var g in e)try{a.style[g]=e[g]}catch(j){}return a}function H(a){return null==a?String(a):"object"===typeof a||"function"===typeof a?Object.prototype.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()||"object":typeof a}function R(a,e){if("array"!==H(e))return-1;if(e.indexOf)return e.indexOf(a);for(var g=0,j=e.length;g<j;g++)if(e[g]===a)return g;return-1}function I(){var a=arguments,e;for(e in a[1])if(a[1].hasOwnProperty(e))switch(H(a[1][e])){case "object":a[0][e]=
|
||||
I({},a[0][e],a[1][e]);break;case "array":a[0][e]=a[1][e].slice(0);break;default:a[0][e]=a[1][e]}return 2<a.length?I.apply(null,[a[0]].concat(Array.prototype.slice.call(a,2))):a[0]}function N(a){a=Math.round(255*a).toString(16);return 1===a.length?"0"+a:a}function S(a,e,g,j){if(a.addEventListener)a[j?"removeEventListener":"addEventListener"](e,g,!1);else if(a.attachEvent)a[j?"detachEvent":"attachEvent"]("on"+e,g)}function D(a,e){function g(a,b,d,c){return y[0|a][Math.round(Math.min((b-d)/(c-d)*J,J))]}
|
||||
function r(){f.legend.fps!==q&&(f.legend.fps=q,f.legend[T]=q?"FPS":"ms");K=q?b.fps:b.duration;f.count[T]=999<K?"999+":K.toFixed(99<K?0:d.decimals)}function m(){z=A();L<z-d.threshold&&(b.fps-=b.fps/Math.max(1,60*d.smoothing/d.interval),b.duration=1E3/b.fps);for(c=d.history;c--;)E[c]=0===c?b.fps:E[c-1],F[c]=0===c?b.duration:F[c-1];r();if(d.heat){if(w.length)for(c=w.length;c--;)w[c].el.style[h[w[c].name].heatOn]=q?g(h[w[c].name].heatmap,b.fps,0,d.maxFps):g(h[w[c].name].heatmap,b.duration,d.threshold,
|
||||
0);if(f.graph&&h.column.heatOn)for(c=u.length;c--;)u[c].style[h.column.heatOn]=q?g(h.column.heatmap,E[c],0,d.maxFps):g(h.column.heatmap,F[c],d.threshold,0)}if(f.graph)for(p=0;p<d.history;p++)u[p].style.height=(q?E[p]?Math.round(O/d.maxFps*Math.min(E[p],d.maxFps)):0:F[p]?Math.round(O/d.threshold*Math.min(F[p],d.threshold)):0)+"px"}function k(){20>d.interval?(x=M(k),m()):(x=setTimeout(k,d.interval),P=M(m))}function G(a){a=a||window.event;a.preventDefault?(a.preventDefault(),a.stopPropagation()):(a.returnValue=
|
||||
!1,a.cancelBubble=!0);b.toggle()}function U(){d.toggleOn&&S(f.container,d.toggleOn,G,1);a.removeChild(f.container)}function V(){f.container&&U();h=D.theme[d.theme];y=h.compiledHeatmaps||[];if(!y.length&&h.heatmaps.length){for(p=0;p<h.heatmaps.length;p++){y[p]=[];for(c=0;c<=J;c++){var b=y[p],e=c,g;g=0.33/J*c;var j=h.heatmaps[p].saturation,m=h.heatmaps[p].lightness,n=void 0,k=void 0,l=void 0,t=l=void 0,v=n=k=void 0,v=void 0,l=0.5>=m?m*(1+j):m+j-m*j;0===l?g="#000":(t=2*m-l,k=(l-t)/l,g*=6,n=Math.floor(g),
|
||||
v=g-n,v*=l*k,0===n||6===n?(n=l,k=t+v,l=t):1===n?(n=l-v,k=l,l=t):2===n?(n=t,k=l,l=t+v):3===n?(n=t,k=l-v):4===n?(n=t+v,k=t):(n=l,k=t,l-=v),g="#"+N(n)+N(k)+N(l));b[e]=g}}h.compiledHeatmaps=y}f.container=s(document.createElement("div"),h.container);f.count=f.container.appendChild(s(document.createElement("div"),h.count));f.legend=f.container.appendChild(s(document.createElement("div"),h.legend));f.graph=d.graph?f.container.appendChild(s(document.createElement("div"),h.graph)):0;w.length=0;for(var q in f)f[q]&&
|
||||
h[q].heatOn&&w.push({name:q,el:f[q]});u.length=0;if(f.graph){f.graph.style.width=d.history*h.column.width+(d.history-1)*h.column.spacing+"px";for(c=0;c<d.history;c++)u[c]=f.graph.appendChild(s(document.createElement("div"),h.column)),u[c].style.position="absolute",u[c].style.bottom=0,u[c].style.right=c*h.column.width+c*h.column.spacing+"px",u[c].style.width=h.column.width+"px",u[c].style.height="0px"}s(f.container,d);r();a.appendChild(f.container);f.graph&&(O=f.graph.clientHeight);d.toggleOn&&("click"===
|
||||
d.toggleOn&&(f.container.style.cursor="pointer"),S(f.container,d.toggleOn,G))}"object"===H(a)&&a.nodeType===j&&(e=a,a=document.body);a||(a=document.body);var b=this,d=I({},D.defaults,e||{}),f={},u=[],h,y,J=100,w=[],W=0,B=d.threshold,Q=0,L=A()-B,z,E=[],F=[],x,P,q="fps"===d.show,O,K,c,p;b.options=d;b.fps=0;b.duration=0;b.isPaused=0;b.tickStart=function(){Q=A()};b.tick=function(){z=A();W=z-L;B+=(W-B)/d.smoothing;b.fps=1E3/B;b.duration=Q<L?B:z-Q;L=z};b.pause=function(){x&&(b.isPaused=1,clearTimeout(x),
|
||||
C(x),C(P),x=P=0);return b};b.resume=function(){x||(b.isPaused=0,k());return b};b.set=function(a,c){d[a]=c;q="fps"===d.show;-1!==R(a,X)&&V();-1!==R(a,Y)&&s(f.container,d);return b};b.showDuration=function(){b.set("show","ms");return b};b.showFps=function(){b.set("show","fps");return b};b.toggle=function(){b.set("show",q?"ms":"fps");return b};b.hide=function(){b.pause();f.container.style.display="none";return b};b.show=function(){b.resume();f.container.style.display="block";return b};b.destroy=function(){b.pause();
|
||||
U();b.tick=b.tickStart=function(){}};V();k()}var A,r=m.performance;A=r&&(r.now||r.webkitNow)?r[r.now?"now":"webkitNow"].bind(r):function(){return+new Date};for(var C=m.cancelAnimationFrame||m.cancelRequestAnimationFrame,M=m.requestAnimationFrame,r=["moz","webkit","o"],G=0,k=0,Z=r.length;k<Z&&!C;++k)M=(C=m[r[k]+"CancelAnimationFrame"]||m[r[k]+"CancelRequestAnimationFrame"])&&m[r[k]+"RequestAnimationFrame"];C||(M=function(a){var e=A(),g=Math.max(0,16-(e-G));G=e+g;return m.setTimeout(function(){a(e+
|
||||
g)},g)},C=function(a){clearTimeout(a)});var T="string"===H(document.createElement("div").textContent)?"textContent":"innerText";D.extend=I;window.FPSMeter=D;D.defaults={interval:100,smoothing:10,show:"fps",toggleOn:"click",decimals:1,maxFps:60,threshold:100,position:"absolute",zIndex:10,left:"5px",top:"5px",right:"auto",bottom:"auto",margin:"0 0 0 0",theme:"dark",heat:0,graph:0,history:20};var X=["toggleOn","theme","heat","graph","history"],Y="position zIndex left top right bottom margin".split(" ")})(window);(function(m,j){j.theme={};var s=j.theme.base={heatmaps:[],container:{heatOn:null,heatmap:null,padding:"5px",minWidth:"95px",height:"30px",lineHeight:"30px",textAlign:"right",textShadow:"none"},count:{heatOn:null,heatmap:null,position:"absolute",top:0,right:0,padding:"5px 10px",height:"30px",fontSize:"24px",fontFamily:"Consolas, Andale Mono, monospace",zIndex:2},legend:{heatOn:null,heatmap:null,position:"absolute",top:0,left:0,padding:"5px 10px",height:"30px",fontSize:"12px",lineHeight:"32px",fontFamily:"sans-serif",
|
||||
textAlign:"left",zIndex:2},graph:{heatOn:null,heatmap:null,position:"relative",boxSizing:"padding-box",MozBoxSizing:"padding-box",height:"100%",zIndex:1},column:{width:4,spacing:1,heatOn:null,heatmap:null}};j.theme.dark=j.extend({},s,{heatmaps:[{saturation:0.8,lightness:0.8}],container:{background:"#222",color:"#fff",border:"1px solid #1a1a1a",textShadow:"1px 1px 0 #222"},count:{heatOn:"color"},column:{background:"#3f3f3f"}});j.theme.light=j.extend({},s,{heatmaps:[{saturation:0.5,lightness:0.5}],
|
||||
container:{color:"#666",background:"#fff",textShadow:"1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)",boxShadow:"0 0 0 1px rgba(0,0,0,.1)"},count:{heatOn:"color"},column:{background:"#eaeaea"}});j.theme.colorful=j.extend({},s,{heatmaps:[{saturation:0.5,lightness:0.6}],container:{heatOn:"backgroundColor",background:"#888",color:"#fff",textShadow:"1px 1px 0 rgba(0,0,0,.2)",boxShadow:"0 0 0 1px rgba(0,0,0,.1)"},column:{background:"#777",backgroundColor:"rgba(0,0,0,.2)"}});j.theme.transparent=
|
||||
j.extend({},s,{heatmaps:[{saturation:0.8,lightness:0.5}],container:{padding:0,color:"#fff",textShadow:"1px 1px 0 rgba(0,0,0,.5)"},count:{padding:"0 5px",height:"40px",lineHeight:"40px"},legend:{padding:"0 5px",height:"40px",lineHeight:"42px"},graph:{height:"40px"},column:{width:5,background:"#999",heatOn:"backgroundColor",opacity:0.5}})})(window,FPSMeter);
|
BIN
www/js/libs/greenworks-linux32.node
Normal file
BIN
www/js/libs/greenworks-linux32.node
Normal file
Binary file not shown.
BIN
www/js/libs/greenworks-linux64.node
Normal file
BIN
www/js/libs/greenworks-linux64.node
Normal file
Binary file not shown.
BIN
www/js/libs/greenworks-osx64.node
Normal file
BIN
www/js/libs/greenworks-osx64.node
Normal file
Binary file not shown.
BIN
www/js/libs/greenworks-win32.node
Normal file
BIN
www/js/libs/greenworks-win32.node
Normal file
Binary file not shown.
BIN
www/js/libs/greenworks-win64.node
Normal file
BIN
www/js/libs/greenworks-win64.node
Normal file
Binary file not shown.
3
www/js/libs/iphone-inline-video.browser.js
Normal file
3
www/js/libs/iphone-inline-video.browser.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
/*! npm.im/iphone-inline-video */
|
||||
var makeVideoPlayableInline=function(){"use strict";/*! npm.im/intervalometer */
|
||||
function e(e,n,r,i){function t(r){d=n(t,i),e(r-(a||r)),a=r}var d,a;return{start:function(){d||t(0)},stop:function(){r(d),d=null,a=0}}}function n(n){return e(n,requestAnimationFrame,cancelAnimationFrame)}function r(e,n,r,i){function t(n){Boolean(e[r])===Boolean(i)&&n.stopImmediatePropagation(),delete e[r]}return e.addEventListener(n,t,!1),t}function i(e,n,r,i){function t(){return r[n]}function d(e){r[n]=e}i&&d(e[n]),Object.defineProperty(e,n,{get:t,set:d})}function t(e,n,r){r.addEventListener(n,function(){return e.dispatchEvent(new Event(n))})}function d(e,n){Promise.resolve().then(function(){e.dispatchEvent(new Event(n))})}function a(e){var n=new Audio;return t(e,"play",n),t(e,"playing",n),t(e,"pause",n),n.crossOrigin=e.crossOrigin,n.src=e.src||e.currentSrc||"data:",n}function o(e,n,r){(m||0)+200<Date.now()&&(e[g]=!0,m=Date.now()),r||(e.currentTime=n),A[++k%3]=100*n|0}function u(e){return e.driver.currentTime>=e.video.duration}function s(e){var n=this;n.video.readyState>=n.video.HAVE_FUTURE_DATA?(n.hasAudio||(n.driver.currentTime=n.video.currentTime+e*n.video.playbackRate/1e3,n.video.loop&&u(n)&&(n.driver.currentTime=0)),o(n.video,n.driver.currentTime)):n.video.networkState!==n.video.NETWORK_IDLE||n.video.buffered.length||n.video.load(),n.video.ended&&(delete n.video[g],n.video.pause(!0))}function c(){var e=this,n=e[b];return e.webkitDisplayingFullscreen?void e[E]():("data:"!==n.driver.src&&n.driver.src!==e.src&&(o(e,0,!0),n.driver.src=e.src),void(e.paused&&(n.paused=!1,e.buffered.length||e.load(),n.driver.play(),n.updater.start(),n.hasAudio||(d(e,"play"),n.video.readyState>=n.video.HAVE_ENOUGH_DATA&&d(e,"playing")))))}function v(e){var n=this,r=n[b];r.driver.pause(),r.updater.stop(),n.webkitDisplayingFullscreen&&n[T](),r.paused&&!e||(r.paused=!0,r.hasAudio||d(n,"pause"),n.ended&&(n[g]=!0,d(n,"ended")))}function p(e,r){var i=e[b]={};i.paused=!0,i.hasAudio=r,i.video=e,i.updater=n(s.bind(i)),r?i.driver=a(e):(e.addEventListener("canplay",function(){e.paused||d(e,"playing")}),i.driver={src:e.src||e.currentSrc||"data:",muted:!0,paused:!0,pause:function(){i.driver.paused=!0},play:function(){i.driver.paused=!1,u(i)&&o(e,0)},get ended(){return u(i)}}),e.addEventListener("emptied",function(){var n=!i.driver.src||"data:"===i.driver.src;i.driver.src&&i.driver.src!==e.src&&(o(e,0,!0),i.driver.src=e.src,n?i.driver.play():i.updater.stop())},!1),e.addEventListener("webkitbeginfullscreen",function(){e.paused?r&&!i.driver.buffered.length&&i.driver.load():(e.pause(),e[E]())}),r&&(e.addEventListener("webkitendfullscreen",function(){i.driver.currentTime=e.currentTime}),e.addEventListener("seeking",function(){A.indexOf(100*e.currentTime|0)<0&&(i.driver.currentTime=e.currentTime)}))}function l(e){var n=e[b];e[E]=e.play,e[T]=e.pause,e.play=c,e.pause=v,i(e,"paused",n.driver),i(e,"muted",n.driver,!0),i(e,"playbackRate",n.driver,!0),i(e,"ended",n.driver),i(e,"loop",n.driver,!0),r(e,"seeking"),r(e,"seeked"),r(e,"timeupdate",g,!1),r(e,"ended",g,!1)}function f(e,n,r){void 0===n&&(n=!0),void 0===r&&(r=!0),r&&!h||e[b]||(p(e,n),l(e),e.classList.add("IIV"),!n&&e.autoplay&&e.play(),/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments"))}var m,y="undefined"==typeof Symbol?function(e){return"@"+(e||"@")+Math.random()}:Symbol,h="object-fit"in document.head.style&&/iPhone|iPod/i.test(navigator.userAgent)&&!matchMedia("(-webkit-video-playable-inline)").matches,b=y(),g=y(),E=y("nativeplay"),T=y("nativepause"),A=[],k=0;return f.isWhitelisted=h,f}();
|
BIN
www/js/libs/libsdkencryptedappticket.dylib
Normal file
BIN
www/js/libs/libsdkencryptedappticket.dylib
Normal file
Binary file not shown.
BIN
www/js/libs/libsdkencryptedappticket.so
Normal file
BIN
www/js/libs/libsdkencryptedappticket.so
Normal file
Binary file not shown.
BIN
www/js/libs/libsteam_api.dylib
Normal file
BIN
www/js/libs/libsteam_api.dylib
Normal file
Binary file not shown.
BIN
www/js/libs/libsteam_api.so
Normal file
BIN
www/js/libs/libsteam_api.so
Normal file
Binary file not shown.
1
www/js/libs/lz-string.js
Normal file
1
www/js/libs/lz-string.js
Normal file
File diff suppressed because one or more lines are too long
398
www/js/libs/pinyin.json
Normal file
398
www/js/libs/pinyin.json
Normal file
|
@ -0,0 +1,398 @@
|
|||
{
|
||||
"a": "啊阿",
|
||||
"ai": "埃挨哎唉哀皑癌蔼矮艾碍爱隘",
|
||||
"an": "鞍氨安俺按暗岸胺案",
|
||||
"ang": "肮昂盎",
|
||||
"ao": "凹敖熬翱袄傲奥懊澳",
|
||||
"ba": "芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸",
|
||||
"bai": "白柏百摆佰败拜稗",
|
||||
"ban": "斑班搬扳般颁板版扮拌伴瓣半办绊",
|
||||
"bang": "邦帮梆榜膀绑棒磅蚌镑傍谤",
|
||||
"bao": "苞胞包褒剥盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆",
|
||||
"bei": "杯碑悲卑北辈背贝钡倍狈备惫焙被",
|
||||
"ben": "奔苯本笨",
|
||||
"beng": "崩绷甭泵蹦迸",
|
||||
"bi": "逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛",
|
||||
"bian": "鞭边编贬扁便变卞辨辩辫遍",
|
||||
"biao": "标彪膘表",
|
||||
"bie": "鳖憋别瘪",
|
||||
"bin": "彬斌濒滨宾摈",
|
||||
"bing": "兵冰柄丙秉饼炳 睝睞睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并",
|
||||
"bo": "玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜",
|
||||
"bu": "哺补埠不布步簿部怖",
|
||||
"ca": "擦",
|
||||
"cai": "猜裁材才财睬踩采彩菜蔡",
|
||||
"can": "餐参蚕残惭惨灿",
|
||||
"cang": "苍舱仓沧藏",
|
||||
"cao": "操糙槽曹草",
|
||||
"ce": "厕策侧册测",
|
||||
"ceng": "层蹭",
|
||||
"cha": "插叉茬茶查碴搽察岔差诧",
|
||||
"chai": "拆柴豺",
|
||||
"chan": "搀掺蝉馋谗缠铲产阐颤",
|
||||
"chang": "昌猖 矦矨矪矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡",
|
||||
"chao": "超抄钞朝嘲潮巢吵炒",
|
||||
"che": "车扯撤掣彻澈",
|
||||
"chen": "郴臣辰尘晨忱沉陈趁衬",
|
||||
"cheng": "撑称城橙成呈乘程惩澄诚承逞骋秤",
|
||||
"chi": "吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽",
|
||||
"chong": "充冲虫崇宠",
|
||||
"chou": "抽酬畴踌稠愁筹仇绸瞅丑臭",
|
||||
"chu": "初出橱厨躇锄雏滁除楚碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处",
|
||||
"chuai": "揣",
|
||||
"chuan": "川穿椽传船喘串",
|
||||
"chuang": "疮窗幢床闯创",
|
||||
"chui": "吹炊捶锤垂",
|
||||
"chun": "春椿醇唇淳纯蠢",
|
||||
"chuo": "戳绰",
|
||||
"ci": "疵茨磁雌辞慈瓷词此刺赐次",
|
||||
"cong": "聪葱囱匆从丛",
|
||||
"cou": "凑",
|
||||
"cu": "粗醋簇促",
|
||||
"cuan": "蹿篡窜",
|
||||
"cui": "摧崔催脆瘁粹淬翠",
|
||||
"cun": "村存寸",
|
||||
"cuo": "磋撮搓措挫错",
|
||||
"da": "搭达答瘩打大",
|
||||
"dai": "呆歹傣戴带殆代贷袋待逮礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠",
|
||||
"dan": "耽担丹单郸掸胆旦氮但惮淡诞弹蛋",
|
||||
"dang": "当挡党荡档",
|
||||
"dao": "刀捣蹈倒岛祷导到稻悼道盗",
|
||||
"de": "德得的",
|
||||
"deng": "蹬灯登等瞪凳邓",
|
||||
"di": "堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔",
|
||||
"dian": "颠掂滇碘点典靛垫电佃甸店惦奠淀殿",
|
||||
"diao": "碉叼雕凋刁掉吊钓调",
|
||||
"die": "跌爹碟蝶迭谍叠禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜",
|
||||
"ding": "丁盯叮钉顶鼎锭定订",
|
||||
"diu": "丢",
|
||||
"dong": "东冬董懂动栋侗恫冻洞",
|
||||
"dou": "兜抖斗陡豆逗痘",
|
||||
"du": "都督毒犊独读堵睹赌杜镀肚度渡妒",
|
||||
"duan": "端短锻段断缎",
|
||||
"dui": "堆兑队对",
|
||||
"dun": "墩吨蹲敦顿囤钝盾遁",
|
||||
"duo": "掇哆多夺垛躲朵跺舵剁惰堕",
|
||||
"e": "蛾峨鹅俄额讹娥恶厄扼遏鄂饿",
|
||||
"en": "恩",
|
||||
"er": "而儿耳尔饵洱二稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰",
|
||||
"fa": "发罚筏伐乏阀法珐",
|
||||
"fan": "藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛",
|
||||
"fang": "坊芳方肪房防妨仿访纺放",
|
||||
"fei": "菲非啡飞肥匪诽吠肺废沸费",
|
||||
"fen": "芬酚吩氛分纷坟焚汾粉奋份忿愤粪",
|
||||
"feng": "丰封枫蜂峰锋风疯烽逢冯缝讽奉凤",
|
||||
"fo": "佛",
|
||||
"fou": "否",
|
||||
"fu": "夫敷肤孵扶拂辐幅氟符伏俘服窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐",
|
||||
"ga": "噶嘎",
|
||||
"gai": "该改概钙盖溉",
|
||||
"gan": "干甘杆柑竿肝赶感秆敢赣",
|
||||
"gang": "冈刚钢缸肛纲岗港杠",
|
||||
"gao": "篙皋高膏羔糕搞镐稿告",
|
||||
"ge": "哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各",
|
||||
"gei": "给",
|
||||
"gen": "根跟",
|
||||
"geng": "耕更庚羹笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗",
|
||||
"gong": "工攻功恭龚供躬公宫弓巩汞拱贡共",
|
||||
"gou": "钩勾沟苟狗垢构购够",
|
||||
"gu": "辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇",
|
||||
"gua": "刮瓜剐寡挂褂",
|
||||
"guai": "乖拐怪",
|
||||
"guan": "棺关官冠观管馆罐惯灌贯",
|
||||
"guang": "光广逛",
|
||||
"gui": "瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽",
|
||||
"gun": "辊滚棍",
|
||||
"guo": "锅郭国果裹过",
|
||||
"ha": "哈篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂",
|
||||
"hai": "骸孩海氦亥害骇",
|
||||
"han": "酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉",
|
||||
"hang": "夯杭航",
|
||||
"hao": "壕嚎豪毫郝好耗号浩",
|
||||
"he": "呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺",
|
||||
"hei": "嘿黑",
|
||||
"hen": "痕很狠恨",
|
||||
"heng": "哼亨横衡恒",
|
||||
"hong": "轰哄烘虹鸿洪宏弘红",
|
||||
"hou": "喉侯猴吼厚候后",
|
||||
"hu": "呼乎忽瑚壶葫胡蝴狐糊湖籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户",
|
||||
"hua": "花哗华猾滑画划化话",
|
||||
"huai": "槐徊怀淮坏",
|
||||
"huan": "欢环桓还缓换患唤痪豢焕涣宦幻",
|
||||
"huang": "荒慌黄磺蝗簧皇凰惶煌晃幌恍谎",
|
||||
"hui": "灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘",
|
||||
"hun": "荤昏婚魂浑混",
|
||||
"huo": "豁活伙火获或惑霍货祸",
|
||||
"ji": "击圾基机畸稽积箕粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪",
|
||||
"jia": "嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁",
|
||||
"jian": "歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件 紷紸紹紺紻紼紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建",
|
||||
"jiang": "僵姜将浆江疆蒋桨奖讲匠酱降",
|
||||
"jiao": "蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖",
|
||||
"jie": "揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届",
|
||||
"jin": "巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲",
|
||||
"jing": "荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净",
|
||||
"jiong": "炯窘",
|
||||
"jiu": "揪究纠玖韭久灸九酒厩救旧臼舅咎就疚",
|
||||
"ju": "鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧",
|
||||
"juan": "捐鹃娟倦眷卷绢",
|
||||
"jue": "撅攫抉掘倔爵觉决诀绝",
|
||||
"jun": "均菌钧军君峻緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏",
|
||||
"ka": "喀咖卡咯",
|
||||
"kai": "开揩楷凯慨",
|
||||
"kan": "刊堪勘坎砍看",
|
||||
"kang": "康慷糠扛抗亢炕",
|
||||
"kao": "考拷烤靠",
|
||||
"ke": "坷苛柯棵磕颗科壳咳可渴克刻客课",
|
||||
"ken": "肯啃垦恳",
|
||||
"keng": "坑吭",
|
||||
"kong": "空恐孔控",
|
||||
"kou": "抠口扣寇",
|
||||
"ku": "枯哭窟苦酷库裤",
|
||||
"kua": "夸垮挎跨胯",
|
||||
"kuai": "块筷侩快",
|
||||
"kuan": "宽款",
|
||||
"kuang": "匡筐狂框矿眶旷况",
|
||||
"kui": "亏盔岿窥葵奎魁傀繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃",
|
||||
"kun": "坤昆捆困",
|
||||
"kuo": "括扩廓阔",
|
||||
"la": "垃拉喇蜡腊辣啦邋",
|
||||
"lai": "莱来赖",
|
||||
"lan": "蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥",
|
||||
"lang": "琅榔狼廊郎朗浪",
|
||||
"lao": "捞劳牢老佬姥酪烙涝",
|
||||
"le": "勒乐了",
|
||||
"lei": "雷镭蕾磊累儡垒擂肋类泪",
|
||||
"leng": "棱楞冷",
|
||||
"li": "厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩",
|
||||
"lia": "俩",
|
||||
"lian": "联莲连镰廉怜涟帘敛脸链恋炼练",
|
||||
"liang": "粮凉梁粱良两辆量晾亮谅",
|
||||
"liao": "撩聊僚疗燎寥辽潦撂镣廖料",
|
||||
"lie": "列裂烈劣猎",
|
||||
"lin": "琳林磷霖临邻鳞淋凛赁吝拎",
|
||||
"ling": "玲菱零龄铃伶羚凌灵陵岭领另令",
|
||||
"liu": "溜琉榴硫馏留刘瘤流柳六",
|
||||
"long": "龙聋咙笼窿 翤翧翨翪翫翬翭翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇",
|
||||
"lou": "楼娄搂篓漏陋",
|
||||
"lu": "芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮",
|
||||
"lv": "驴吕铝侣旅履屡缕虑氯律率滤绿",
|
||||
"luan": "峦挛孪滦卵乱",
|
||||
"lue": "掠略",
|
||||
"lun": "抡轮伦仑沦纶论",
|
||||
"luo": "萝螺罗逻锣箩骡裸落洛骆络",
|
||||
"ma": "妈麻玛码蚂马骂嘛吗",
|
||||
"mai": "埋买麦卖迈脉",
|
||||
"man": "瞒馒蛮满蔓曼慢漫聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩",
|
||||
"mang": "芒茫盲氓忙莽",
|
||||
"mao": "猫茅锚毛矛铆卯茂冒帽貌贸",
|
||||
"me": "么",
|
||||
"mei": "玫枚梅酶霉煤没眉媒镁每美昧寐妹媚",
|
||||
"men": "门闷们",
|
||||
"meng": "萌蒙檬盟锰猛梦孟",
|
||||
"mi": "眯醚靡糜迷谜弥米秘觅泌蜜密幂",
|
||||
"mian": "棉眠绵冕免勉娩缅面",
|
||||
"miao": "苗描瞄藐秒渺庙妙",
|
||||
"mie": "蔑灭",
|
||||
"min": "民抿皿敏悯闽",
|
||||
"ming": "明螟鸣铭名命",
|
||||
"miu": "谬",
|
||||
"mo": "摸腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌",
|
||||
"mou": "谋牟某",
|
||||
"mu": "拇牡亩姆母墓暮幕募慕木目睦牧穆",
|
||||
"na": "拿哪呐钠那娜纳",
|
||||
"nai": "氖乃奶耐奈",
|
||||
"nan": "南男难",
|
||||
"nang": "囊",
|
||||
"nao": "挠脑恼闹淖",
|
||||
"ne": "呢",
|
||||
"nei": "馁内",
|
||||
"nen": "嫩",
|
||||
"neng": "能",
|
||||
"ni": "妮霓倪泥尼拟你匿腻逆溺",
|
||||
"nian": "蔫拈年碾撵捻念",
|
||||
"niang": "娘酿",
|
||||
"niao": "鸟尿",
|
||||
"nie": "捏聂孽啮镊镍涅",
|
||||
"nin": "您",
|
||||
"ning": "柠狞凝宁 臔臕臖臗臘臙臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞",
|
||||
"niu": "牛扭钮纽",
|
||||
"nong": "脓浓农弄",
|
||||
"nu": "奴努怒",
|
||||
"nv": "女",
|
||||
"nuan": "暖",
|
||||
"nue": "虐疟",
|
||||
"nuo": "挪懦糯诺",
|
||||
"o": "哦",
|
||||
"ou": "欧鸥殴藕呕偶沤",
|
||||
"pa": "啪趴爬帕怕琶",
|
||||
"pai": "拍排牌徘湃派",
|
||||
"pan": "攀潘盘磐盼畔判叛",
|
||||
"pang": "乓庞旁耪胖",
|
||||
"pao": "抛咆刨炮袍跑泡",
|
||||
"pei": "呸胚培裴赔陪配佩沛",
|
||||
"pen": "喷盆",
|
||||
"peng": "砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰",
|
||||
"pi": "坯砒霹批披劈琵毗艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬",
|
||||
"pian": "篇偏片骗",
|
||||
"piao": "飘漂瓢票",
|
||||
"pie": "撇瞥",
|
||||
"pin": "拼频贫品聘",
|
||||
"ping": "乒坪苹萍平凭瓶评屏",
|
||||
"po": "坡泼颇婆破魄迫粕剖",
|
||||
"pu": "扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑",
|
||||
"qi": "期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫",
|
||||
"qia": "掐茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽",
|
||||
"qian": "牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉",
|
||||
"qiang": "枪呛腔羌墙蔷强抢",
|
||||
"qiao": "橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍",
|
||||
"qie": "切茄且怯窃",
|
||||
"qin": "钦侵亲秦琴勤芹擒禽寝沁",
|
||||
"qing": "蜻青轻氢倾卿清擎晴氰情顷请庆",
|
||||
"qiong": "琼穷",
|
||||
"qiu": "秋丘邱球求囚酋泅",
|
||||
"qu": "趋区蛆曲躯屈驱渠菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去",
|
||||
"quan": "圈颧权醛泉全痊拳犬券劝",
|
||||
"que": "缺炔瘸却鹊榷确雀",
|
||||
"qun": "裙群",
|
||||
"ran": "然燃冉染",
|
||||
"rang": "瓤壤攘嚷让",
|
||||
"rao": "饶扰绕",
|
||||
"re": "惹热",
|
||||
"ren": "壬仁人忍韧任认刃妊纫",
|
||||
"reng": "扔仍",
|
||||
"ri": "日",
|
||||
"rong": "戎茸蓉荣融熔溶容绒冗",
|
||||
"rou": "揉柔肉",
|
||||
"ru": "茹蠕儒孺如辱乳汝入褥",
|
||||
"ruan": "软阮",
|
||||
"rui": "蕊瑞锐",
|
||||
"run": "闰润",
|
||||
"ruo": "若弱",
|
||||
"sa": "撒洒萨",
|
||||
"sai": "腮鳃塞赛",
|
||||
"san": "三叁葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散",
|
||||
"sang": "桑嗓丧",
|
||||
"sao": "搔骚扫嫂",
|
||||
"se": "瑟色涩",
|
||||
"sen": "森",
|
||||
"seng": "僧",
|
||||
"sha": "莎砂杀刹沙纱傻啥煞",
|
||||
"shai": "筛晒",
|
||||
"shan": "珊苫杉山删煽衫闪陕擅赡膳善汕扇缮",
|
||||
"shang": "墒伤商赏晌上尚裳",
|
||||
"shao": "梢捎稍烧芍勺韶少哨邵绍",
|
||||
"she": "奢赊蛇舌舍赦摄射慑涉社设",
|
||||
"shen": "砷申呻伸身深娠绅神沈审婶甚肾慎渗",
|
||||
"sheng": "声生甥牲升绳 蔃蔄蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣",
|
||||
"shi": "师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试",
|
||||
"shou": "收手首守寿授售受瘦兽",
|
||||
"shu": "蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕",
|
||||
"shua": "刷耍",
|
||||
"shuai": "摔衰甩帅",
|
||||
"shuan": "栓拴",
|
||||
"shuang": "霜双爽",
|
||||
"shui": "谁水睡税",
|
||||
"shun": "吮瞬顺舜",
|
||||
"shuo": "说硕朔烁",
|
||||
"si": "斯撕嘶思私司丝死肆寺嗣四伺似饲巳",
|
||||
"song": "松耸怂颂送宋讼诵",
|
||||
"sou": "搜艘擞",
|
||||
"su": "嗽苏酥俗素速粟僳塑溯宿诉肃",
|
||||
"suan": "酸蒜算",
|
||||
"sui": "虽隋随绥髓碎岁穗遂隧祟",
|
||||
"sun": "孙损笋",
|
||||
"suo": "蓑梭唆缩琐索锁所",
|
||||
"ta": "遢塌他它她塔藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏",
|
||||
"tai": "胎苔抬台泰酞太态汰",
|
||||
"tan": "坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭",
|
||||
"tang": "汤塘搪堂棠膛唐糖倘躺淌趟烫",
|
||||
"tao": "掏涛滔绦萄桃逃淘陶讨套",
|
||||
"te": "特",
|
||||
"teng": "藤腾疼誊",
|
||||
"ti": "梯剔踢锑提题蹄啼体替嚏惕涕剃屉",
|
||||
"tian": "天添填田甜恬舔腆",
|
||||
"tiao": "挑条迢眺跳",
|
||||
"tie": "贴铁帖",
|
||||
"ting": "蜓厅听烃虭虯虰虲虳虴虵虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇",
|
||||
"tong": "通桐酮瞳同铜彤童桶捅筒统痛",
|
||||
"tou": "偷投头透",
|
||||
"tu": "凸秃突图徒途涂屠土吐兔",
|
||||
"tuan": "湍团",
|
||||
"tui": "推颓腿蜕褪退",
|
||||
"tun": "吞屯臀",
|
||||
"tuo": "拖托脱鸵陀驮驼椭妥拓唾",
|
||||
"wa": "挖哇蛙洼娃瓦袜",
|
||||
"wai": "歪外",
|
||||
"wan": "豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕",
|
||||
"wang": "汪王亡枉网往旺望忘妄",
|
||||
"wei": "威蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫",
|
||||
"wen": "瘟温蚊文闻纹吻稳紊问",
|
||||
"weng": "嗡翁瓮",
|
||||
"wo": "挝蜗涡窝我斡卧握沃",
|
||||
"wu": "巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误",
|
||||
"xi": "昔熙析西硒矽晰嘻吸锡牺螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细",
|
||||
"xia": "瞎虾匣霞辖暇峡侠狭下厦夏吓",
|
||||
"xian": "掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线",
|
||||
"xiang": "相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象",
|
||||
"xiao": "萧硝霄削哮嚣销消宵淆晓蠤蠥蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效",
|
||||
"xie": "楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑",
|
||||
"xin": "薪芯锌欣辛新忻心信衅",
|
||||
"xing": "星腥猩惺兴刑型形邢行醒幸杏性姓",
|
||||
"xiong": "兄凶胸匈汹雄熊",
|
||||
"xiu": "休修羞朽嗅锈秀袖绣",
|
||||
"xu": "墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续",
|
||||
"xuan": "轩喧宣悬旋玄 袬袮袯袰袲袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚",
|
||||
"xue": "靴薛学穴雪血",
|
||||
"xun": "勋熏循旬询寻驯巡殉汛训讯逊迅",
|
||||
"ya": "压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶",
|
||||
"yan": "焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验",
|
||||
"yang": "殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾",
|
||||
"yao": "邀腰妖瑶褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀",
|
||||
"ye": "椰噎耶爷野冶也页掖业叶曳腋夜液",
|
||||
"yi": "一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎",
|
||||
"yin": "茵荫因殷音阴姻吟银淫寅饮尹引隐覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印",
|
||||
"ying": "英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映",
|
||||
"yo": "哟",
|
||||
"yong": "拥佣臃痈庸雍踊蛹咏泳涌永恿勇用",
|
||||
"you": "幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂",
|
||||
"yu": "淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭",
|
||||
"yuan": "鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院",
|
||||
"yue": "曰约越跃钥岳粤月悦阅",
|
||||
"yun": "耘云郧匀陨允运蕴酝晕韵孕",
|
||||
"za": "匝砸杂",
|
||||
"zai": "栽哉灾宰载再在",
|
||||
"zan": "咱攒暂赞",
|
||||
"zang": "赃脏葬",
|
||||
"zao": "遭糟凿藻枣早澡蚤躁噪造皂灶燥",
|
||||
"ze": "责择则泽",
|
||||
"zei": "贼",
|
||||
"zen": "怎",
|
||||
"zeng": "增憎曾赠",
|
||||
"zha": "扎喳渣札轧誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈",
|
||||
"zhai": "摘斋宅窄债寨",
|
||||
"zhan": "瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽",
|
||||
"zhang": "樟章彰漳张掌涨杖丈帐账仗胀瘴障",
|
||||
"zhao": "招昭找沼赵照罩兆肇召",
|
||||
"zhe": "遮折哲蛰辙者锗蔗这浙",
|
||||
"zhen": "珍斟真甄砧臻贞针侦枕疹诊震振镇阵",
|
||||
"zheng": "蒸挣睁征狰争怔整拯正政諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证",
|
||||
"zhi": "芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒",
|
||||
"zhong": "中盅忠钟衷终种肿重仲众",
|
||||
"zhou": "舟周州洲诌粥轴肘帚咒皱宙昼骤",
|
||||
"zhu": "珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻",
|
||||
"zhua": "抓爪",
|
||||
"zhuai": "拽",
|
||||
"zhuan": "专砖转撰赚篆",
|
||||
"zhuang": "桩庄装妆撞壮状",
|
||||
"zhui": "椎锥追赘坠缀",
|
||||
"zhun": "谆准",
|
||||
"zhuo": "捉拙卓桌琢茁酌啄着灼浊",
|
||||
"zi": "兹咨资姿滋淄孜紫仔籽滓子自渍字",
|
||||
"zong": "鬃棕踪宗综总纵",
|
||||
"zou": "邹走奏揍",
|
||||
"zu": "租足卒族祖诅阻组",
|
||||
"zuan": "钻纂",
|
||||
"zui": "嘴醉最罪",
|
||||
"zun": "尊遵",
|
||||
"zuo": "昨左佐柞做作坐座"
|
||||
}
|
44078
www/js/libs/pixi-legacy.js
Normal file
44078
www/js/libs/pixi-legacy.js
Normal file
File diff suppressed because it is too large
Load diff
1
www/js/libs/pixi-legacy.js.map
Normal file
1
www/js/libs/pixi-legacy.js.map
Normal file
File diff suppressed because one or more lines are too long
9
www/js/libs/pixi-legacy.min.js
vendored
Normal file
9
www/js/libs/pixi-legacy.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
www/js/libs/pixi-legacy.min.js.map
Normal file
1
www/js/libs/pixi-legacy.min.js.map
Normal file
File diff suppressed because one or more lines are too long
404
www/js/libs/pixi-picture.js
Normal file
404
www/js/libs/pixi-picture.js
Normal file
|
@ -0,0 +1,404 @@
|
|||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = function (d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
var BackdropFilter = (function (_super) {
|
||||
__extends(BackdropFilter, _super);
|
||||
function BackdropFilter() {
|
||||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||||
_this.backdropUniformName = null;
|
||||
_this._backdropActive = false;
|
||||
_this.clearColor = null;
|
||||
return _this;
|
||||
}
|
||||
return BackdropFilter;
|
||||
}(PIXI.Filter));
|
||||
pixi_picture.BackdropFilter = BackdropFilter;
|
||||
var filterFrag = "\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D uBackdrop;\n\n%UNIFORM_CODE%\n\nvoid main(void)\n{\n vec4 b_src = texture2D(uSampler, vTextureCoord);\n vec4 b_dest = texture2D(uBackdrop, vTextureCoord);\n vec4 b_res = b_dest;\n \n %BLEND_CODE%\n\n gl_FragColor = b_res;\n}";
|
||||
var BlendFilter = (function (_super) {
|
||||
__extends(BlendFilter, _super);
|
||||
function BlendFilter(shaderParts) {
|
||||
var _this = this;
|
||||
var fragCode = filterFrag;
|
||||
fragCode = fragCode.replace('%UNIFORM_CODE%', shaderParts.uniformCode || "");
|
||||
fragCode = fragCode.replace('%BLEND_CODE%', shaderParts.blendCode || "");
|
||||
_this = _super.call(this, undefined, fragCode, shaderParts.uniforms) || this;
|
||||
_this.backdropUniformName = 'uBackdrop';
|
||||
return _this;
|
||||
}
|
||||
return BlendFilter;
|
||||
}(BackdropFilter));
|
||||
pixi_picture.BlendFilter = BlendFilter;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
function containsRect(rectOut, rectIn) {
|
||||
var r1 = rectIn.x + rectIn.width;
|
||||
var b1 = rectIn.y + rectIn.height;
|
||||
var r2 = rectOut.x + rectOut.width;
|
||||
var b2 = rectOut.y + rectOut.height;
|
||||
return (rectIn.x >= rectOut.x) &&
|
||||
(rectIn.x <= r2) &&
|
||||
(rectIn.y >= rectOut.y) &&
|
||||
(rectIn.y <= b2) &&
|
||||
(r1 >= rectOut.x) &&
|
||||
(r1 <= r2) &&
|
||||
(b1 >= rectOut.y) &&
|
||||
(b1 <= b2);
|
||||
}
|
||||
PIXI.systems.TextureSystem.prototype.bindForceLocation = function (texture, location) {
|
||||
if (location === void 0) { location = 0; }
|
||||
var gl = this.gl;
|
||||
if (this.currentLocation !== location) {
|
||||
this.currentLocation = location;
|
||||
gl.activeTexture(gl.TEXTURE0 + location);
|
||||
}
|
||||
this.bind(texture, location);
|
||||
};
|
||||
function pushWithCheck(target, filters, checkEmptyBounds) {
|
||||
if (checkEmptyBounds === void 0) { checkEmptyBounds = true; }
|
||||
var renderer = this.renderer;
|
||||
var filterStack = this.defaultFilterStack;
|
||||
var state = this.statePool.pop() || new PIXI.FilterState();
|
||||
var resolution = filters[0].resolution;
|
||||
var padding = filters[0].padding;
|
||||
var autoFit = filters[0].autoFit;
|
||||
var legacy = filters[0].legacy;
|
||||
for (var i = 1; i < filters.length; i++) {
|
||||
var filter = filters[i];
|
||||
resolution = Math.min(resolution, filter.resolution);
|
||||
padding = this.useMaxPadding
|
||||
? Math.max(padding, filter.padding)
|
||||
: padding + filter.padding;
|
||||
autoFit = autoFit || filter.autoFit;
|
||||
legacy = legacy || filter.legacy;
|
||||
}
|
||||
if (filterStack.length === 1) {
|
||||
this.defaultFilterStack[0].renderTexture = renderer.renderTexture.current;
|
||||
}
|
||||
filterStack.push(state);
|
||||
state.resolution = resolution;
|
||||
state.legacy = legacy;
|
||||
state.target = target;
|
||||
state.sourceFrame.copyFrom(target.filterArea || target.getBounds(true));
|
||||
var canUseBackdrop = true;
|
||||
state.sourceFrame.pad(padding);
|
||||
if (autoFit) {
|
||||
state.sourceFrame.fit(this.renderer.renderTexture.sourceFrame);
|
||||
}
|
||||
else {
|
||||
canUseBackdrop = containsRect(this.renderer.renderTexture.sourceFrame, state.sourceFrame);
|
||||
}
|
||||
if (checkEmptyBounds && state.sourceFrame.width <= 1 && state.sourceFrame.height <= 1) {
|
||||
filterStack.pop();
|
||||
state.clear();
|
||||
this.statePool.push(state);
|
||||
return false;
|
||||
}
|
||||
state.sourceFrame.ceil(resolution);
|
||||
if (canUseBackdrop) {
|
||||
var backdrop = null;
|
||||
for (var i = 0; i < filters.length; i++) {
|
||||
var bName = filters[i].backdropUniformName;
|
||||
if (bName) {
|
||||
if (backdrop === null) {
|
||||
backdrop = this.prepareBackdrop(state.sourceFrame);
|
||||
}
|
||||
filters[i].uniforms[bName] = backdrop;
|
||||
if (backdrop) {
|
||||
filters[i]._backdropActive = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
state.renderTexture = this.getOptimalFilterTexture(state.sourceFrame.width, state.sourceFrame.height, resolution);
|
||||
state.filters = filters;
|
||||
state.destinationFrame.width = state.renderTexture.width;
|
||||
state.destinationFrame.height = state.renderTexture.height;
|
||||
var destinationFrame = this.tempRect;
|
||||
destinationFrame.width = state.sourceFrame.width;
|
||||
destinationFrame.height = state.sourceFrame.height;
|
||||
state.renderTexture.filterFrame = state.sourceFrame;
|
||||
renderer.renderTexture.bind(state.renderTexture, state.sourceFrame, destinationFrame);
|
||||
renderer.renderTexture.clear(filters[filters.length - 1].clearColor);
|
||||
return true;
|
||||
}
|
||||
function push(target, filters) {
|
||||
return this.pushWithCheck(target, filters, false);
|
||||
}
|
||||
function pop() {
|
||||
var filterStack = this.defaultFilterStack;
|
||||
var state = filterStack.pop();
|
||||
var filters = state.filters;
|
||||
this.activeState = state;
|
||||
var globalUniforms = this.globalUniforms.uniforms;
|
||||
globalUniforms.outputFrame = state.sourceFrame;
|
||||
globalUniforms.resolution = state.resolution;
|
||||
var inputSize = globalUniforms.inputSize;
|
||||
var inputPixel = globalUniforms.inputPixel;
|
||||
var inputClamp = globalUniforms.inputClamp;
|
||||
inputSize[0] = state.destinationFrame.width;
|
||||
inputSize[1] = state.destinationFrame.height;
|
||||
inputSize[2] = 1.0 / inputSize[0];
|
||||
inputSize[3] = 1.0 / inputSize[1];
|
||||
inputPixel[0] = inputSize[0] * state.resolution;
|
||||
inputPixel[1] = inputSize[1] * state.resolution;
|
||||
inputPixel[2] = 1.0 / inputPixel[0];
|
||||
inputPixel[3] = 1.0 / inputPixel[1];
|
||||
inputClamp[0] = 0.5 * inputPixel[2];
|
||||
inputClamp[1] = 0.5 * inputPixel[3];
|
||||
inputClamp[2] = (state.sourceFrame.width * inputSize[2]) - (0.5 * inputPixel[2]);
|
||||
inputClamp[3] = (state.sourceFrame.height * inputSize[3]) - (0.5 * inputPixel[3]);
|
||||
if (state.legacy) {
|
||||
var filterArea = globalUniforms.filterArea;
|
||||
filterArea[0] = state.destinationFrame.width;
|
||||
filterArea[1] = state.destinationFrame.height;
|
||||
filterArea[2] = state.sourceFrame.x;
|
||||
filterArea[3] = state.sourceFrame.y;
|
||||
globalUniforms.filterClamp = globalUniforms.inputClamp;
|
||||
}
|
||||
this.globalUniforms.update();
|
||||
var lastState = filterStack[filterStack.length - 1];
|
||||
if (state.renderTexture.framebuffer.multisample > 1) {
|
||||
this.renderer.framebuffer.blit();
|
||||
}
|
||||
if (filters.length === 1) {
|
||||
filters[0].apply(this, state.renderTexture, lastState.renderTexture, PIXI.CLEAR_MODES.BLEND, state);
|
||||
this.returnFilterTexture(state.renderTexture);
|
||||
}
|
||||
else {
|
||||
var flip = state.renderTexture;
|
||||
var flop = this.getOptimalFilterTexture(flip.width, flip.height, state.resolution);
|
||||
flop.filterFrame = flip.filterFrame;
|
||||
var i = 0;
|
||||
for (i = 0; i < filters.length - 1; ++i) {
|
||||
filters[i].apply(this, flip, flop, PIXI.CLEAR_MODES.CLEAR, state);
|
||||
var t = flip;
|
||||
flip = flop;
|
||||
flop = t;
|
||||
}
|
||||
filters[i].apply(this, flip, lastState.renderTexture, PIXI.CLEAR_MODES.BLEND, state);
|
||||
this.returnFilterTexture(flip);
|
||||
this.returnFilterTexture(flop);
|
||||
}
|
||||
var backdropFree = false;
|
||||
for (var i = 0; i < filters.length; i++) {
|
||||
if (filters[i]._backdropActive) {
|
||||
var bName = filters[i].backdropUniformName;
|
||||
if (!backdropFree) {
|
||||
this.returnFilterTexture(filters[i].uniforms[bName]);
|
||||
backdropFree = true;
|
||||
}
|
||||
filters[i].uniforms[bName] = null;
|
||||
filters[i]._backdropActive = false;
|
||||
}
|
||||
}
|
||||
state.clear();
|
||||
this.statePool.push(state);
|
||||
}
|
||||
var hadBackbufferError = false;
|
||||
function prepareBackdrop(bounds) {
|
||||
var renderer = this.renderer;
|
||||
var renderTarget = renderer.renderTexture.current;
|
||||
var fr = this.renderer.renderTexture.sourceFrame;
|
||||
if (!renderTarget) {
|
||||
if (!hadBackbufferError) {
|
||||
hadBackbufferError = true;
|
||||
console.warn('pixi-picture: you are trying to use Blend Filter on main framebuffer! That wont work.');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
var resolution = renderTarget.baseTexture.resolution;
|
||||
var x = (bounds.x - fr.x) * resolution;
|
||||
var y = (bounds.y - fr.y) * resolution;
|
||||
var w = (bounds.width) * resolution;
|
||||
var h = (bounds.height) * resolution;
|
||||
var gl = renderer.gl;
|
||||
var rt = this.getOptimalFilterTexture(w, h, 1);
|
||||
rt.filterFrame = fr;
|
||||
renderer.texture.bindForceLocation(rt.baseTexture, 0);
|
||||
gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x, y, w, h);
|
||||
return rt;
|
||||
}
|
||||
PIXI.systems.FilterSystem.prototype.push = push;
|
||||
PIXI.systems.FilterSystem.prototype.pushWithCheck = pushWithCheck;
|
||||
PIXI.systems.FilterSystem.prototype.pop = pop;
|
||||
PIXI.systems.FilterSystem.prototype.prepareBackdrop = prepareBackdrop;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
var MASK_CHANNEL;
|
||||
(function (MASK_CHANNEL) {
|
||||
MASK_CHANNEL[MASK_CHANNEL["RED"] = 0] = "RED";
|
||||
MASK_CHANNEL[MASK_CHANNEL["GREEN"] = 1] = "GREEN";
|
||||
MASK_CHANNEL[MASK_CHANNEL["BLUE"] = 2] = "BLUE";
|
||||
MASK_CHANNEL[MASK_CHANNEL["ALPHA"] = 3] = "ALPHA";
|
||||
})(MASK_CHANNEL = pixi_picture.MASK_CHANNEL || (pixi_picture.MASK_CHANNEL = {}));
|
||||
var MaskConfig = (function () {
|
||||
function MaskConfig(maskBefore, channel) {
|
||||
if (maskBefore === void 0) { maskBefore = false; }
|
||||
if (channel === void 0) { channel = MASK_CHANNEL.ALPHA; }
|
||||
this.maskBefore = maskBefore;
|
||||
this.uniformCode = 'uniform vec4 uChannel;';
|
||||
this.uniforms = {
|
||||
uChannel: new Float32Array([0, 0, 0, 0]),
|
||||
};
|
||||
this.blendCode = "b_res = dot(b_src, uChannel) * b_dest;";
|
||||
this.uniforms.uChannel[channel] = 1.0;
|
||||
}
|
||||
return MaskConfig;
|
||||
}());
|
||||
pixi_picture.MaskConfig = MaskConfig;
|
||||
var MaskFilter = (function (_super) {
|
||||
__extends(MaskFilter, _super);
|
||||
function MaskFilter(baseFilter, config) {
|
||||
if (config === void 0) { config = new MaskConfig(); }
|
||||
var _this = _super.call(this, config) || this;
|
||||
_this.baseFilter = baseFilter;
|
||||
_this.config = config;
|
||||
_this.padding = baseFilter.padding;
|
||||
return _this;
|
||||
}
|
||||
MaskFilter.prototype.apply = function (filterManager, input, output, clearMode) {
|
||||
var target = filterManager.getFilterTexture(input);
|
||||
if (this.config.maskBefore) {
|
||||
var blendMode = this.state.blendMode;
|
||||
this.state.blendMode = PIXI.BLEND_MODES.NONE;
|
||||
filterManager.applyFilter(this, input, target, PIXI.CLEAR_MODES.YES);
|
||||
this.baseFilter.blendMode = blendMode;
|
||||
this.baseFilter.apply(filterManager, target, output, clearMode);
|
||||
this.state.blendMode = blendMode;
|
||||
}
|
||||
else {
|
||||
var uBackdrop = this.uniforms.uBackdrop;
|
||||
this.baseFilter.apply(filterManager, uBackdrop, target, PIXI.CLEAR_MODES.YES);
|
||||
this.uniforms.uBackdrop = target;
|
||||
filterManager.applyFilter(this, input, output, clearMode);
|
||||
this.uniforms.uBackdrop = uBackdrop;
|
||||
}
|
||||
filterManager.returnFilterTexture(target);
|
||||
};
|
||||
return MaskFilter;
|
||||
}(pixi_picture.BlendFilter));
|
||||
pixi_picture.MaskFilter = MaskFilter;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
var blends;
|
||||
(function (blends) {
|
||||
blends.NPM_BLEND = "if (b_src.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n}\nvec3 Cb = b_src.rgb / b_src.a, Cs;\nif (b_dest.a > 0.0) {\n Cs = b_dest.rgb / b_dest.a;\n}\n%NPM_BLEND%\nb_res.a = b_src.a + b_dest.a * (1.0-b_src.a);\nb_res.rgb = (1.0 - b_src.a) * Cs + b_src.a * B;\nb_res.rgb *= b_res.a;\n";
|
||||
blends.OVERLAY_PART = "vec3 multiply = Cb * Cs * 2.0;\nvec3 Cb2 = Cb * 2.0 - 1.0;\nvec3 screen = Cb2 + Cs - Cb2 * Cs;\nvec3 B;\nif (Cs.r <= 0.5) {\n B.r = multiply.r;\n} else {\n B.r = screen.r;\n}\nif (Cs.g <= 0.5) {\n B.g = multiply.g;\n} else {\n B.g = screen.g;\n}\nif (Cs.b <= 0.5) {\n B.b = multiply.b;\n} else {\n B.b = screen.b;\n}\n";
|
||||
blends.HARDLIGHT_PART = "vec3 multiply = Cb * Cs * 2.0;\nvec3 Cs2 = Cs * 2.0 - 1.0;\nvec3 screen = Cb + Cs2 - Cb * Cs2;\nvec3 B;\nif (Cb.r <= 0.5) {\n B.r = multiply.r;\n} else {\n B.r = screen.r;\n}\nif (Cb.g <= 0.5) {\n B.g = multiply.g;\n} else {\n B.g = screen.g;\n}\nif (Cb.b <= 0.5) {\n B.b = multiply.b;\n} else {\n B.b = screen.b;\n}\n";
|
||||
blends.SOFTLIGHT_PART = "vec3 first = Cb - (1.0 - 2.0 * Cs) * Cb * (1.0 - Cb);\nvec3 B;\nvec3 D;\nif (Cs.r <= 0.5)\n{\n B.r = first.r;\n}\nelse\n{\n if (Cb.r <= 0.25)\n {\n D.r = ((16.0 * Cb.r - 12.0) * Cb.r + 4.0) * Cb.r; \n }\n else\n {\n D.r = sqrt(Cb.r);\n }\n B.r = Cb.r + (2.0 * Cs.r - 1.0) * (D.r - Cb.r);\n}\nif (Cs.g <= 0.5)\n{\n B.g = first.g;\n}\nelse\n{\n if (Cb.g <= 0.25)\n {\n D.g = ((16.0 * Cb.g - 12.0) * Cb.g + 4.0) * Cb.g; \n }\n else\n {\n D.g = sqrt(Cb.g);\n }\n B.g = Cb.g + (2.0 * Cs.g - 1.0) * (D.g - Cb.g);\n}\nif (Cs.b <= 0.5)\n{\n B.b = first.b;\n}\nelse\n{\n if (Cb.b <= 0.25)\n {\n D.b = ((16.0 * Cb.b - 12.0) * Cb.b + 4.0) * Cb.b; \n }\n else\n {\n D.b = sqrt(Cb.b);\n }\n B.b = Cb.b + (2.0 * Cs.b - 1.0) * (D.b - Cb.b);\n}\n";
|
||||
blends.MULTIPLY_FULL = "if (b_dest.a > 0.0) {\n vec4 mult;\nmult.a = min(b_src.a + b_dest.a - b_src.a * b_dest.a, 1.0);\n mult.rgb = (b_dest.rgb / b_dest.a) * ((1.0 - b_src.a) + b_src.rgb);\n b_res.rgb = (b_dest.rgb / b_dest.a) * ((1.0 - b_src.a) + b_src.rgb);\n b_res.a = min(b_src.a + b_dest.a - b_src.a * b_dest.a, 1.0);\n b_res.rgb *= mult.a;\n}\n";
|
||||
blends.OVERLAY_FULL = blends.NPM_BLEND.replace("%NPM_BLEND%", blends.OVERLAY_PART);
|
||||
blends.HARDLIGHT_FULL = blends.NPM_BLEND.replace("%NPM_BLEND%", blends.HARDLIGHT_PART);
|
||||
blends.SOFTLIGHT_FULL = blends.NPM_BLEND.replace("%NPM_BLEND%", blends.SOFTLIGHT_PART);
|
||||
blends.blendFullArray = [];
|
||||
blends.blendFullArray[PIXI.BLEND_MODES.MULTIPLY] = blends.MULTIPLY_FULL;
|
||||
blends.blendFullArray[PIXI.BLEND_MODES.OVERLAY] = blends.OVERLAY_FULL;
|
||||
blends.blendFullArray[PIXI.BLEND_MODES.HARD_LIGHT] = blends.HARDLIGHT_FULL;
|
||||
blends.blendFullArray[PIXI.BLEND_MODES.SOFT_LIGHT] = blends.SOFTLIGHT_FULL;
|
||||
})(blends = pixi_picture.blends || (pixi_picture.blends = {}));
|
||||
var filterCache = [];
|
||||
var filterCacheArray = [];
|
||||
function getBlendFilter(blendMode) {
|
||||
if (!blends.blendFullArray[blendMode]) {
|
||||
return null;
|
||||
}
|
||||
if (!filterCache[blendMode]) {
|
||||
filterCache[blendMode] = new pixi_picture.BlendFilter({ blendCode: blends.blendFullArray[blendMode] });
|
||||
}
|
||||
return filterCache[blendMode];
|
||||
}
|
||||
pixi_picture.getBlendFilter = getBlendFilter;
|
||||
function getBlendFilterArray(blendMode) {
|
||||
if (!blends.blendFullArray[blendMode]) {
|
||||
return null;
|
||||
}
|
||||
if (!filterCacheArray[blendMode]) {
|
||||
filterCacheArray[blendMode] = [this.getBlendFilter(blendMode)];
|
||||
}
|
||||
return filterCacheArray[blendMode];
|
||||
}
|
||||
pixi_picture.getBlendFilterArray = getBlendFilterArray;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
var Sprite = (function (_super) {
|
||||
__extends(Sprite, _super);
|
||||
function Sprite() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
Sprite.prototype._render = function (renderer) {
|
||||
var texture = this._texture;
|
||||
if (!texture || !texture.valid) {
|
||||
return;
|
||||
}
|
||||
var blendFilterArray = pixi_picture.getBlendFilterArray(this.blendMode);
|
||||
if (blendFilterArray) {
|
||||
renderer.batch.flush();
|
||||
if (!renderer.filter.pushWithCheck(this, blendFilterArray)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.calculateVertices();
|
||||
renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]);
|
||||
renderer.plugins[this.pluginName].render(this);
|
||||
if (blendFilterArray) {
|
||||
renderer.batch.flush();
|
||||
renderer.filter.pop();
|
||||
}
|
||||
};
|
||||
return Sprite;
|
||||
}(PIXI.Sprite));
|
||||
pixi_picture.Sprite = Sprite;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
var TilingSprite = (function (_super) {
|
||||
__extends(TilingSprite, _super);
|
||||
function TilingSprite() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
TilingSprite.prototype._render = function (renderer) {
|
||||
var texture = this._texture;
|
||||
if (!texture || !texture.valid) {
|
||||
return;
|
||||
}
|
||||
var blendFilterArray = pixi_picture.getBlendFilterArray(this.blendMode);
|
||||
if (blendFilterArray) {
|
||||
renderer.batch.flush();
|
||||
if (!renderer.filter.pushWithCheck(this, blendFilterArray)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.tileTransform.updateLocalTransform();
|
||||
this.uvMatrix.update();
|
||||
renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]);
|
||||
renderer.plugins[this.pluginName].render(this);
|
||||
if (blendFilterArray) {
|
||||
renderer.batch.flush();
|
||||
renderer.filter.pop();
|
||||
}
|
||||
};
|
||||
return TilingSprite;
|
||||
}(PIXI.TilingSprite));
|
||||
pixi_picture.TilingSprite = TilingSprite;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
var pixi_picture;
|
||||
(function (pixi_picture) {
|
||||
PIXI.picture = pixi_picture;
|
||||
})(pixi_picture || (pixi_picture = {}));
|
||||
//# sourceMappingURL=pixi-picture.js.map
|
973
www/js/libs/pixi-tilemap.js
Normal file
973
www/js/libs/pixi-tilemap.js
Normal file
|
@ -0,0 +1,973 @@
|
|||
/* eslint-disable */
|
||||
|
||||
/*!
|
||||
* pixi-tilemap - v2.1.3
|
||||
* Compiled Sun, 18 Oct 2020 17:08:58 UTC
|
||||
*
|
||||
* pixi-tilemap is licensed under the MIT License.
|
||||
* http://www.opensource.org/licenses/mit-license
|
||||
*
|
||||
* Copyright 2019-2020, Ivan Popelyshev, All Rights Reserved
|
||||
*/
|
||||
this.PIXI = this.PIXI || {};
|
||||
this.PIXI.tilemap = this.PIXI.tilemap || {};
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@pixi/display'), require('@pixi/core'), require('@pixi/constants'), require('@pixi/math'), require('@pixi/graphics'), require('@pixi/sprite')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', '@pixi/display', '@pixi/core', '@pixi/constants', '@pixi/math', '@pixi/graphics', '@pixi/sprite'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.pixi_tilemap = {}, global.PIXI, global.PIXI, global.PIXI, global.PIXI, global.PIXI, global.PIXI));
|
||||
}(this, (function (exports, display, core, constants, math, graphics, sprite) {
|
||||
'use strict';
|
||||
|
||||
class CanvasTileRenderer {
|
||||
constructor(renderer) {
|
||||
this.tileAnim = [0, 0];
|
||||
this.dontUseTransform = false;
|
||||
this.renderer = renderer;
|
||||
this.tileAnim = [0, 0];
|
||||
}
|
||||
}
|
||||
const cr = PIXI.CanvasRenderer;
|
||||
if (cr) {
|
||||
cr.registerPlugin('tilemap', CanvasTileRenderer);
|
||||
}
|
||||
|
||||
const Constant = {
|
||||
maxTextures: 16,
|
||||
bufferSize: 2048,
|
||||
boundSize: 1024,
|
||||
boundCountPerBuffer: 1,
|
||||
use32bitIndex: false,
|
||||
SCALE_MODE: constants.SCALE_MODES.LINEAR,
|
||||
DO_CLEAR: true
|
||||
};
|
||||
|
||||
const POINT_STRUCT_SIZE = 12;
|
||||
class RectTileLayer extends display.Container {
|
||||
constructor(zIndex, texture) {
|
||||
super();
|
||||
this.zIndex = 0;
|
||||
this.modificationMarker = 0;
|
||||
this._$_localBounds = new display.Bounds();
|
||||
this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
this._globalMat = null;
|
||||
this.pointsBuf = [];
|
||||
this.hasAnim = false;
|
||||
this.offsetX = 0;
|
||||
this.offsetY = 0;
|
||||
this.compositeParent = false;
|
||||
this.tileAnim = null;
|
||||
this.vbId = 0;
|
||||
this.vb = null;
|
||||
this.vbBuffer = null;
|
||||
this.vbArray = null;
|
||||
this.vbInts = null;
|
||||
this.initialize(zIndex, texture);
|
||||
}
|
||||
initialize(zIndex, textures) {
|
||||
if (!textures) {
|
||||
textures = [];
|
||||
}
|
||||
else if (!(textures instanceof Array) && textures.baseTexture) {
|
||||
textures = [textures];
|
||||
}
|
||||
this.textures = textures;
|
||||
this.zIndex = zIndex;
|
||||
}
|
||||
clear() {
|
||||
this.pointsBuf.length = 0;
|
||||
this.modificationMarker = 0;
|
||||
this._$_localBounds.clear();
|
||||
this.hasAnim = false;
|
||||
}
|
||||
addFrame(texture_, x, y, animX, animY) {
|
||||
let texture;
|
||||
let textureIndex = 0;
|
||||
if (typeof texture_ === "number") {
|
||||
textureIndex = texture_;
|
||||
texture = this.textures[textureIndex];
|
||||
}
|
||||
else {
|
||||
if (typeof texture_ === "string") {
|
||||
texture = core.Texture.from(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
}
|
||||
let found = false;
|
||||
let textureList = this.textures;
|
||||
for (let i = 0; i < textureList.length; i++) {
|
||||
if (textureList[i].baseTexture === texture.baseTexture) {
|
||||
textureIndex = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
this.addRect(textureIndex, texture.frame.x, texture.frame.y, x, y, texture.orig.width, texture.orig.height, animX, animY, texture.rotate);
|
||||
return true;
|
||||
}
|
||||
addRect(textureIndex, u, v, x, y, tileWidth, tileHeight, animX = 0, animY = 0, rotate = 0, animCountX = 1024, animCountY = 1024) {
|
||||
let pb = this.pointsBuf;
|
||||
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(rotate);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureIndex);
|
||||
pb.push(animCountX);
|
||||
pb.push(animCountY);
|
||||
this._$_localBounds.addFramePad(x, y, x + tileWidth, y + tileHeight, 0, 0);
|
||||
return this;
|
||||
}
|
||||
tileRotate(rotate) {
|
||||
const pb = this.pointsBuf;
|
||||
pb[pb.length - 3] = rotate;
|
||||
}
|
||||
tileAnimX(offset, count) {
|
||||
const pb = this.pointsBuf;
|
||||
pb[pb.length - 5] = offset;
|
||||
pb[pb.length - 2] = count;
|
||||
}
|
||||
tileAnimY(offset, count) {
|
||||
const pb = this.pointsBuf;
|
||||
pb[pb.length - 4] = offset;
|
||||
pb[pb.length - 1] = count;
|
||||
}
|
||||
renderCanvas(renderer) {
|
||||
let plugin = renderer.plugins.tilemap;
|
||||
if (!plugin.dontUseTransform) {
|
||||
let wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
this.renderCanvasCore(renderer);
|
||||
}
|
||||
renderCanvasCore(renderer) {
|
||||
if (this.textures.length === 0)
|
||||
return;
|
||||
let points = this.pointsBuf;
|
||||
const tileAnim = this.tileAnim || renderer.plugins.tilemap.tileAnim;
|
||||
renderer.context.fillStyle = '#000000';
|
||||
for (let i = 0, n = points.length; i < n; i += POINT_STRUCT_SIZE) {
|
||||
let x1 = points[i], y1 = points[i + 1];
|
||||
let x2 = points[i + 2], y2 = points[i + 3];
|
||||
let w = points[i + 4];
|
||||
let h = points[i + 5];
|
||||
var rotate = points[i + 6];
|
||||
x1 += points[i + 7] * tileAnim[0];
|
||||
y1 += points[i + 8] * tileAnim[1];
|
||||
let textureIndex = points[i + 9];
|
||||
if (textureIndex >= 0) {
|
||||
renderer.context.drawImage(this.textures[textureIndex].baseTexture.getDrawableSource(), x1, y1, w, h, x2, y2, w, h);
|
||||
}
|
||||
else {
|
||||
renderer.context.globalAlpha = 0.5;
|
||||
renderer.context.fillRect(x2, y2, w, h);
|
||||
renderer.context.globalAlpha = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
destroyVb() {
|
||||
if (this.vb) {
|
||||
this.vb.destroy();
|
||||
this.vb = null;
|
||||
}
|
||||
}
|
||||
render(renderer) {
|
||||
let plugin = renderer.plugins['tilemap'];
|
||||
let shader = plugin.getShader();
|
||||
renderer.batch.setObjectRenderer(plugin);
|
||||
this._globalMat = shader.uniforms.projTransMatrix;
|
||||
renderer.globalUniforms.uniforms.projectionMatrix.copyTo(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
shader.uniforms.animationFrame = this.tileAnim || plugin.tileAnim;
|
||||
this.renderWebGLCore(renderer, plugin);
|
||||
}
|
||||
renderWebGLCore(renderer, plugin) {
|
||||
let points = this.pointsBuf;
|
||||
if (points.length === 0)
|
||||
return;
|
||||
let rectsCount = points.length / POINT_STRUCT_SIZE;
|
||||
let shader = plugin.getShader();
|
||||
let textures = this.textures;
|
||||
if (textures.length === 0)
|
||||
return;
|
||||
plugin.bindTextures(renderer, shader, textures);
|
||||
renderer.shader.bind(shader, false);
|
||||
let vb = this.vb;
|
||||
if (!vb) {
|
||||
vb = plugin.createVb();
|
||||
this.vb = vb;
|
||||
this.vbId = vb.id;
|
||||
this.vbBuffer = null;
|
||||
this.modificationMarker = 0;
|
||||
}
|
||||
plugin.checkIndexBuffer(rectsCount, vb);
|
||||
const boundCountPerBuffer = Constant.boundCountPerBuffer;
|
||||
let vertexBuf = vb.getBuffer('aVertexPosition');
|
||||
let vertices = rectsCount * vb.vertPerQuad;
|
||||
if (vertices === 0)
|
||||
return;
|
||||
if (this.modificationMarker !== vertices) {
|
||||
this.modificationMarker = vertices;
|
||||
let vs = vb.stride * vertices;
|
||||
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
|
||||
let bk = vb.stride;
|
||||
while (bk < vs) {
|
||||
bk *= 2;
|
||||
}
|
||||
this.vbBuffer = new ArrayBuffer(bk);
|
||||
this.vbArray = new Float32Array(this.vbBuffer);
|
||||
this.vbInts = new Uint32Array(this.vbBuffer);
|
||||
vertexBuf.update(this.vbBuffer);
|
||||
}
|
||||
let arr = this.vbArray, ints = this.vbInts;
|
||||
let sz = 0;
|
||||
let textureId = 0;
|
||||
let shiftU = this.offsetX;
|
||||
let shiftV = this.offsetY;
|
||||
let tint = -1;
|
||||
for (let i = 0; i < points.length; i += POINT_STRUCT_SIZE) {
|
||||
let eps = 0.5;
|
||||
if (this.compositeParent) {
|
||||
if (boundCountPerBuffer > 1) {
|
||||
textureId = (points[i + 9] >> 2);
|
||||
shiftU = this.offsetX * (points[i + 9] & 1);
|
||||
shiftV = this.offsetY * ((points[i + 9] >> 1) & 1);
|
||||
}
|
||||
else {
|
||||
textureId = points[i + 9];
|
||||
shiftU = 0;
|
||||
shiftV = 0;
|
||||
}
|
||||
}
|
||||
let x = points[i + 2], y = points[i + 3];
|
||||
let w = points[i + 4], h = points[i + 5];
|
||||
let u = points[i] + shiftU, v = points[i + 1] + shiftV;
|
||||
let rotate = points[i + 6];
|
||||
const animX = points[i + 7], animY = points[i + 8];
|
||||
const animWidth = points[i + 10] || 1024, animHeight = points[i + 11] || 1024;
|
||||
const animXEncoded = animX + (animWidth * 2048);
|
||||
const animYEncoded = animY + (animHeight * 2048);
|
||||
let u0, v0, u1, v1, u2, v2, u3, v3;
|
||||
if (rotate === 0) {
|
||||
u0 = u;
|
||||
v0 = v;
|
||||
u1 = u + w;
|
||||
v1 = v;
|
||||
u2 = u + w;
|
||||
v2 = v + h;
|
||||
u3 = u;
|
||||
v3 = v + h;
|
||||
}
|
||||
else {
|
||||
let w2 = w / 2;
|
||||
let h2 = h / 2;
|
||||
if (rotate % 4 !== 0) {
|
||||
w2 = h / 2;
|
||||
h2 = w / 2;
|
||||
}
|
||||
const cX = u + w2;
|
||||
const cY = v + h2;
|
||||
rotate = math.groupD8.add(rotate, math.groupD8.NW);
|
||||
u0 = cX + (w2 * math.groupD8.uX(rotate));
|
||||
v0 = cY + (h2 * math.groupD8.uY(rotate));
|
||||
rotate = math.groupD8.add(rotate, 2);
|
||||
u1 = cX + (w2 * math.groupD8.uX(rotate));
|
||||
v1 = cY + (h2 * math.groupD8.uY(rotate));
|
||||
rotate = math.groupD8.add(rotate, 2);
|
||||
u2 = cX + (w2 * math.groupD8.uX(rotate));
|
||||
v2 = cY + (h2 * math.groupD8.uY(rotate));
|
||||
rotate = math.groupD8.add(rotate, 2);
|
||||
u3 = cX + (w2 * math.groupD8.uX(rotate));
|
||||
v3 = cY + (h2 * math.groupD8.uY(rotate));
|
||||
}
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u0;
|
||||
arr[sz++] = v0;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animXEncoded;
|
||||
arr[sz++] = animYEncoded;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u1;
|
||||
arr[sz++] = v1;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animXEncoded;
|
||||
arr[sz++] = animYEncoded;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u2;
|
||||
arr[sz++] = v2;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animXEncoded;
|
||||
arr[sz++] = animYEncoded;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u3;
|
||||
arr[sz++] = v3;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animXEncoded;
|
||||
arr[sz++] = animYEncoded;
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
vertexBuf.update(arr);
|
||||
}
|
||||
renderer.geometry.bind(vb, shader);
|
||||
renderer.geometry.draw(constants.DRAW_MODES.TRIANGLES, rectsCount * 6, 0);
|
||||
}
|
||||
isModified(anim) {
|
||||
if (this.modificationMarker !== this.pointsBuf.length ||
|
||||
anim && this.hasAnim) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
clearModify() {
|
||||
this.modificationMarker = this.pointsBuf.length;
|
||||
}
|
||||
_calculateBounds() {
|
||||
const { minX, minY, maxX, maxY } = this._$_localBounds;
|
||||
this._bounds.addFrame(this.transform, minX, minY, maxX, maxY);
|
||||
}
|
||||
getLocalBounds(rect) {
|
||||
if (this.children.length === 0) {
|
||||
return this._$_localBounds.getRectangle(rect);
|
||||
}
|
||||
return super.getLocalBounds.call(this, rect);
|
||||
}
|
||||
destroy(options) {
|
||||
super.destroy(options);
|
||||
this.destroyVb();
|
||||
}
|
||||
}
|
||||
|
||||
class CompositeRectTileLayer extends display.Container {
|
||||
constructor(zIndex, bitmaps, texPerChild) {
|
||||
super();
|
||||
this.modificationMarker = 0;
|
||||
this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
this._globalMat = null;
|
||||
this._lastLayer = null;
|
||||
this.tileAnim = null;
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
initialize(zIndex, bitmaps, texPerChild) {
|
||||
if (texPerChild === true) {
|
||||
texPerChild = 0;
|
||||
}
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.texPerChild = texPerChild || Constant.boundCountPerBuffer * Constant.maxTextures;
|
||||
if (bitmaps) {
|
||||
this.setBitmaps(bitmaps);
|
||||
}
|
||||
}
|
||||
setBitmaps(bitmaps) {
|
||||
for (let i = 0; i < bitmaps.length; i++) {
|
||||
if (bitmaps[i] && !bitmaps[i].baseTexture) {
|
||||
throw new Error(`pixi-tilemap cannot use destroyed textures. ` +
|
||||
`Probably, you passed resources['myAtlas'].texture in pixi > 5.2.1, it does not exist there.`);
|
||||
}
|
||||
}
|
||||
let texPerChild = this.texPerChild;
|
||||
let len1 = this.children.length;
|
||||
let len2 = Math.ceil(bitmaps.length / texPerChild);
|
||||
let i;
|
||||
for (i = 0; i < len1; i++) {
|
||||
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
|
||||
}
|
||||
for (i = len1; i < len2; i++) {
|
||||
let layer = new RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild));
|
||||
layer.compositeParent = true;
|
||||
layer.offsetX = Constant.boundSize;
|
||||
layer.offsetY = Constant.boundSize;
|
||||
this.addChild(layer);
|
||||
}
|
||||
}
|
||||
clear() {
|
||||
for (let i = 0; i < this.children.length; i++) {
|
||||
this.children[i].clear();
|
||||
}
|
||||
this.modificationMarker = 0;
|
||||
}
|
||||
addRect(textureIndex, u, v, x, y, tileWidth, tileHeight, animX, animY, rotate, animWidth, animHeight) {
|
||||
const childIndex = textureIndex / this.texPerChild >> 0;
|
||||
const textureId = textureIndex % this.texPerChild;
|
||||
if (this.children[childIndex] && this.children[childIndex].textures) {
|
||||
this._lastLayer = this.children[childIndex];
|
||||
this._lastLayer.addRect(textureId, u, v, x, y, tileWidth, tileHeight, animX, animY, rotate, animWidth, animHeight);
|
||||
}
|
||||
else {
|
||||
this._lastLayer = null;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
tileRotate(rotate) {
|
||||
if (this._lastLayer) {
|
||||
this._lastLayer.tileRotate(rotate);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
tileAnimX(offset, count) {
|
||||
if (this._lastLayer) {
|
||||
this._lastLayer.tileAnimX(offset, count);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
tileAnimY(offset, count) {
|
||||
if (this._lastLayer) {
|
||||
this._lastLayer.tileAnimY(offset, count);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
addFrame(texture_, x, y, animX, animY, animWidth, animHeight) {
|
||||
let texture;
|
||||
let layer = null;
|
||||
let ind = 0;
|
||||
let children = this.children;
|
||||
this._lastLayer = null;
|
||||
if (typeof texture_ === "number") {
|
||||
let childIndex = texture_ / this.texPerChild >> 0;
|
||||
layer = children[childIndex];
|
||||
if (!layer) {
|
||||
layer = children[0];
|
||||
if (!layer) {
|
||||
return this;
|
||||
}
|
||||
ind = 0;
|
||||
}
|
||||
else {
|
||||
ind = texture_ % this.texPerChild;
|
||||
}
|
||||
texture = layer.textures[ind];
|
||||
}
|
||||
else {
|
||||
if (typeof texture_ === "string") {
|
||||
texture = core.Texture.from(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
}
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
let child = children[i];
|
||||
let tex = child.textures;
|
||||
for (let j = 0; j < tex.length; j++) {
|
||||
if (tex[j].baseTexture === texture.baseTexture) {
|
||||
layer = child;
|
||||
ind = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (layer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
let child = children[i];
|
||||
if (child.textures.length < this.texPerChild) {
|
||||
layer = child;
|
||||
ind = child.textures.length;
|
||||
child.textures.push(texture);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
layer = new RectTileLayer(this.zIndex, texture);
|
||||
layer.compositeParent = true;
|
||||
layer.offsetX = Constant.boundSize;
|
||||
layer.offsetY = Constant.boundSize;
|
||||
this.addChild(layer);
|
||||
ind = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._lastLayer = layer;
|
||||
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.orig.width, texture.orig.height, animX, animY, texture.rotate, animWidth, animHeight);
|
||||
return this;
|
||||
}
|
||||
renderCanvas(renderer) {
|
||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
let plugin = renderer.plugins.tilemap;
|
||||
if (!plugin.dontUseTransform) {
|
||||
let wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
let layers = this.children;
|
||||
for (let i = 0; i < layers.length; i++) {
|
||||
const layer = layers[i];
|
||||
layer.tileAnim = this.tileAnim;
|
||||
layer.renderCanvasCore(renderer);
|
||||
}
|
||||
}
|
||||
render(renderer) {
|
||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
||||
return;
|
||||
}
|
||||
let plugin = renderer.plugins['tilemap'];
|
||||
let shader = plugin.getShader();
|
||||
renderer.batch.setObjectRenderer(plugin);
|
||||
this._globalMat = shader.uniforms.projTransMatrix;
|
||||
renderer.globalUniforms.uniforms.projectionMatrix.copyTo(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
shader.uniforms.animationFrame = this.tileAnim || plugin.tileAnim;
|
||||
renderer.shader.bind(shader, false);
|
||||
let layers = this.children;
|
||||
for (let i = 0; i < layers.length; i++) {
|
||||
const layer = layers[i];
|
||||
layer.renderWebGLCore(renderer, plugin);
|
||||
}
|
||||
}
|
||||
isModified(anim) {
|
||||
let layers = this.children;
|
||||
if (this.modificationMarker !== layers.length) {
|
||||
return true;
|
||||
}
|
||||
for (let i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(anim)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
clearModify() {
|
||||
let layers = this.children;
|
||||
this.modificationMarker = layers.length;
|
||||
for (let i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class GraphicsLayer extends graphics.Graphics {
|
||||
constructor(zIndex) {
|
||||
super();
|
||||
this.zIndex = zIndex;
|
||||
}
|
||||
renderCanvas(renderer) {
|
||||
let wt = null;
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
wt = this.transform.worldTransform;
|
||||
this.transform.worldTransform = math.Matrix.IDENTITY;
|
||||
}
|
||||
renderer.plugins.graphics.render(this);
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
this.transform.worldTransform = wt;
|
||||
}
|
||||
renderer.context.globalAlpha = 1.0;
|
||||
}
|
||||
isModified(anim) {
|
||||
return false;
|
||||
}
|
||||
clearModify() {
|
||||
}
|
||||
}
|
||||
|
||||
class MultiTextureResource extends core.resources.Resource {
|
||||
constructor(options) {
|
||||
super(options.bufferSize, options.bufferSize);
|
||||
this.DO_CLEAR = false;
|
||||
this.boundSize = 0;
|
||||
this._clearBuffer = null;
|
||||
this.baseTex = null;
|
||||
this.boundSprites = [];
|
||||
this.dirties = [];
|
||||
const bounds = this.boundSprites;
|
||||
const dirties = this.dirties;
|
||||
this.boundSize = options.boundSize;
|
||||
for (let j = 0; j < options.boundCountPerBuffer; j++) {
|
||||
const spr = new sprite.Sprite();
|
||||
spr.position.x = options.boundSize * (j & 1);
|
||||
spr.position.y = options.boundSize * (j >> 1);
|
||||
bounds.push(spr);
|
||||
dirties.push(0);
|
||||
}
|
||||
this.DO_CLEAR = !!options.DO_CLEAR;
|
||||
}
|
||||
bind(baseTexture) {
|
||||
if (this.baseTex) {
|
||||
throw new Error('Only one baseTexture is allowed for this resource!');
|
||||
}
|
||||
this.baseTex = baseTexture;
|
||||
super.bind(baseTexture);
|
||||
}
|
||||
setTexture(ind, texture) {
|
||||
const spr = this.boundSprites[ind];
|
||||
if (spr.texture.baseTexture === texture.baseTexture) {
|
||||
return;
|
||||
}
|
||||
spr.texture = texture;
|
||||
this.baseTex.update();
|
||||
this.dirties[ind] = this.baseTex.dirtyId;
|
||||
}
|
||||
upload(renderer, texture, glTexture) {
|
||||
const { gl } = renderer;
|
||||
const { width, height } = this;
|
||||
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.alphaMode === undefined ||
|
||||
texture.alphaMode === constants.ALPHA_MODES.UNPACK);
|
||||
if (glTexture.dirtyId < 0) {
|
||||
glTexture.width = width;
|
||||
glTexture.height = height;
|
||||
gl.texImage2D(texture.target, 0, texture.format, width, height, 0, texture.format, texture.type, null);
|
||||
}
|
||||
const doClear = this.DO_CLEAR;
|
||||
if (doClear && !this._clearBuffer) {
|
||||
this._clearBuffer = new Uint8Array(Constant.boundSize * Constant.boundSize * 4);
|
||||
}
|
||||
const bounds = this.boundSprites;
|
||||
for (let i = 0; i < bounds.length; i++) {
|
||||
const spr = bounds[i];
|
||||
const tex = spr.texture.baseTexture;
|
||||
if (glTexture.dirtyId >= this.dirties[i]) {
|
||||
continue;
|
||||
}
|
||||
const res = tex.resource;
|
||||
if (!tex.valid || !res || !res.source) {
|
||||
continue;
|
||||
}
|
||||
if (doClear && (tex.width < this.boundSize || tex.height < this.boundSize)) {
|
||||
gl.texSubImage2D(texture.target, 0, spr.position.x, spr.position.y, this.boundSize, this.boundSize, texture.format, texture.type, this._clearBuffer);
|
||||
}
|
||||
gl.texSubImage2D(texture.target, 0, spr.position.x, spr.position.y, texture.format, texture.type, res.source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function fillSamplers(shader, maxTextures) {
|
||||
let sampleValues = [];
|
||||
for (let i = 0; i < maxTextures; i++) {
|
||||
sampleValues[i] = i;
|
||||
}
|
||||
shader.uniforms.uSamplers = sampleValues;
|
||||
let samplerSize = [];
|
||||
for (let i = 0; i < maxTextures; i++) {
|
||||
samplerSize.push(1.0 / Constant.bufferSize);
|
||||
samplerSize.push(1.0 / Constant.bufferSize);
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
}
|
||||
function generateFragmentSrc(maxTextures, fragmentSrc) {
|
||||
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
|
||||
.replace(/%forloop%/gi, generateSampleSrc(maxTextures));
|
||||
}
|
||||
function generateSampleSrc(maxTextures) {
|
||||
let src = '';
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
src += 'if(vTextureId <= -1.0) {';
|
||||
src += '\n\tcolor = shadowColor;';
|
||||
src += '\n}';
|
||||
for (let i = 0; i < maxTextures; i++) {
|
||||
src += '\nelse ';
|
||||
if (i < maxTextures - 1) {
|
||||
src += 'if(textureId == ' + i + '.0)';
|
||||
}
|
||||
src += '\n{';
|
||||
src += '\n\tcolor = texture2D(uSamplers[' + i + '], textureCoord * uSamplerSize[' + i + ']);';
|
||||
src += '\n}';
|
||||
}
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
return src;
|
||||
}
|
||||
|
||||
let rectShaderFrag = `
|
||||
varying vec2 vTextureCoord;
|
||||
varying vec4 vFrame;
|
||||
varying float vTextureId;
|
||||
uniform vec4 shadowColor;
|
||||
uniform sampler2D uSamplers[%count%];
|
||||
uniform vec2 uSamplerSize[%count%];
|
||||
|
||||
void main(void){
|
||||
vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);
|
||||
float textureId = floor(vTextureId + 0.5);
|
||||
|
||||
vec4 color;
|
||||
%forloop%
|
||||
gl_FragColor = color;
|
||||
}
|
||||
`;
|
||||
let rectShaderVert = `
|
||||
attribute vec2 aVertexPosition;
|
||||
attribute vec2 aTextureCoord;
|
||||
attribute vec4 aFrame;
|
||||
attribute vec2 aAnim;
|
||||
attribute float aTextureId;
|
||||
|
||||
uniform mat3 projTransMatrix;
|
||||
uniform vec2 animationFrame;
|
||||
|
||||
varying vec2 vTextureCoord;
|
||||
varying float vTextureId;
|
||||
varying vec4 vFrame;
|
||||
|
||||
void main(void){
|
||||
gl_Position = vec4((projTransMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
|
||||
vec2 animCount = floor((aAnim + 0.5) / 2048.0);
|
||||
vec2 animFrameOffset = aAnim - animCount * 2048.0;
|
||||
vec2 animOffset = animFrameOffset * floor(mod(animationFrame + 0.5, animCount));
|
||||
|
||||
vTextureCoord = aTextureCoord + animOffset;
|
||||
vFrame = aFrame + vec4(animOffset, animOffset);
|
||||
vTextureId = aTextureId;
|
||||
}
|
||||
`;
|
||||
class TilemapShader extends core.Shader {
|
||||
constructor(maxTextures, shaderVert, shaderFrag) {
|
||||
super(new core.Program(shaderVert, shaderFrag), {
|
||||
animationFrame: new Float32Array(2),
|
||||
uSamplers: [],
|
||||
uSamplerSize: [],
|
||||
projTransMatrix: new math.Matrix()
|
||||
});
|
||||
this.maxTextures = 0;
|
||||
this.maxTextures = maxTextures;
|
||||
fillSamplers(this, this.maxTextures);
|
||||
}
|
||||
}
|
||||
class RectTileShader extends TilemapShader {
|
||||
constructor(maxTextures) {
|
||||
super(maxTextures, rectShaderVert, generateFragmentSrc(maxTextures, rectShaderFrag));
|
||||
fillSamplers(this, this.maxTextures);
|
||||
}
|
||||
}
|
||||
class RectTileGeom extends core.Geometry {
|
||||
constructor() {
|
||||
super();
|
||||
this.vertSize = 11;
|
||||
this.vertPerQuad = 4;
|
||||
this.stride = this.vertSize * 4;
|
||||
this.lastTimeAccess = 0;
|
||||
const buf = this.buf = new core.Buffer(new Float32Array(2), true, false);
|
||||
this.addAttribute('aVertexPosition', buf, 0, false, 0, this.stride, 0)
|
||||
.addAttribute('aTextureCoord', buf, 0, false, 0, this.stride, 2 * 4)
|
||||
.addAttribute('aFrame', buf, 0, false, 0, this.stride, 4 * 4)
|
||||
.addAttribute('aAnim', buf, 0, false, 0, this.stride, 8 * 4)
|
||||
.addAttribute('aTextureId', buf, 0, false, 0, this.stride, 10 * 4);
|
||||
}
|
||||
}
|
||||
|
||||
class TileRenderer extends core.ObjectRenderer {
|
||||
constructor(renderer) {
|
||||
super(renderer);
|
||||
this.sn = -1;
|
||||
this.indexBuffer = null;
|
||||
this.ibLen = 0;
|
||||
this.tileAnim = [0, 0];
|
||||
this.texLoc = [];
|
||||
this.texResources = [];
|
||||
this.rectShader = new RectTileShader(Constant.maxTextures);
|
||||
this.indexBuffer = new core.Buffer(undefined, true, true);
|
||||
this.checkIndexBuffer(2000);
|
||||
this.initBounds();
|
||||
}
|
||||
initBounds() {
|
||||
if (Constant.boundCountPerBuffer <= 1) {
|
||||
return;
|
||||
}
|
||||
const maxTextures = Constant.maxTextures;
|
||||
for (let i = 0; i < maxTextures; i++) {
|
||||
const resource = new MultiTextureResource(Constant);
|
||||
const baseTex = new core.BaseTexture(resource);
|
||||
baseTex.scaleMode = Constant.SCALE_MODE;
|
||||
baseTex.wrapMode = constants.WRAP_MODES.CLAMP;
|
||||
this.texResources.push(resource);
|
||||
}
|
||||
}
|
||||
bindTexturesWithoutRT(renderer, shader, textures) {
|
||||
let samplerSize = shader.uniforms.uSamplerSize;
|
||||
this.texLoc.length = 0;
|
||||
for (let i = 0; i < textures.length; i++) {
|
||||
const texture = textures[i];
|
||||
if (!texture || !texture.valid) {
|
||||
return;
|
||||
}
|
||||
renderer.texture.bind(textures[i], i);
|
||||
samplerSize[i * 2] = 1.0 / textures[i].baseTexture.width;
|
||||
samplerSize[i * 2 + 1] = 1.0 / textures[i].baseTexture.height;
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
}
|
||||
bindTextures(renderer, shader, textures) {
|
||||
const len = textures.length;
|
||||
const maxTextures = Constant.maxTextures;
|
||||
if (len > Constant.boundCountPerBuffer * maxTextures) {
|
||||
return;
|
||||
}
|
||||
if (Constant.boundCountPerBuffer <= 1) {
|
||||
this.bindTexturesWithoutRT(renderer, shader, textures);
|
||||
return;
|
||||
}
|
||||
let i = 0;
|
||||
for (; i < len; i++) {
|
||||
const texture = textures[i];
|
||||
if (!texture || !texture.valid)
|
||||
continue;
|
||||
const multi = this.texResources[i >> 2];
|
||||
multi.setTexture(i & 3, texture);
|
||||
}
|
||||
let gltsUsed = (i + 3) >> 2;
|
||||
for (i = 0; i < gltsUsed; i++) {
|
||||
renderer.texture.bind(this.texResources[i].baseTex, i);
|
||||
}
|
||||
}
|
||||
start() {
|
||||
}
|
||||
createVb() {
|
||||
const geom = new RectTileGeom();
|
||||
geom.addIndex(this.indexBuffer);
|
||||
geom.lastTimeAccess = Date.now();
|
||||
return geom;
|
||||
}
|
||||
checkIndexBuffer(size, vb = null) {
|
||||
const totalIndices = size * 6;
|
||||
if (totalIndices <= this.ibLen) {
|
||||
return;
|
||||
}
|
||||
let len = totalIndices;
|
||||
while (len < totalIndices) {
|
||||
len <<= 1;
|
||||
}
|
||||
this.ibLen = totalIndices;
|
||||
this.indexBuffer.update(PIXI.utils.createIndicesForQuads(size, Constant.use32bitIndex ? new Uint32Array(size * 6) : undefined));
|
||||
}
|
||||
getShader() {
|
||||
return this.rectShader;
|
||||
}
|
||||
destroy() {
|
||||
super.destroy();
|
||||
this.rectShader = null;
|
||||
}
|
||||
}
|
||||
core.Renderer.registerPlugin('tilemap', TileRenderer);
|
||||
|
||||
class ZLayer extends display.Container {
|
||||
constructor(tilemap, zIndex) {
|
||||
super();
|
||||
this._lastAnimationFrame = -1;
|
||||
this.tilemap = tilemap;
|
||||
this.z = zIndex;
|
||||
}
|
||||
clear() {
|
||||
let layers = this.children;
|
||||
for (let i = 0; i < layers.length; i++)
|
||||
layers[i].clear();
|
||||
this._previousLayers = 0;
|
||||
}
|
||||
cacheIfDirty() {
|
||||
let tilemap = this.tilemap;
|
||||
let layers = this.children;
|
||||
let modified = this._previousLayers !== layers.length;
|
||||
this._previousLayers = layers.length;
|
||||
let buf = this.canvasBuffer;
|
||||
let tempRender = this._tempRender;
|
||||
if (!buf) {
|
||||
buf = this.canvasBuffer = document.createElement('canvas');
|
||||
tempRender = this._tempRender = new PIXI.CanvasRenderer({ width: 100, height: 100, view: buf });
|
||||
tempRender.context = tempRender.rootContext;
|
||||
tempRender.plugins.tilemap.dontUseTransform = true;
|
||||
}
|
||||
if (buf.width !== tilemap._layerWidth ||
|
||||
buf.height !== tilemap._layerHeight) {
|
||||
buf.width = tilemap._layerWidth;
|
||||
buf.height = tilemap._layerHeight;
|
||||
modified = true;
|
||||
}
|
||||
let i;
|
||||
if (!modified) {
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(this._lastAnimationFrame !== tilemap.animationFrame)) {
|
||||
modified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._lastAnimationFrame = tilemap.animationFrame;
|
||||
if (modified) {
|
||||
if (tilemap._hackRenderer) {
|
||||
tilemap._hackRenderer(tempRender);
|
||||
}
|
||||
tempRender.context.clearRect(0, 0, buf.width, buf.height);
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
layers[i].renderCanvas(tempRender);
|
||||
}
|
||||
}
|
||||
this.layerTransform = this.worldTransform;
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
this.layerTransform = layers[i].worldTransform;
|
||||
break;
|
||||
}
|
||||
}
|
||||
renderCanvas(renderer) {
|
||||
this.cacheIfDirty();
|
||||
let wt = this.layerTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
let tilemap = this.tilemap;
|
||||
renderer.context.drawImage(this.canvasBuffer, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
const pixi_tilemap = {
|
||||
CanvasTileRenderer,
|
||||
CompositeRectTileLayer,
|
||||
Constant,
|
||||
GraphicsLayer,
|
||||
MultiTextureResource,
|
||||
RectTileLayer,
|
||||
TilemapShader,
|
||||
RectTileShader,
|
||||
RectTileGeom,
|
||||
TileRenderer,
|
||||
ZLayer,
|
||||
};
|
||||
|
||||
exports.CanvasTileRenderer = CanvasTileRenderer;
|
||||
exports.CompositeRectTileLayer = CompositeRectTileLayer;
|
||||
exports.Constant = Constant;
|
||||
exports.GraphicsLayer = GraphicsLayer;
|
||||
exports.MultiTextureResource = MultiTextureResource;
|
||||
exports.POINT_STRUCT_SIZE = POINT_STRUCT_SIZE;
|
||||
exports.RectTileGeom = RectTileGeom;
|
||||
exports.RectTileLayer = RectTileLayer;
|
||||
exports.RectTileShader = RectTileShader;
|
||||
exports.TileRenderer = TileRenderer;
|
||||
exports.TilemapShader = TilemapShader;
|
||||
exports.ZLayer = ZLayer;
|
||||
exports.fillSamplers = fillSamplers;
|
||||
exports.generateFragmentSrc = generateFragmentSrc;
|
||||
exports.generateSampleSrc = generateSampleSrc;
|
||||
exports.pixi_tilemap = pixi_tilemap;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
if (typeof pixi_tilemap !== 'undefined') { Object.assign(this.PIXI.tilemap, pixi_tilemap); }
|
||||
//# sourceMappingURL=pixi-tilemap.umd.js.map
|
41981
www/js/libs/pixi.js
Normal file
41981
www/js/libs/pixi.js
Normal file
File diff suppressed because it is too large
Load diff
1
www/js/libs/pixi.js.map
Normal file
1
www/js/libs/pixi.js.map
Normal file
File diff suppressed because one or more lines are too long
9
www/js/libs/pixi.min.js
vendored
Normal file
9
www/js/libs/pixi.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
www/js/libs/pixi.min.js.map
Normal file
1
www/js/libs/pixi.min.js.map
Normal file
File diff suppressed because one or more lines are too long
BIN
www/js/libs/sdkencryptedappticket.dll
Normal file
BIN
www/js/libs/sdkencryptedappticket.dll
Normal file
Binary file not shown.
BIN
www/js/libs/sdkencryptedappticket.lib
Normal file
BIN
www/js/libs/sdkencryptedappticket.lib
Normal file
Binary file not shown.
BIN
www/js/libs/sdkencryptedappticket64.dll
Normal file
BIN
www/js/libs/sdkencryptedappticket64.dll
Normal file
Binary file not shown.
BIN
www/js/libs/sdkencryptedappticket64.lib
Normal file
BIN
www/js/libs/sdkencryptedappticket64.lib
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api.dll
Normal file
BIN
www/js/libs/steam_api.dll
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api.dll.valve
Normal file
BIN
www/js/libs/steam_api.dll.valve
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api.lib
Normal file
BIN
www/js/libs/steam_api.lib
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api64.dll
Normal file
BIN
www/js/libs/steam_api64.dll
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api64.dll.valve
Normal file
BIN
www/js/libs/steam_api64.dll.valve
Normal file
Binary file not shown.
BIN
www/js/libs/steam_api64.lib
Normal file
BIN
www/js/libs/steam_api64.lib
Normal file
Binary file not shown.
6
www/js/libs/trmix.min.js
vendored
Normal file
6
www/js/libs/trmix.min.js
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
/* Type Rendering Mix JS - (c) 2013-2014 Tim Brown, Bram Stein. License: new BSD */(function(){'use strict';var b=window;function c(a){var f=d,g;a:{g=f.className.split(/\s+/);for(var n=0,H=g.length;n<H;n+=1)if(g[n]===a){g=!0;break a}g=!1}g||(f.className+=(""===f.className?"":" ")+a)};function e(a,f,g){this.b=null!=a?a:null;this.c=null!=f?f:null;this.g=null!=g?g:null}var h=/^([0-9]+)(?:[\._-]([0-9]+))?(?:[\._-]([0-9]+))?(?:[\._+-]?(.*))?$/;e.prototype.compare=function(a){return this.b>a.b||this.b===a.b&&this.c>a.c||this.b===a.b&&this.c===a.c&&this.g>a.g?1:this.b<a.b||this.b===a.b&&this.c<a.c||this.b===a.b&&this.c===a.c&&this.g<a.g?-1:0};function k(a,f){return 0===a.compare(f)||1===a.compare(f)}
|
||||
function l(){var a=h.exec(m[1]),f=null,g=null,n=null;a&&(null!==a[1]&&a[1]&&(f=parseInt(a[1],10)),null!==a[2]&&a[2]&&(g=parseInt(a[2],10)),null!==a[3]&&a[3]&&(n=parseInt(a[3],10)));return new e(f,g,n)};function p(){var a=q;return 3===a.a||7===a.a||6===a.a||9===a.a||8===a.a||5===a.a?"grayscale":1===a.a&&k(a.d,new e(6,2))&&1===a.e?"grayscale":"unknown"};var q,r=b.navigator.userAgent,s=0,t=new e,u=0,v=new e,m=null;if(m=/(?:iPod|iPad|iPhone).*? OS ([\d_]+)/.exec(r))u=3,v=l();else if(m=/(?:BB\d{2}|BlackBerry).*?Version\/([^\s]*)/.exec(r))u=9,v=l();else if(m=/Android ([^;)]+)|Android/.exec(r))u=5,v=l();else if(m=/Windows Phone(?: OS)? ([^;)]+)/.exec(r))u=8,v=l();else if(m=/Linux ([^;)]+)|Linux/.exec(r))u=4,v=l();else if(m=/OS X ([^;)]+)/.exec(r))u=2,v=l();else if(m=/Windows NT ([^;)]+)/.exec(r))u=1,v=l();else if(m=/CrOS ([^;)]+)/.exec(r))u=6,v=l();
|
||||
if(m=/MSIE ([\d\w\.]+)/.exec(r))s=1,t=l();else if(m=/Trident.*rv:([\d\w\.]+)/.exec(r))s=1,t=l();else if(m=/OPR\/([\d.]+)/.exec(r))s=4,t=l();else if(m=/Opera Mini.*Version\/([\d\.]+)/.exec(r))s=4,t=l();else if(m=/Opera(?: |.*Version\/|\/)([\d\.]+)/.exec(r))s=4,t=l();else if(m=/Firefox\/([\d\w\.]+)|Firefox/.exec(r))s=3,t=l();else if(m=/(?:Chrome|CrMo|CriOS)\/([\d\.]+)/.exec(r))s=2,t=l();else if(m=/Silk\/([\d\._]+)/.exec(r))s=7,t=l();else if(5===u||9===u)s=6;else if(m=/Version\/([\d\.\w]+).*Safari/.exec(r))s=
|
||||
5,t=l();q=new function(a,f,g,n){this.e=a;this.f=f;this.a=g;this.d=n}(s,t,u,v);var w,x;
|
||||
if(1===q.a){var y;if(2===q.e)y=k(q.f,new e(37))&&k(q.d,new e(6,1))?"directwrite":"gdi";else{var z;if(4===q.e)z=k(q.f,new e(24))&&k(q.d,new e(6,1))?"directwrite":"gdi";else{var A;if(-1===q.d.compare(new e(6,0)))A="gdi";else{var B;if(k(q.d,new e(6,0))){var C;if(C=1===q.e){var D=q.f,E=new e(8,0);C=0===D.compare(E)||-1===D.compare(E)}B=C?"gdi":"directwrite"}else B="unknown";A=B}z=A}y=z}x=y}else x=8===q.a?"directwrite":2===q.a||3===q.a?"coretext":5===q.a||4===q.a||6===q.a||7===q.a||9===q.a?"freetype":
|
||||
"unknown";w=x;var F=p(),G,I=p();G="unknown"!==I?I:2===q.a||4===q.a?"subpixel":1===q.a?k(q.d,new e(6,0))?"subpixel":1===q.e?k(q.f,new e(7,0))?"subpixel":"grayscale":"subpixel":"unknown";var d=b.document.documentElement;c("tr-"+w);"unknown"===F&&"unknown"!==G&&(F+="-"+G);c("tr-aa-"+F);}());
|
3875
www/js/libs/yaml.js
Normal file
3875
www/js/libs/yaml.js
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue