laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
283 lines (282 loc) • 11 kB
JavaScript
import { ILaya } from "./ILaya";
import { Graphics } from "./laya/display/Graphics";
import { Input } from "./laya/display/Input";
import { Sprite } from "./laya/display/Sprite";
import { Stage } from "./laya/display/Stage";
import { Text } from "./laya/display/Text";
import { MouseManager } from "./laya/events/MouseManager";
import { LayaGL } from "./laya/layagl/LayaGL";
import { Loader } from "./laya/net/Loader";
import { LoaderManager } from "./laya/net/LoaderManager";
import { LocalStorage } from "./laya/net/LocalStorage";
import { URL } from "./laya/net/URL";
import { Render } from "./laya/renders/Render";
import { RenderSprite } from "./laya/renders/RenderSprite";
import { Context } from "./laya/resource/Context";
import { HTMLCanvas } from "./laya/resource/HTMLCanvas";
import { RenderTexture2D } from "./laya/resource/RenderTexture2D";
import { Browser } from "./laya/utils/Browser";
import { CacheManger } from "./laya/utils/CacheManger";
import { ClassUtils } from "./laya/utils/ClassUtils";
import { ColorUtils } from "./laya/utils/ColorUtils";
import { Dragging } from "./laya/utils/Dragging";
import { Pool } from "./laya/utils/Pool";
import { SceneUtils } from "./laya/utils/SceneUtils";
import { Stat } from "./laya/utils/Stat";
import { StatUI } from "./laya/utils/StatUI";
import { Timer } from "./laya/utils/Timer";
import { Utils } from "./laya/utils/Utils";
import { WeakObject } from "./laya/utils/WeakObject";
import { ShaderDefines2D } from "./laya/webgl/shader/d2/ShaderDefines2D";
import { SkinSV } from "./laya/webgl/shader/d2/skinAnishader/SkinSV";
import { PrimitiveSV } from "./laya/webgl/shader/d2/value/PrimitiveSV";
import { TextureSV } from "./laya/webgl/shader/d2/value/TextureSV";
import { Value2D } from "./laya/webgl/shader/d2/value/Value2D";
import { Shader } from "./laya/webgl/shader/Shader";
import { TextRender } from "./laya/webgl/text/TextRender";
import { RenderState2D } from "./laya/webgl/utils/RenderState2D";
import { ShaderCompile } from "./laya/webgl/utils/ShaderCompile";
import { WebGL } from "./laya/webgl/WebGL";
import { WebGLContext } from "./laya/webgl/WebGLContext";
import { WorkerLoader } from "./laya/net/WorkerLoader";
import { Mouse } from "./laya/utils/Mouse";
import { MeshVG } from "./laya/webgl/utils/MeshVG";
import { MeshQuadTexture } from "./laya/webgl/utils/MeshQuadTexture";
import { MeshTexture } from "./laya/webgl/utils/MeshTexture";
import { Event } from "./laya/events/Event";
import { Config } from "./Config";
export class Laya {
static __init(_classs) {
_classs.forEach(function (o) { o.__init$ && o.__init$(); });
}
static init(width, height, ...plugins) {
if (Laya._isinit)
return;
Laya._isinit = true;
ArrayBuffer.prototype.slice || (ArrayBuffer.prototype.slice = Laya._arrayBufferSlice);
Browser.__init__();
var mainCanv = Browser.mainCanvas = new HTMLCanvas(true);
var style = mainCanv.source.style;
style.position = 'absolute';
style.top = style.left = "0px";
style.background = "#000000";
if (!Browser.onKGMiniGame && !Browser.onAlipayMiniGame) {
Browser.container.appendChild(mainCanv.source);
}
Browser.canvas = new HTMLCanvas(true);
Browser.context = Browser.canvas.getContext('2d');
Browser.supportLocalStorage = LocalStorage.__init__();
Laya.systemTimer = new Timer(false);
Timer.gSysTimer = Laya.systemTimer;
Laya.startTimer = new Timer(false);
Laya.physicsTimer = new Timer(false);
Laya.updateTimer = new Timer(false);
Laya.lateTimer = new Timer(false);
Laya.timer = new Timer(false);
ILaya.startTimer = Laya.startTimer;
ILaya.lateTimer = Laya.lateTimer;
ILaya.updateTimer = Laya.updateTimer;
ILaya.systemTimer = Laya.systemTimer;
ILaya.timer = Laya.timer;
ILaya.physicsTimer = Laya.physicsTimer;
Laya.loader = new LoaderManager();
ILaya.Laya = Laya;
ILaya.loader = Laya.loader;
WeakObject.__init__();
SceneUtils.__init();
Mouse.__init__();
WebGL.inner_enable();
if (plugins) {
for (var i = 0, n = plugins.length; i < n; i++) {
if (plugins[i] && plugins[i].enable) {
plugins[i].enable();
}
}
}
if (ILaya.Render.isConchApp) {
Laya.enableNative();
}
Laya.enableWebGLPlus();
CacheManger.beginCheck();
Laya.stage = new Stage();
ILaya.stage = Laya.stage;
Utils.gStage = Laya.stage;
URL.rootPath = URL._basePath = Laya._getUrlPath();
MeshQuadTexture.__int__();
MeshVG.__init__();
MeshTexture.__init__();
Laya.render = new Render(0, 0, Browser.mainCanvas);
Laya.stage.size(width, height);
window.stage = Laya.stage;
WebGLContext.__init__();
ShaderCompile.__init__();
RenderSprite.__init__();
MouseManager.instance.__init__(Laya.stage, Render.canvas);
Input.__init__();
Stat._StatRender = new StatUI();
Value2D._initone(ShaderDefines2D.TEXTURE2D, TextureSV);
Value2D._initone(ShaderDefines2D.TEXTURE2D | ShaderDefines2D.FILTERGLOW, TextureSV);
Value2D._initone(ShaderDefines2D.PRIMITIVE, PrimitiveSV);
Value2D._initone(ShaderDefines2D.SKINMESH, SkinSV);
return Render.canvas;
}
static install(comp) {
comp.forEach((c) => {
ILaya.regClass(c);
ClassUtils.regClass(c.name, c);
});
}
static _getUrlPath() {
return URL.getPath(location.protocol + "//" + location.host + location.pathname);
}
static _arrayBufferSlice(start, end) {
var arr = this;
var arrU8List = new Uint8Array(arr, start, end - start);
var newU8List = new Uint8Array(arrU8List.length);
newU8List.set(arrU8List);
return newU8List.buffer;
}
static alertGlobalError(value) {
var erralert = 0;
if (value) {
Browser.window.onerror = function (msg, url, line, column, detail) {
if (erralert++ < 5 && detail)
this.alert("出错啦,请把此信息截图给研发商\n" + msg + "\n" + detail.stack);
};
}
else {
Browser.window.onerror = null;
}
}
static _runScript(script) {
return Browser.window[Laya._evcode](script);
}
static enableDebugPanel(debugJsPath = "libs/laya.debugtool.js") {
if (!window['Laya']["DebugPanel"]) {
var script = Browser.createElement("script");
script.onload = function () {
window['Laya']["DebugPanel"].enable();
};
script.src = debugJsPath;
Browser.document.body.appendChild(script);
}
else {
window['Laya']["DebugPanel"].enable();
}
}
static enableWebGLPlus() {
WebGLContext.__init_native();
}
static enableNative() {
if (Laya.isNativeRender_enable)
return;
Laya.isNativeRender_enable = true;
if (Render.supportWebGLPlusRendering) {
Shader.prototype.uploadTexture2D = function (value) {
var gl = LayaGL.instance;
gl.bindTexture(gl.TEXTURE_2D, value);
};
}
RenderState2D.width = Browser.window.innerWidth;
RenderState2D.height = Browser.window.innerHeight;
Browser.measureText = function (txt, font) {
window["conchTextCanvas"].font = font;
return window["conchTextCanvas"].measureText(txt);
};
Stage.clear = function (color) {
Context.set2DRenderConfig();
var c = ColorUtils.create(color).arrColor;
var gl = LayaGL.instance;
if (c)
gl.clearColor(c[0], c[1], c[2], c[3]);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
RenderState2D.clear();
};
Sprite.drawToCanvas = Sprite.drawToTexture = function (sprite, _renderType, canvasWidth, canvasHeight, offsetX, offsetY) {
offsetX -= sprite.x;
offsetY -= sprite.y;
offsetX |= 0;
offsetY |= 0;
canvasWidth |= 0;
canvasHeight |= 0;
var canv = new HTMLCanvas(false);
var ctx = canv.getContext('2d');
canv.size(canvasWidth, canvasHeight);
ctx.asBitmap = true;
ctx._targets.start();
RenderSprite.renders[_renderType]._fun(sprite, ctx, offsetX, offsetY);
ctx.flush();
ctx._targets.end();
ctx._targets.restore();
return canv;
};
Object["defineProperty"](RenderTexture2D.prototype, "uv", {
"get": function () {
return this._uv;
},
"set": function (v) {
this._uv = v;
}
});
HTMLCanvas.prototype.getTexture = function () {
if (!this._texture) {
this._texture = this.context._targets;
this._texture.uv = RenderTexture2D.flipyuv;
this._texture.bitmap = this._texture;
}
return this._texture;
};
}
}
Laya.stage = null;
Laya.systemTimer = null;
Laya.startTimer = null;
Laya.physicsTimer = null;
Laya.updateTimer = null;
Laya.lateTimer = null;
Laya.timer = null;
Laya.loader = null;
Laya.version = "2.12.0";
Laya._isinit = false;
Laya.isWXOpenDataContext = false;
Laya.isWXPosMsg = false;
Laya.__classmap = null;
Laya.Config = Config;
Laya.Browser = Browser;
Laya.Event = Event;
Laya._evcode = "eva" + "l";
Laya.isNativeRender_enable = false;
Laya.__classmap = ILaya.__classMap;
ILaya.Timer = Timer;
ILaya.Dragging = Dragging;
ILaya.Sprite = Sprite;
ILaya.TextRender = TextRender;
ILaya.Loader = Loader;
ILaya.ShaderCompile = ShaderCompile;
ILaya.ClassUtils = ClassUtils;
ILaya.SceneUtils = SceneUtils;
ILaya.Context = Context;
ILaya.Render = Render;
ILaya.MouseManager = MouseManager;
ILaya.Text = Text;
ILaya.Browser = Browser;
ILaya.Pool = Pool;
ILaya.Utils = Utils;
ILaya.Graphics = Graphics;
ILaya.WorkerLoader = WorkerLoader;
var libs = window._layalibs;
if (libs) {
libs.sort(function (a, b) {
return a.i - b.i;
});
for (var j = 0; j < libs.length; j++) {
libs[j].f(window, window.document, Laya);
}
}
let win = window;
if (win.Laya) {
win.Laya.Laya = Laya;
Object.assign(win.Laya, Laya);
}
else
win.Laya = Laya;