UNPKG

laya-coreui-es

Version:

laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改

283 lines (282 loc) 11 kB
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;