laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
287 lines (286 loc) • 12.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Laya = void 0;
const ILaya_1 = require("./ILaya");
const Graphics_1 = require("./laya/display/Graphics");
const Input_1 = require("./laya/display/Input");
const Sprite_1 = require("./laya/display/Sprite");
const Stage_1 = require("./laya/display/Stage");
const Text_1 = require("./laya/display/Text");
const MouseManager_1 = require("./laya/events/MouseManager");
const LayaGL_1 = require("./laya/layagl/LayaGL");
const Loader_1 = require("./laya/net/Loader");
const LoaderManager_1 = require("./laya/net/LoaderManager");
const LocalStorage_1 = require("./laya/net/LocalStorage");
const URL_1 = require("./laya/net/URL");
const Render_1 = require("./laya/renders/Render");
const RenderSprite_1 = require("./laya/renders/RenderSprite");
const Context_1 = require("./laya/resource/Context");
const HTMLCanvas_1 = require("./laya/resource/HTMLCanvas");
const RenderTexture2D_1 = require("./laya/resource/RenderTexture2D");
const Browser_1 = require("./laya/utils/Browser");
const CacheManger_1 = require("./laya/utils/CacheManger");
const ClassUtils_1 = require("./laya/utils/ClassUtils");
const ColorUtils_1 = require("./laya/utils/ColorUtils");
const Dragging_1 = require("./laya/utils/Dragging");
const Pool_1 = require("./laya/utils/Pool");
const SceneUtils_1 = require("./laya/utils/SceneUtils");
const Stat_1 = require("./laya/utils/Stat");
const StatUI_1 = require("./laya/utils/StatUI");
const Timer_1 = require("./laya/utils/Timer");
const Utils_1 = require("./laya/utils/Utils");
const WeakObject_1 = require("./laya/utils/WeakObject");
const ShaderDefines2D_1 = require("./laya/webgl/shader/d2/ShaderDefines2D");
const SkinSV_1 = require("./laya/webgl/shader/d2/skinAnishader/SkinSV");
const PrimitiveSV_1 = require("./laya/webgl/shader/d2/value/PrimitiveSV");
const TextureSV_1 = require("./laya/webgl/shader/d2/value/TextureSV");
const Value2D_1 = require("./laya/webgl/shader/d2/value/Value2D");
const Shader_1 = require("./laya/webgl/shader/Shader");
const TextRender_1 = require("./laya/webgl/text/TextRender");
const RenderState2D_1 = require("./laya/webgl/utils/RenderState2D");
const ShaderCompile_1 = require("./laya/webgl/utils/ShaderCompile");
const WebGL_1 = require("./laya/webgl/WebGL");
const WebGLContext_1 = require("./laya/webgl/WebGLContext");
const WorkerLoader_1 = require("./laya/net/WorkerLoader");
const Mouse_1 = require("./laya/utils/Mouse");
const MeshVG_1 = require("./laya/webgl/utils/MeshVG");
const MeshQuadTexture_1 = require("./laya/webgl/utils/MeshQuadTexture");
const MeshTexture_1 = require("./laya/webgl/utils/MeshTexture");
const Event_1 = require("./laya/events/Event");
const Config_1 = require("./Config");
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_1.Browser.__init__();
var mainCanv = Browser_1.Browser.mainCanvas = new HTMLCanvas_1.HTMLCanvas(true);
var style = mainCanv.source.style;
style.position = 'absolute';
style.top = style.left = "0px";
style.background = "#000000";
if (!Browser_1.Browser.onKGMiniGame && !Browser_1.Browser.onAlipayMiniGame) {
Browser_1.Browser.container.appendChild(mainCanv.source);
}
Browser_1.Browser.canvas = new HTMLCanvas_1.HTMLCanvas(true);
Browser_1.Browser.context = Browser_1.Browser.canvas.getContext('2d');
Browser_1.Browser.supportLocalStorage = LocalStorage_1.LocalStorage.__init__();
Laya.systemTimer = new Timer_1.Timer(false);
Timer_1.Timer.gSysTimer = Laya.systemTimer;
Laya.startTimer = new Timer_1.Timer(false);
Laya.physicsTimer = new Timer_1.Timer(false);
Laya.updateTimer = new Timer_1.Timer(false);
Laya.lateTimer = new Timer_1.Timer(false);
Laya.timer = new Timer_1.Timer(false);
ILaya_1.ILaya.startTimer = Laya.startTimer;
ILaya_1.ILaya.lateTimer = Laya.lateTimer;
ILaya_1.ILaya.updateTimer = Laya.updateTimer;
ILaya_1.ILaya.systemTimer = Laya.systemTimer;
ILaya_1.ILaya.timer = Laya.timer;
ILaya_1.ILaya.physicsTimer = Laya.physicsTimer;
Laya.loader = new LoaderManager_1.LoaderManager();
ILaya_1.ILaya.Laya = Laya;
ILaya_1.ILaya.loader = Laya.loader;
WeakObject_1.WeakObject.__init__();
SceneUtils_1.SceneUtils.__init();
Mouse_1.Mouse.__init__();
WebGL_1.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_1.ILaya.Render.isConchApp) {
Laya.enableNative();
}
Laya.enableWebGLPlus();
CacheManger_1.CacheManger.beginCheck();
Laya.stage = new Stage_1.Stage();
ILaya_1.ILaya.stage = Laya.stage;
Utils_1.Utils.gStage = Laya.stage;
URL_1.URL.rootPath = URL_1.URL._basePath = Laya._getUrlPath();
MeshQuadTexture_1.MeshQuadTexture.__int__();
MeshVG_1.MeshVG.__init__();
MeshTexture_1.MeshTexture.__init__();
Laya.render = new Render_1.Render(0, 0, Browser_1.Browser.mainCanvas);
Laya.stage.size(width, height);
window.stage = Laya.stage;
WebGLContext_1.WebGLContext.__init__();
ShaderCompile_1.ShaderCompile.__init__();
RenderSprite_1.RenderSprite.__init__();
MouseManager_1.MouseManager.instance.__init__(Laya.stage, Render_1.Render.canvas);
Input_1.Input.__init__();
Stat_1.Stat._StatRender = new StatUI_1.StatUI();
Value2D_1.Value2D._initone(ShaderDefines2D_1.ShaderDefines2D.TEXTURE2D, TextureSV_1.TextureSV);
Value2D_1.Value2D._initone(ShaderDefines2D_1.ShaderDefines2D.TEXTURE2D | ShaderDefines2D_1.ShaderDefines2D.FILTERGLOW, TextureSV_1.TextureSV);
Value2D_1.Value2D._initone(ShaderDefines2D_1.ShaderDefines2D.PRIMITIVE, PrimitiveSV_1.PrimitiveSV);
Value2D_1.Value2D._initone(ShaderDefines2D_1.ShaderDefines2D.SKINMESH, SkinSV_1.SkinSV);
return Render_1.Render.canvas;
}
static install(comp) {
comp.forEach((c) => {
ILaya_1.ILaya.regClass(c);
ClassUtils_1.ClassUtils.regClass(c.name, c);
});
}
static _getUrlPath() {
return URL_1.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_1.Browser.window.onerror = function (msg, url, line, column, detail) {
if (erralert++ < 5 && detail)
this.alert("出错啦,请把此信息截图给研发商\n" + msg + "\n" + detail.stack);
};
}
else {
Browser_1.Browser.window.onerror = null;
}
}
static _runScript(script) {
return Browser_1.Browser.window[Laya._evcode](script);
}
static enableDebugPanel(debugJsPath = "libs/laya.debugtool.js") {
if (!window['Laya']["DebugPanel"]) {
var script = Browser_1.Browser.createElement("script");
script.onload = function () {
window['Laya']["DebugPanel"].enable();
};
script.src = debugJsPath;
Browser_1.Browser.document.body.appendChild(script);
}
else {
window['Laya']["DebugPanel"].enable();
}
}
static enableWebGLPlus() {
WebGLContext_1.WebGLContext.__init_native();
}
static enableNative() {
if (Laya.isNativeRender_enable)
return;
Laya.isNativeRender_enable = true;
if (Render_1.Render.supportWebGLPlusRendering) {
Shader_1.Shader.prototype.uploadTexture2D = function (value) {
var gl = LayaGL_1.LayaGL.instance;
gl.bindTexture(gl.TEXTURE_2D, value);
};
}
RenderState2D_1.RenderState2D.width = Browser_1.Browser.window.innerWidth;
RenderState2D_1.RenderState2D.height = Browser_1.Browser.window.innerHeight;
Browser_1.Browser.measureText = function (txt, font) {
window["conchTextCanvas"].font = font;
return window["conchTextCanvas"].measureText(txt);
};
Stage_1.Stage.clear = function (color) {
Context_1.Context.set2DRenderConfig();
var c = ColorUtils_1.ColorUtils.create(color).arrColor;
var gl = LayaGL_1.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_1.RenderState2D.clear();
};
Sprite_1.Sprite.drawToCanvas = Sprite_1.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_1.HTMLCanvas(false);
var ctx = canv.getContext('2d');
canv.size(canvasWidth, canvasHeight);
ctx.asBitmap = true;
ctx._targets.start();
RenderSprite_1.RenderSprite.renders[_renderType]._fun(sprite, ctx, offsetX, offsetY);
ctx.flush();
ctx._targets.end();
ctx._targets.restore();
return canv;
};
Object["defineProperty"](RenderTexture2D_1.RenderTexture2D.prototype, "uv", {
"get": function () {
return this._uv;
},
"set": function (v) {
this._uv = v;
}
});
HTMLCanvas_1.HTMLCanvas.prototype.getTexture = function () {
if (!this._texture) {
this._texture = this.context._targets;
this._texture.uv = RenderTexture2D_1.RenderTexture2D.flipyuv;
this._texture.bitmap = this._texture;
}
return this._texture;
};
}
}
exports.Laya = Laya;
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_1.Config;
Laya.Browser = Browser_1.Browser;
Laya.Event = Event_1.Event;
Laya._evcode = "eva" + "l";
Laya.isNativeRender_enable = false;
Laya.__classmap = ILaya_1.ILaya.__classMap;
ILaya_1.ILaya.Timer = Timer_1.Timer;
ILaya_1.ILaya.Dragging = Dragging_1.Dragging;
ILaya_1.ILaya.Sprite = Sprite_1.Sprite;
ILaya_1.ILaya.TextRender = TextRender_1.TextRender;
ILaya_1.ILaya.Loader = Loader_1.Loader;
ILaya_1.ILaya.ShaderCompile = ShaderCompile_1.ShaderCompile;
ILaya_1.ILaya.ClassUtils = ClassUtils_1.ClassUtils;
ILaya_1.ILaya.SceneUtils = SceneUtils_1.SceneUtils;
ILaya_1.ILaya.Context = Context_1.Context;
ILaya_1.ILaya.Render = Render_1.Render;
ILaya_1.ILaya.MouseManager = MouseManager_1.MouseManager;
ILaya_1.ILaya.Text = Text_1.Text;
ILaya_1.ILaya.Browser = Browser_1.Browser;
ILaya_1.ILaya.Pool = Pool_1.Pool;
ILaya_1.ILaya.Utils = Utils_1.Utils;
ILaya_1.ILaya.Graphics = Graphics_1.Graphics;
ILaya_1.ILaya.WorkerLoader = WorkerLoader_1.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;