laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
76 lines (75 loc) • 3.11 kB
JavaScript
;
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;
}