UNPKG

laya-coreui-es

Version:

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

76 lines (75 loc) 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubmitCanvas = void 0; const Matrix_1 = require("../../maths/Matrix"); const Value2D_1 = require("../shader/d2/value/Value2D"); const CONST3D2D_1 = require("../utils/CONST3D2D"); const RenderState2D_1 = require("../utils/RenderState2D"); const SubmitBase_1 = require("./SubmitBase"); class SubmitCanvas extends SubmitBase_1.SubmitBase { static create(canvas, alpha, filters) { var o = (!SubmitCanvas.POOL._length) ? (new SubmitCanvas()) : SubmitCanvas.POOL[--SubmitCanvas.POOL._length]; o.canv = canvas; o._ref = 1; o._numEle = 0; var v = o.shaderValue; v.alpha = alpha; v.defines.setValue(0); filters && filters.length && v.setFilters(filters); return o; } constructor() { super(SubmitBase_1.SubmitBase.TYPE_2D); this._matrix = new Matrix_1.Matrix(); this._matrix4 = CONST3D2D_1.CONST3D2D.defaultMatrix4.concat(); this.shaderValue = new Value2D_1.Value2D(0, 0); } renderSubmit() { var preAlpha = RenderState2D_1.RenderState2D.worldAlpha; var preMatrix4 = RenderState2D_1.RenderState2D.worldMatrix4; var preMatrix = RenderState2D_1.RenderState2D.worldMatrix; var preFilters = RenderState2D_1.RenderState2D.worldFilters; var preWorldShaderDefines = RenderState2D_1.RenderState2D.worldShaderDefines; var v = this.shaderValue; var m = this._matrix; var m4 = this._matrix4; var mout = Matrix_1.Matrix.TEMP; Matrix_1.Matrix.mul(m, preMatrix, mout); m4[0] = mout.a; m4[1] = mout.b; m4[4] = mout.c; m4[5] = mout.d; m4[12] = mout.tx; m4[13] = mout.ty; RenderState2D_1.RenderState2D.worldMatrix = mout.clone(); RenderState2D_1.RenderState2D.worldMatrix4 = m4; RenderState2D_1.RenderState2D.worldAlpha = RenderState2D_1.RenderState2D.worldAlpha * v.alpha; if (v.filters && v.filters.length) { RenderState2D_1.RenderState2D.worldFilters = v.filters; RenderState2D_1.RenderState2D.worldShaderDefines = v.defines; } this.canv['flushsubmit'](); RenderState2D_1.RenderState2D.worldAlpha = preAlpha; RenderState2D_1.RenderState2D.worldMatrix4 = preMatrix4; RenderState2D_1.RenderState2D.worldMatrix.destroy(); RenderState2D_1.RenderState2D.worldMatrix = preMatrix; RenderState2D_1.RenderState2D.worldFilters = preFilters; RenderState2D_1.RenderState2D.worldShaderDefines = preWorldShaderDefines; return 1; } releaseRender() { if ((--this._ref) < 1) { var cache = SubmitCanvas.POOL; this._mesh = null; cache[cache._length++] = this; } } getRenderType() { return SubmitBase_1.SubmitBase.TYPE_CANVAS; } } exports.SubmitCanvas = SubmitCanvas; SubmitCanvas.POOL = []; { SubmitCanvas.POOL._length = 0; }