SC: Fix lang files loading
This commit is contained in:
parent
22c355801b
commit
2913d5d51c
4 changed files with 5 additions and 42552 deletions
File diff suppressed because it is too large
Load diff
|
@ -1,952 +0,0 @@
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var CanvasTileRenderer = (function () {
|
|
||||||
function CanvasTileRenderer(renderer) {
|
|
||||||
this.tileAnim = [0, 0];
|
|
||||||
this.dontUseTransform = false;
|
|
||||||
this.renderer = renderer;
|
|
||||||
this.tileAnim = [0, 0];
|
|
||||||
}
|
|
||||||
return CanvasTileRenderer;
|
|
||||||
}());
|
|
||||||
pixi_tilemap.CanvasTileRenderer = CanvasTileRenderer;
|
|
||||||
PIXI.CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
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 pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var CompositeRectTileLayer = (function (_super) {
|
|
||||||
__extends(CompositeRectTileLayer, _super);
|
|
||||||
function CompositeRectTileLayer(zIndex, bitmaps, texPerChild) {
|
|
||||||
var _this = _super.call(this) || this;
|
|
||||||
_this.modificationMarker = 0;
|
|
||||||
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
|
||||||
_this._globalMat = null;
|
|
||||||
_this.initialize.apply(_this, arguments);
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
CompositeRectTileLayer.prototype.updateTransform = function () {
|
|
||||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.initialize = function (zIndex, bitmaps, texPerChild) {
|
|
||||||
if (texPerChild === true) {
|
|
||||||
texPerChild = 0;
|
|
||||||
}
|
|
||||||
this.z = this.zIndex = zIndex;
|
|
||||||
this.texPerChild = texPerChild || pixi_tilemap.Constant.boundCountPerBuffer * pixi_tilemap.Constant.maxTextures;
|
|
||||||
if (bitmaps) {
|
|
||||||
this.setBitmaps(bitmaps);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.setBitmaps = function (bitmaps) {
|
|
||||||
var texPerChild = this.texPerChild;
|
|
||||||
var len1 = this.children.length;
|
|
||||||
var len2 = Math.ceil(bitmaps.length / texPerChild);
|
|
||||||
var i;
|
|
||||||
for (i = 0; i < len1; i++) {
|
|
||||||
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
|
|
||||||
}
|
|
||||||
for (i = len1; i < len2; i++) {
|
|
||||||
var layer = new pixi_tilemap.RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild));
|
|
||||||
layer.compositeParent = true;
|
|
||||||
layer.offsetX = pixi_tilemap.Constant.boundSize;
|
|
||||||
layer.offsetY = pixi_tilemap.Constant.boundSize;
|
|
||||||
this.addChild(layer);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.clear = function () {
|
|
||||||
for (var i = 0; i < this.children.length; i++) {
|
|
||||||
this.children[i].clear();
|
|
||||||
}
|
|
||||||
this.modificationMarker = 0;
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.addRect = function (textureIndex, u, v, x, y, tileWidth, tileHeight) {
|
|
||||||
var childIndex = textureIndex / this.texPerChild >> 0;
|
|
||||||
var textureId = textureIndex % this.texPerChild;
|
|
||||||
if (this.children[childIndex] && this.children[childIndex].textures) {
|
|
||||||
this.children[childIndex].addRect(textureId, u, v, x, y, tileWidth, tileHeight);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
|
||||||
var texture;
|
|
||||||
var layer = null;
|
|
||||||
var ind = 0;
|
|
||||||
var children = this.children;
|
|
||||||
if (typeof texture_ === "number") {
|
|
||||||
var childIndex = texture_ / this.texPerChild >> 0;
|
|
||||||
layer = children[childIndex];
|
|
||||||
if (!layer) {
|
|
||||||
layer = children[0];
|
|
||||||
if (!layer) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
ind = 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ind = texture_ % this.texPerChild;
|
|
||||||
}
|
|
||||||
texture = layer.textures[ind];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (typeof texture_ === "string") {
|
|
||||||
texture = PIXI.Texture.fromImage(texture_);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
texture = texture_;
|
|
||||||
}
|
|
||||||
for (var i = 0; i < children.length; i++) {
|
|
||||||
var child = children[i];
|
|
||||||
var tex = child.textures;
|
|
||||||
for (var j = 0; j < tex.length; j++) {
|
|
||||||
if (tex[j].baseTexture === texture.baseTexture) {
|
|
||||||
layer = child;
|
|
||||||
ind = j;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (layer) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!layer) {
|
|
||||||
for (i = 0; i < children.length; i++) {
|
|
||||||
var child = children[i];
|
|
||||||
if (child.textures.length < this.texPerChild) {
|
|
||||||
layer = child;
|
|
||||||
ind = child.textures.length;
|
|
||||||
child.textures.push(texture);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!layer) {
|
|
||||||
layer = new pixi_tilemap.RectTileLayer(this.zIndex, texture);
|
|
||||||
layer.compositeParent = true;
|
|
||||||
layer.offsetX = pixi_tilemap.Constant.boundSize;
|
|
||||||
layer.offsetY = pixi_tilemap.Constant.boundSize;
|
|
||||||
children.push(layer);
|
|
||||||
ind = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.renderCanvas = function (renderer) {
|
|
||||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var plugin = renderer.plugins.tilemap;
|
|
||||||
if (!plugin.dontUseTransform) {
|
|
||||||
var wt = this.worldTransform;
|
|
||||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
|
||||||
}
|
|
||||||
var layers = this.children;
|
|
||||||
for (var i = 0; i < layers.length; i++) {
|
|
||||||
layers[i].renderCanvasCore(renderer);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.renderWebGL = function (renderer) {
|
|
||||||
if (!this.visible || this.worldAlpha <= 0 || !this.renderable) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var gl = renderer.gl;
|
|
||||||
var plugin = renderer.plugins.tilemap;
|
|
||||||
renderer.setObjectRenderer(plugin);
|
|
||||||
var shader = plugin.getShader();
|
|
||||||
renderer.bindShader(shader);
|
|
||||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
|
||||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
|
||||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
|
||||||
shader.uniforms.shadowColor = this.shadowColor;
|
|
||||||
var af = shader.uniforms.animationFrame = plugin.tileAnim;
|
|
||||||
var layers = this.children;
|
|
||||||
for (var i = 0; i < layers.length; i++) {
|
|
||||||
layers[i].renderWebGLCore(renderer, plugin);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.isModified = function (anim) {
|
|
||||||
var layers = this.children;
|
|
||||||
if (this.modificationMarker !== layers.length) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (var i = 0; i < layers.length; i++) {
|
|
||||||
if (layers[i].isModified(anim)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
CompositeRectTileLayer.prototype.clearModify = function () {
|
|
||||||
var layers = this.children;
|
|
||||||
this.modificationMarker = layers.length;
|
|
||||||
for (var i = 0; i < layers.length; i++) {
|
|
||||||
layers[i].clearModify();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return CompositeRectTileLayer;
|
|
||||||
}(PIXI.Container));
|
|
||||||
pixi_tilemap.CompositeRectTileLayer = CompositeRectTileLayer;
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
pixi_tilemap.Constant = {
|
|
||||||
maxTextures: 4,
|
|
||||||
bufferSize: 2048,
|
|
||||||
boundSize: 1024,
|
|
||||||
boundCountPerBuffer: 4,
|
|
||||||
};
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var GraphicsLayer = (function (_super) {
|
|
||||||
__extends(GraphicsLayer, _super);
|
|
||||||
function GraphicsLayer(zIndex) {
|
|
||||||
var _this = _super.call(this) || this;
|
|
||||||
_this.z = _this.zIndex = zIndex;
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
GraphicsLayer.prototype.renderCanvas = function (renderer) {
|
|
||||||
var wt = null;
|
|
||||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
|
||||||
wt = this.transform.worldTransform;
|
|
||||||
this.transform.worldTransform = PIXI.Matrix.IDENTITY;
|
|
||||||
}
|
|
||||||
renderer.plugins.graphics.render(this);
|
|
||||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
|
||||||
this.transform.worldTransform = wt;
|
|
||||||
}
|
|
||||||
renderer.context.globalAlpha = 1.0;
|
|
||||||
};
|
|
||||||
GraphicsLayer.prototype.renderWebGL = function (renderer) {
|
|
||||||
if (!this._webGL[renderer.CONTEXT_UID])
|
|
||||||
this.dirty++;
|
|
||||||
_super.prototype.renderWebGL.call(this, renderer);
|
|
||||||
};
|
|
||||||
GraphicsLayer.prototype.isModified = function (anim) {
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
GraphicsLayer.prototype.clearModify = function () {
|
|
||||||
};
|
|
||||||
return GraphicsLayer;
|
|
||||||
}(PIXI.Graphics));
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var RectTileLayer = (function (_super) {
|
|
||||||
__extends(RectTileLayer, _super);
|
|
||||||
function RectTileLayer(zIndex, texture) {
|
|
||||||
var _this = _super.call(this) || this;
|
|
||||||
_this.z = 0;
|
|
||||||
_this.zIndex = 0;
|
|
||||||
_this.modificationMarker = 0;
|
|
||||||
_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.vbId = 0;
|
|
||||||
_this.vb = null;
|
|
||||||
_this.vbBuffer = null;
|
|
||||||
_this.vbArray = null;
|
|
||||||
_this.vbInts = null;
|
|
||||||
_this.initialize(zIndex, texture);
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
RectTileLayer.prototype.updateTransform = function () {
|
|
||||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.initialize = function (zIndex, textures) {
|
|
||||||
if (!textures) {
|
|
||||||
textures = [];
|
|
||||||
}
|
|
||||||
else if (!(textures instanceof Array) && textures.baseTexture) {
|
|
||||||
textures = [textures];
|
|
||||||
}
|
|
||||||
this.textures = textures;
|
|
||||||
this.z = this.zIndex = zIndex;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.clear = function () {
|
|
||||||
this.pointsBuf.length = 0;
|
|
||||||
this.modificationMarker = 0;
|
|
||||||
this.hasAnim = false;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
|
||||||
var texture;
|
|
||||||
var textureIndex = 0;
|
|
||||||
if (typeof texture_ === "number") {
|
|
||||||
textureIndex = texture_;
|
|
||||||
texture = this.textures[textureIndex];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (typeof texture_ === "string") {
|
|
||||||
texture = PIXI.Texture.fromImage(texture_);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
texture = texture_;
|
|
||||||
}
|
|
||||||
var found = false;
|
|
||||||
var textureList = this.textures;
|
|
||||||
for (var 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.frame.width, texture.frame.height, animX, animY);
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.addRect = function (textureIndex, u, v, x, y, tileWidth, tileHeight, animX, animY) {
|
|
||||||
if (animX === void 0) { animX = 0; }
|
|
||||||
if (animY === void 0) { animY = 0; }
|
|
||||||
var pb = this.pointsBuf;
|
|
||||||
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
|
|
||||||
if (tileWidth === tileHeight) {
|
|
||||||
pb.push(u);
|
|
||||||
pb.push(v);
|
|
||||||
pb.push(x);
|
|
||||||
pb.push(y);
|
|
||||||
pb.push(tileWidth);
|
|
||||||
pb.push(tileHeight);
|
|
||||||
pb.push(animX | 0);
|
|
||||||
pb.push(animY | 0);
|
|
||||||
pb.push(textureIndex);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var i;
|
|
||||||
if (tileWidth % tileHeight === 0) {
|
|
||||||
for (i = 0; i < tileWidth / tileHeight; i++) {
|
|
||||||
pb.push(u + i * tileHeight);
|
|
||||||
pb.push(v);
|
|
||||||
pb.push(x + i * tileHeight);
|
|
||||||
pb.push(y);
|
|
||||||
pb.push(tileHeight);
|
|
||||||
pb.push(tileHeight);
|
|
||||||
pb.push(animX | 0);
|
|
||||||
pb.push(animY | 0);
|
|
||||||
pb.push(textureIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (tileHeight % tileWidth === 0) {
|
|
||||||
for (i = 0; i < tileHeight / tileWidth; i++) {
|
|
||||||
pb.push(u);
|
|
||||||
pb.push(v + i * tileWidth);
|
|
||||||
pb.push(x);
|
|
||||||
pb.push(y + i * tileWidth);
|
|
||||||
pb.push(tileWidth);
|
|
||||||
pb.push(tileWidth);
|
|
||||||
pb.push(animX | 0);
|
|
||||||
pb.push(animY | 0);
|
|
||||||
pb.push(textureIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pb.push(u);
|
|
||||||
pb.push(v);
|
|
||||||
pb.push(x);
|
|
||||||
pb.push(y);
|
|
||||||
pb.push(tileWidth);
|
|
||||||
pb.push(tileHeight);
|
|
||||||
pb.push(animX | 0);
|
|
||||||
pb.push(animY | 0);
|
|
||||||
pb.push(textureIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.renderCanvas = function (renderer) {
|
|
||||||
var plugin = renderer.plugins.tilemap;
|
|
||||||
if (!plugin.dontUseTransform) {
|
|
||||||
var 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);
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.renderCanvasCore = function (renderer) {
|
|
||||||
if (this.textures.length === 0)
|
|
||||||
return;
|
|
||||||
var points = this.pointsBuf;
|
|
||||||
renderer.context.fillStyle = '#000000';
|
|
||||||
for (var i = 0, n = points.length; i < n; i += 9) {
|
|
||||||
var x1 = points[i], y1 = points[i + 1];
|
|
||||||
var x2 = points[i + 2], y2 = points[i + 3];
|
|
||||||
var w = points[i + 4];
|
|
||||||
var h = points[i + 5];
|
|
||||||
x1 += points[i + 6] * renderer.plugins.tilemap.tileAnim[0];
|
|
||||||
y1 += points[i + 7] * renderer.plugins.tilemap.tileAnim[1];
|
|
||||||
var textureIndex = points[i + 8];
|
|
||||||
if (textureIndex >= 0) {
|
|
||||||
renderer.context.drawImage(this.textures[textureIndex].baseTexture.source, 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.getVb = function (renderer) {
|
|
||||||
var _vb = this.vb;
|
|
||||||
if (_vb) {
|
|
||||||
if (_vb.rendererSN === renderer.sn) {
|
|
||||||
return _vb;
|
|
||||||
}
|
|
||||||
this.destroyVb();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.destroyVb = function () {
|
|
||||||
if (this.vb) {
|
|
||||||
this.vb.vb.destroy();
|
|
||||||
this.vb.vao.destroy();
|
|
||||||
this.vb = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.renderWebGL = function (renderer) {
|
|
||||||
var gl = renderer.gl;
|
|
||||||
var plugin = renderer.plugins.simpleTilemap;
|
|
||||||
var shader = plugin.getShader();
|
|
||||||
renderer.setObjectRenderer(plugin);
|
|
||||||
renderer.bindShader(shader);
|
|
||||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
|
||||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
|
||||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
|
||||||
shader.uniforms.shadowColor = this.shadowColor;
|
|
||||||
var af = shader.uniforms.animationFrame = plugin.tileAnim;
|
|
||||||
this.renderWebGLCore(renderer, plugin);
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.renderWebGLCore = function (renderer, plugin) {
|
|
||||||
var points = this.pointsBuf;
|
|
||||||
if (points.length === 0)
|
|
||||||
return;
|
|
||||||
var rectsCount = points.length / 9;
|
|
||||||
var tile = plugin || renderer.plugins.simpleTilemap;
|
|
||||||
var gl = renderer.gl;
|
|
||||||
var shader = tile.getShader();
|
|
||||||
var textures = this.textures;
|
|
||||||
if (textures.length === 0)
|
|
||||||
return;
|
|
||||||
tile.bindTextures(renderer, shader, textures);
|
|
||||||
var vb = this.getVb(tile);
|
|
||||||
if (!vb) {
|
|
||||||
vb = tile.createVb();
|
|
||||||
this.vb = vb;
|
|
||||||
this.vbId = vb.id;
|
|
||||||
this.vbBuffer = null;
|
|
||||||
this.modificationMarker = 0;
|
|
||||||
}
|
|
||||||
var vao = vb.vao;
|
|
||||||
renderer.bindVao(vao);
|
|
||||||
tile.checkIndexBuffer(rectsCount);
|
|
||||||
var boundCountPerBuffer = pixi_tilemap.Constant.boundCountPerBuffer;
|
|
||||||
var vertexBuf = vb.vb;
|
|
||||||
vertexBuf.bind();
|
|
||||||
var vertices = rectsCount * shader.vertPerQuad;
|
|
||||||
if (vertices === 0)
|
|
||||||
return;
|
|
||||||
if (this.modificationMarker !== vertices) {
|
|
||||||
this.modificationMarker = vertices;
|
|
||||||
var vs = shader.stride * vertices;
|
|
||||||
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
|
|
||||||
var bk = shader.stride;
|
|
||||||
while (bk < vs) {
|
|
||||||
bk *= 2;
|
|
||||||
}
|
|
||||||
this.vbBuffer = new ArrayBuffer(bk);
|
|
||||||
this.vbArray = new Float32Array(this.vbBuffer);
|
|
||||||
this.vbInts = new Uint32Array(this.vbBuffer);
|
|
||||||
vertexBuf.upload(this.vbBuffer, 0, true);
|
|
||||||
}
|
|
||||||
var arr = this.vbArray, ints = this.vbInts;
|
|
||||||
var sz = 0;
|
|
||||||
var textureId = 0;
|
|
||||||
var shiftU = this.offsetX;
|
|
||||||
var shiftV = this.offsetY;
|
|
||||||
var tint = -1;
|
|
||||||
for (var i = 0; i < points.length; i += 9) {
|
|
||||||
var eps = 0.5;
|
|
||||||
if (this.compositeParent) {
|
|
||||||
if (boundCountPerBuffer > 1) {
|
|
||||||
textureId = (points[i + 8] >> 2);
|
|
||||||
shiftU = this.offsetX * (points[i + 8] & 1);
|
|
||||||
shiftV = this.offsetY * ((points[i + 8] >> 1) & 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
textureId = points[i + 8];
|
|
||||||
shiftU = 0;
|
|
||||||
shiftV = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var x = points[i + 2], y = points[i + 3];
|
|
||||||
var w = points[i + 4], h = points[i + 5];
|
|
||||||
var u = points[i] + shiftU, v = points[i + 1] + shiftV;
|
|
||||||
var animX = points[i + 6], animY = points[i + 7];
|
|
||||||
arr[sz++] = x;
|
|
||||||
arr[sz++] = y;
|
|
||||||
arr[sz++] = u;
|
|
||||||
arr[sz++] = v;
|
|
||||||
arr[sz++] = u + eps;
|
|
||||||
arr[sz++] = v + eps;
|
|
||||||
arr[sz++] = u + w - eps;
|
|
||||||
arr[sz++] = v + h - eps;
|
|
||||||
arr[sz++] = animX;
|
|
||||||
arr[sz++] = animY;
|
|
||||||
arr[sz++] = textureId;
|
|
||||||
arr[sz++] = x + w;
|
|
||||||
arr[sz++] = y;
|
|
||||||
arr[sz++] = u + w;
|
|
||||||
arr[sz++] = v;
|
|
||||||
arr[sz++] = u + eps;
|
|
||||||
arr[sz++] = v + eps;
|
|
||||||
arr[sz++] = u + w - eps;
|
|
||||||
arr[sz++] = v + h - eps;
|
|
||||||
arr[sz++] = animX;
|
|
||||||
arr[sz++] = animY;
|
|
||||||
arr[sz++] = textureId;
|
|
||||||
arr[sz++] = x + w;
|
|
||||||
arr[sz++] = y + h;
|
|
||||||
arr[sz++] = u + w;
|
|
||||||
arr[sz++] = v + h;
|
|
||||||
arr[sz++] = u + eps;
|
|
||||||
arr[sz++] = v + eps;
|
|
||||||
arr[sz++] = u + w - eps;
|
|
||||||
arr[sz++] = v + h - eps;
|
|
||||||
arr[sz++] = animX;
|
|
||||||
arr[sz++] = animY;
|
|
||||||
arr[sz++] = textureId;
|
|
||||||
arr[sz++] = x;
|
|
||||||
arr[sz++] = y + h;
|
|
||||||
arr[sz++] = u;
|
|
||||||
arr[sz++] = v + h;
|
|
||||||
arr[sz++] = u + eps;
|
|
||||||
arr[sz++] = v + eps;
|
|
||||||
arr[sz++] = u + w - eps;
|
|
||||||
arr[sz++] = v + h - eps;
|
|
||||||
arr[sz++] = animX;
|
|
||||||
arr[sz++] = animY;
|
|
||||||
arr[sz++] = textureId;
|
|
||||||
}
|
|
||||||
vertexBuf.upload(arr, 0, true);
|
|
||||||
}
|
|
||||||
gl.drawElements(gl.TRIANGLES, rectsCount * 6, gl.UNSIGNED_SHORT, 0);
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.isModified = function (anim) {
|
|
||||||
if (this.modificationMarker !== this.pointsBuf.length ||
|
|
||||||
anim && this.hasAnim) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.clearModify = function () {
|
|
||||||
this.modificationMarker = this.pointsBuf.length;
|
|
||||||
};
|
|
||||||
RectTileLayer.prototype.destroy = function (options) {
|
|
||||||
_super.prototype.destroy.call(this, options);
|
|
||||||
this.destroyVb();
|
|
||||||
};
|
|
||||||
return RectTileLayer;
|
|
||||||
}(PIXI.Container));
|
|
||||||
pixi_tilemap.RectTileLayer = RectTileLayer;
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var rectShaderFrag = "\nvarying vec2 vTextureCoord;\nvarying vec4 vFrame;\nvarying float vTextureId;\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\n\nvoid main(void){\n vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);\n float textureId = floor(vTextureId + 0.5);\n\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}\n";
|
|
||||||
var rectShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aFrame;\nattribute vec2 aAnim;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform vec2 animationFrame;\n\nvarying vec2 vTextureCoord;\nvarying float vTextureId;\nvarying vec4 vFrame;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vec2 anim = aAnim * animationFrame;\n vTextureCoord = aTextureCoord + anim;\n vFrame = aFrame + vec4(anim, anim);\n vTextureId = aTextureId;\n}\n";
|
|
||||||
var TilemapShader = (function (_super) {
|
|
||||||
__extends(TilemapShader, _super);
|
|
||||||
function TilemapShader(gl, maxTextures, shaderVert, shaderFrag) {
|
|
||||||
var _this = _super.call(this, gl, shaderVert, shaderFrag) || this;
|
|
||||||
_this.maxTextures = 0;
|
|
||||||
_this.maxTextures = maxTextures;
|
|
||||||
pixi_tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
return TilemapShader;
|
|
||||||
}(PIXI.Shader));
|
|
||||||
pixi_tilemap.TilemapShader = TilemapShader;
|
|
||||||
var RectTileShader = (function (_super) {
|
|
||||||
__extends(RectTileShader, _super);
|
|
||||||
function RectTileShader(gl, maxTextures) {
|
|
||||||
var _this = _super.call(this, gl, maxTextures, rectShaderVert, pixi_tilemap.shaderGenerator.generateFragmentSrc(maxTextures, rectShaderFrag)) || this;
|
|
||||||
_this.vertSize = 11;
|
|
||||||
_this.vertPerQuad = 4;
|
|
||||||
_this.stride = _this.vertSize * 4;
|
|
||||||
pixi_tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
RectTileShader.prototype.createVao = function (renderer, vb) {
|
|
||||||
var gl = renderer.gl;
|
|
||||||
return renderer.createVao()
|
|
||||||
.addIndex(this.indexBuffer)
|
|
||||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
|
||||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
|
||||||
.addAttribute(vb, this.attributes.aFrame, gl.FLOAT, false, this.stride, 4 * 4)
|
|
||||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 8 * 4)
|
|
||||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 10 * 4);
|
|
||||||
};
|
|
||||||
return RectTileShader;
|
|
||||||
}(TilemapShader));
|
|
||||||
pixi_tilemap.RectTileShader = RectTileShader;
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var glCore = PIXI.glCore;
|
|
||||||
function _hackSubImage(tex, sprite, clearBuffer, clearWidth, clearHeight) {
|
|
||||||
var gl = tex.gl;
|
|
||||||
var baseTex = sprite.texture.baseTexture;
|
|
||||||
if (clearBuffer && clearWidth > 0 && clearHeight > 0) {
|
|
||||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, clearWidth, clearHeight, tex.format, tex.type, clearBuffer);
|
|
||||||
}
|
|
||||||
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
|
|
||||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, tex.format, tex.type, baseTex.source);
|
|
||||||
}
|
|
||||||
var TileRenderer = (function (_super) {
|
|
||||||
__extends(TileRenderer, _super);
|
|
||||||
function TileRenderer(renderer) {
|
|
||||||
var _this = _super.call(this, renderer) || this;
|
|
||||||
_this.sn = -1;
|
|
||||||
_this.indices = new Uint16Array(0);
|
|
||||||
_this.lastTimeCheck = 0;
|
|
||||||
_this.tileAnim = [0, 0];
|
|
||||||
_this.texLoc = [];
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
TileRenderer.prototype.onContextChange = function () {
|
|
||||||
var gl = this.renderer.gl;
|
|
||||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
|
||||||
this.sn = TileRenderer.snAutoincrement++;
|
|
||||||
this.rectShader = new pixi_tilemap.RectTileShader(gl, maxTextures);
|
|
||||||
this.checkIndexBuffer(2000);
|
|
||||||
this.rectShader.indexBuffer = this.indexBuffer;
|
|
||||||
this.glTextures = [];
|
|
||||||
this.boundSprites = [];
|
|
||||||
this.initBounds();
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.initBounds = function () {
|
|
||||||
if (pixi_tilemap.Constant.boundCountPerBuffer <= 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var gl = this.renderer.gl;
|
|
||||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
|
||||||
for (var i = 0; i < maxTextures; i++) {
|
|
||||||
var rt = PIXI.RenderTexture.create(pixi_tilemap.Constant.bufferSize, pixi_tilemap.Constant.bufferSize);
|
|
||||||
rt.baseTexture.premultipliedAlpha = true;
|
|
||||||
rt.baseTexture.scaleMode = TileRenderer.SCALE_MODE;
|
|
||||||
rt.baseTexture.wrapMode = PIXI.WRAP_MODES.CLAMP;
|
|
||||||
this.renderer.textureManager.updateTexture(rt);
|
|
||||||
this.glTextures.push(rt);
|
|
||||||
var bounds = this.boundSprites;
|
|
||||||
for (var j = 0; j < pixi_tilemap.Constant.boundCountPerBuffer; j++) {
|
|
||||||
var spr = new PIXI.Sprite();
|
|
||||||
spr.position.x = pixi_tilemap.Constant.boundSize * (j & 1);
|
|
||||||
spr.position.y = pixi_tilemap.Constant.boundSize * (j >> 1);
|
|
||||||
bounds.push(spr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.bindTexturesWithoutRT = function (renderer, shader, textures) {
|
|
||||||
var len = textures.length;
|
|
||||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
|
||||||
var samplerSize = shader.uniforms.uSamplerSize;
|
|
||||||
this.texLoc.length = 0;
|
|
||||||
for (var i = 0; i < textures.length; i++) {
|
|
||||||
var texture = textures[i];
|
|
||||||
if (!texture || !texture.valid) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.texLoc.push(renderer.bindTexture(textures[i], i, true));
|
|
||||||
samplerSize[i * 2] = 1.0 / textures[i].baseTexture.width;
|
|
||||||
samplerSize[i * 2 + 1] = 1.0 / textures[i].baseTexture.height;
|
|
||||||
}
|
|
||||||
shader.uniforms.uSamplerSize = samplerSize;
|
|
||||||
shader.uniforms.uSamplers = this.texLoc;
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
|
||||||
var len = textures.length;
|
|
||||||
var maxTextures = pixi_tilemap.Constant.maxTextures;
|
|
||||||
if (len > pixi_tilemap.Constant.boundCountPerBuffer * maxTextures) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (pixi_tilemap.Constant.boundCountPerBuffer <= 1) {
|
|
||||||
this.bindTexturesWithoutRT(renderer, shader, textures);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var doClear = TileRenderer.DO_CLEAR;
|
|
||||||
if (doClear && !this._clearBuffer) {
|
|
||||||
this._clearBuffer = new Uint8Array(pixi_tilemap.Constant.boundSize * pixi_tilemap.Constant.boundSize * 4);
|
|
||||||
}
|
|
||||||
var glts = this.glTextures;
|
|
||||||
var bounds = this.boundSprites;
|
|
||||||
var oldActiveRenderTarget = this.renderer._activeRenderTarget;
|
|
||||||
var i;
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
var texture = textures[i];
|
|
||||||
if (!texture || !texture.valid)
|
|
||||||
continue;
|
|
||||||
var bs = bounds[i];
|
|
||||||
if (!bs.texture ||
|
|
||||||
bs.texture.baseTexture !== texture.baseTexture) {
|
|
||||||
bs.texture = texture;
|
|
||||||
var glt = glts[i >> 2];
|
|
||||||
renderer.bindTexture(glt, 0, true);
|
|
||||||
if (doClear) {
|
|
||||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs, this._clearBuffer, pixi_tilemap.Constant.boundSize, pixi_tilemap.Constant.boundSize);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!oldActiveRenderTarget.root) {
|
|
||||||
this.renderer._activeRenderTarget.frameBuffer.bind();
|
|
||||||
}
|
|
||||||
this.texLoc.length = 0;
|
|
||||||
var gltsUsed = (i + 3) >> 2;
|
|
||||||
for (i = 0; i < gltsUsed; i++) {
|
|
||||||
this.texLoc.push(renderer.bindTexture(glts[i], i, true));
|
|
||||||
}
|
|
||||||
shader.uniforms.uSamplers = this.texLoc;
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.start = function () {
|
|
||||||
this.renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.createVb = function () {
|
|
||||||
var id = ++TileRenderer.vbAutoincrement;
|
|
||||||
var shader = this.getShader();
|
|
||||||
var gl = this.renderer.gl;
|
|
||||||
this.renderer.bindVao(null);
|
|
||||||
var vb = PIXI.glCore.GLBuffer.createVertexBuffer(gl, null, gl.STREAM_DRAW);
|
|
||||||
var stuff = {
|
|
||||||
id: id,
|
|
||||||
vb: vb,
|
|
||||||
vao: shader.createVao(this.renderer, vb),
|
|
||||||
lastTimeAccess: Date.now(),
|
|
||||||
shader: shader,
|
|
||||||
rendererSN: this.sn
|
|
||||||
};
|
|
||||||
return stuff;
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.checkIndexBuffer = function (size) {
|
|
||||||
var totalIndices = size * 6;
|
|
||||||
var indices = this.indices;
|
|
||||||
if (totalIndices <= indices.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var len = indices.length || totalIndices;
|
|
||||||
while (len < totalIndices) {
|
|
||||||
len <<= 1;
|
|
||||||
}
|
|
||||||
indices = new Uint16Array(len);
|
|
||||||
this.indices = indices;
|
|
||||||
for (var i = 0, j = 0; i + 5 < indices.length; i += 6, j += 4) {
|
|
||||||
indices[i + 0] = j + 0;
|
|
||||||
indices[i + 1] = j + 1;
|
|
||||||
indices[i + 2] = j + 2;
|
|
||||||
indices[i + 3] = j + 0;
|
|
||||||
indices[i + 4] = j + 2;
|
|
||||||
indices[i + 5] = j + 3;
|
|
||||||
}
|
|
||||||
if (this.indexBuffer) {
|
|
||||||
this.indexBuffer.upload(indices);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var gl = this.renderer.gl;
|
|
||||||
this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.getShader = function () {
|
|
||||||
return this.rectShader;
|
|
||||||
};
|
|
||||||
TileRenderer.prototype.destroy = function () {
|
|
||||||
_super.prototype.destroy.call(this);
|
|
||||||
this.rectShader.destroy();
|
|
||||||
this.rectShader = null;
|
|
||||||
};
|
|
||||||
TileRenderer.vbAutoincrement = 0;
|
|
||||||
TileRenderer.snAutoincrement = 0;
|
|
||||||
TileRenderer.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
|
|
||||||
TileRenderer.DO_CLEAR = false;
|
|
||||||
return TileRenderer;
|
|
||||||
}(PIXI.ObjectRenderer));
|
|
||||||
pixi_tilemap.TileRenderer = TileRenderer;
|
|
||||||
PIXI.WebGLRenderer.registerPlugin('tilemap', TileRenderer);
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var SimpleTileRenderer = (function (_super) {
|
|
||||||
__extends(SimpleTileRenderer, _super);
|
|
||||||
function SimpleTileRenderer(renderer) {
|
|
||||||
var _this = _super.call(this, renderer) || this;
|
|
||||||
_this.samplerSize = [];
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
SimpleTileRenderer.prototype.onContextChange = function () {
|
|
||||||
var gl = this.renderer.gl;
|
|
||||||
this.sn = pixi_tilemap.TileRenderer.snAutoincrement++;
|
|
||||||
this.rectShader = new pixi_tilemap.RectTileShader(gl, 1);
|
|
||||||
this.checkIndexBuffer(2000);
|
|
||||||
this.rectShader.indexBuffer = this.indexBuffer;
|
|
||||||
};
|
|
||||||
SimpleTileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
|
||||||
var len = textures.length;
|
|
||||||
var i;
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
var texture = textures[i];
|
|
||||||
if (!texture || !texture.valid) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
this.texLoc[0] = renderer.bindTexture(texture, 0, true);
|
|
||||||
shader.uniforms.uSamplers = this.texLoc;
|
|
||||||
this.samplerSize[0] = 1.0 / texture.baseTexture.width;
|
|
||||||
this.samplerSize[1] = 1.0 / texture.baseTexture.height;
|
|
||||||
shader.uniforms.uSamplerSize = this.samplerSize;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
SimpleTileRenderer.prototype.destroy = function () {
|
|
||||||
_super.prototype.destroy.call(this);
|
|
||||||
};
|
|
||||||
return SimpleTileRenderer;
|
|
||||||
}(pixi_tilemap.TileRenderer));
|
|
||||||
pixi_tilemap.SimpleTileRenderer = SimpleTileRenderer;
|
|
||||||
PIXI.WebGLRenderer.registerPlugin('simpleTilemap', SimpleTileRenderer);
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var ZLayer = (function (_super) {
|
|
||||||
__extends(ZLayer, _super);
|
|
||||||
function ZLayer(tilemap, zIndex) {
|
|
||||||
var _this = _super.call(this) || this;
|
|
||||||
_this._lastAnimationFrame = -1;
|
|
||||||
_this.tilemap = tilemap;
|
|
||||||
_this.z = zIndex;
|
|
||||||
return _this;
|
|
||||||
}
|
|
||||||
ZLayer.prototype.clear = function () {
|
|
||||||
var layers = this.children;
|
|
||||||
for (var i = 0; i < layers.length; i++)
|
|
||||||
layers[i].clear();
|
|
||||||
this._previousLayers = 0;
|
|
||||||
};
|
|
||||||
ZLayer.prototype.cacheIfDirty = function () {
|
|
||||||
var tilemap = this.tilemap;
|
|
||||||
var layers = this.children;
|
|
||||||
var modified = this._previousLayers !== layers.length;
|
|
||||||
this._previousLayers = layers.length;
|
|
||||||
var buf = this.canvasBuffer;
|
|
||||||
var tempRender = this._tempRender;
|
|
||||||
if (!buf) {
|
|
||||||
buf = this.canvasBuffer = document.createElement('canvas');
|
|
||||||
tempRender = this._tempRender = new PIXI.CanvasRenderer(100, 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;
|
|
||||||
}
|
|
||||||
var 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;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
ZLayer.prototype.renderCanvas = function (renderer) {
|
|
||||||
this.cacheIfDirty();
|
|
||||||
var wt = this.layerTransform;
|
|
||||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
|
||||||
var tilemap = this.tilemap;
|
|
||||||
renderer.context.drawImage(this.canvasBuffer, 0, 0);
|
|
||||||
};
|
|
||||||
return ZLayer;
|
|
||||||
}(PIXI.Container));
|
|
||||||
pixi_tilemap.ZLayer = ZLayer;
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
PIXI.tilemap = pixi_tilemap;
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
var pixi_tilemap;
|
|
||||||
(function (pixi_tilemap) {
|
|
||||||
var shaderGenerator;
|
|
||||||
(function (shaderGenerator) {
|
|
||||||
function fillSamplers(shader, maxTextures) {
|
|
||||||
var sampleValues = [];
|
|
||||||
for (var i = 0; i < maxTextures; i++) {
|
|
||||||
sampleValues[i] = i;
|
|
||||||
}
|
|
||||||
shader.bind();
|
|
||||||
shader.uniforms.uSamplers = sampleValues;
|
|
||||||
var samplerSize = [];
|
|
||||||
for (i = 0; i < maxTextures; i++) {
|
|
||||||
samplerSize.push(1.0 / pixi_tilemap.Constant.bufferSize);
|
|
||||||
samplerSize.push(1.0 / pixi_tilemap.Constant.bufferSize);
|
|
||||||
}
|
|
||||||
shader.uniforms.uSamplerSize = samplerSize;
|
|
||||||
}
|
|
||||||
shaderGenerator.fillSamplers = fillSamplers;
|
|
||||||
function generateFragmentSrc(maxTextures, fragmentSrc) {
|
|
||||||
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
|
|
||||||
.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));
|
|
||||||
}
|
|
||||||
shaderGenerator.generateFragmentSrc = generateFragmentSrc;
|
|
||||||
function generateSampleSrc(maxTextures) {
|
|
||||||
var src = '';
|
|
||||||
src += '\n';
|
|
||||||
src += '\n';
|
|
||||||
src += 'if(vTextureId <= -1.0) {';
|
|
||||||
src += '\n\tcolor = shadowColor;';
|
|
||||||
src += '\n}';
|
|
||||||
for (var 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;
|
|
||||||
}
|
|
||||||
shaderGenerator.generateSampleSrc = generateSampleSrc;
|
|
||||||
})(shaderGenerator = pixi_tilemap.shaderGenerator || (pixi_tilemap.shaderGenerator = {}));
|
|
||||||
})(pixi_tilemap || (pixi_tilemap = {}));
|
|
||||||
//# sourceMappingURL=pixi-tilemap.js.map
|
|
|
@ -1070,7 +1070,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
||||||
this._errorPrinter.style.textAlign = 'left';
|
this._errorPrinter.style.textAlign = 'left';
|
||||||
//this._errorPrinter.style.textShadow = '1px 1px 3px #000';
|
//this._errorPrinter.style.textShadow = '1px 1px 3px #000';
|
||||||
this._errorPrinter.style.fontFamily = "GameFont"
|
this._errorPrinter.style.fontFamily = "GameFont"
|
||||||
this._errorPrinter.style.fontSize = '28px';
|
this._errorPrinter.style.fontSize = '14px';
|
||||||
this._errorPrinter.style.zIndex = 99;
|
this._errorPrinter.style.zIndex = 99;
|
||||||
this._errorPrinter.style.padding = "4px"
|
this._errorPrinter.style.padding = "4px"
|
||||||
this._centerElement(this._errorPrinter);
|
this._centerElement(this._errorPrinter);
|
||||||
|
@ -1765,7 +1765,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var yaml = require('./js/libs/js-yaml-master')
|
var yaml = require('./js/libs/js-yaml-master')
|
||||||
var base = path.dirname(process.mainModule.filename);
|
var base = path.dirname(process.mainModule.filename);
|
||||||
var folder = '/Languages/' + language + '/';
|
var folder = '/Languages/' + language;
|
||||||
var filePath = base + folder;
|
var filePath = base + folder;
|
||||||
var dirList = fs.readdirSync(filePath);
|
var dirList = fs.readdirSync(filePath);
|
||||||
|
|
||||||
|
@ -1817,7 +1817,7 @@ Gamefall.OmoriFixes = Gamefall.OmoriFixes || {};
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var yaml = require('./js/libs/js-yaml-master')
|
var yaml = require('./js/libs/js-yaml-master')
|
||||||
var base = path.dirname(process.mainModule.filename);
|
var base = path.dirname(process.mainModule.filename);
|
||||||
var folder = '/Languages/' + language + '/';
|
var folder = '/Languages/' + language;
|
||||||
var filePath = base + folder;
|
var filePath = base + folder;
|
||||||
var data = yaml.safeLoad(fs.readFileSync(filePath + '/' + filename + '.yaml', 'utf8'));
|
var data = yaml.safeLoad(fs.readFileSync(filePath + '/' + filename + '.yaml', 'utf8'));
|
||||||
this._data[language].text[filename] = data;
|
this._data[language].text[filename] = data;
|
||||||
|
@ -3592,7 +3592,7 @@ Gamefall.Encryption = Gamefall.Encryption || {};
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
var base = path.dirname(process.mainModule.filename);
|
var base = path.dirname(process.mainModule.filename);
|
||||||
|
|
||||||
let folder = "/Languages/" + language + "/";
|
let folder = "/Languages/" + language;
|
||||||
let filePath = base + folder;
|
let filePath = base + folder;
|
||||||
let dirList = fs.readdirSync(filePath);
|
let dirList = fs.readdirSync(filePath);
|
||||||
this._data[language] = {text: {}};
|
this._data[language] = {text: {}};
|
||||||
|
|
|
@ -177,7 +177,7 @@ LanguageManager.loadLanguageFiles = function(language) {
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var base = path.dirname(process.mainModule.filename);
|
var base = path.dirname(process.mainModule.filename);
|
||||||
// Get Folder
|
// Get Folder
|
||||||
var folder = '/Languages/' + language + '/';
|
var folder = '/Languages/' + language;
|
||||||
// Get FilePath
|
// Get FilePath
|
||||||
var filePath = base + folder;
|
var filePath = base + folder;
|
||||||
// Get Directory List
|
// Get Directory List
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue