UNPKG

laya-coreui-es

Version:

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

72 lines (71 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubmitTarget = void 0; const SubmitKey_1 = require("./SubmitKey"); const Stat_1 = require("../../utils/Stat"); const WebGLContext_1 = require("../WebGLContext"); const BlendMode_1 = require("../canvas/BlendMode"); const CONST3D2D_1 = require("../utils/CONST3D2D"); class SubmitTarget { constructor() { this.blendType = 0; this._ref = 1; this._key = new SubmitKey_1.SubmitKey(); } renderSubmit() { var gl = WebGLContext_1.WebGLContext.mainContext; this._mesh.useMesh(gl); var target = this.srcRT; if (target) { this.shaderValue.texture = target._getSource(); this.shaderValue.upload(); this.blend(); Stat_1.Stat.renderBatches++; Stat_1.Stat.trianglesFaces += this._numEle / 3; gl.drawElements(gl.TRIANGLES, this._numEle, gl.UNSIGNED_SHORT, this._startIdx); } return 1; } blend() { if (BlendMode_1.BlendMode.activeBlendFunction !== BlendMode_1.BlendMode.fns[this.blendType]) { var gl = WebGLContext_1.WebGLContext.mainContext; gl.enable(gl.BLEND); BlendMode_1.BlendMode.fns[this.blendType](gl); BlendMode_1.BlendMode.activeBlendFunction = BlendMode_1.BlendMode.fns[this.blendType]; } } getRenderType() { return 0; } releaseRender() { if ((--this._ref) < 1) { var pool = SubmitTarget.POOL; pool[pool._length++] = this; } } static create(context, mesh, sv, rt) { var o = SubmitTarget.POOL._length ? SubmitTarget.POOL[--SubmitTarget.POOL._length] : new SubmitTarget(); o._mesh = mesh; o.srcRT = rt; o._startIdx = mesh.indexNum * CONST3D2D_1.CONST3D2D.BYTES_PIDX; o._ref = 1; o._key.clear(); o._numEle = 0; o.blendType = context._nBlendType; o._key.blendShader = o.blendType; o.shaderValue = sv; o.shaderValue.setValue(context._shader2D); if (context._colorFiler) { var ft = context._colorFiler; sv.defines.add(ft.type); sv.colorMat = ft._mat; sv.colorAlpha = ft._alpha; } return o; } } exports.SubmitTarget = SubmitTarget; SubmitTarget.POOL = []; { SubmitTarget.POOL._length = 0; }