laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
63 lines (62 loc) • 2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MeshVG = void 0;
const LayaGL_1 = require("../../layagl/LayaGL");
const Mesh2D_1 = require("./Mesh2D");
class MeshVG extends Mesh2D_1.Mesh2D {
static __init__() {
var gl = LayaGL_1.LayaGL.instance;
MeshVG._fixattriInfo = [5126 , 2, 0,
5121 , 4, 8];
}
constructor() {
super(MeshVG.const_stride, 4, 4);
this.canReuse = true;
this.setAttributes(MeshVG._fixattriInfo);
}
static getAMesh(mainctx) {
var ret;
if (MeshVG._POOL.length) {
ret = MeshVG._POOL.pop();
}
else
ret = new MeshVG();
mainctx && ret._vb._resizeBuffer(64 * 1024 * MeshVG.const_stride, false);
return ret;
}
addVertAndIBToMesh(ctx, points, rgba, ib) {
var startpos = this._vb.needSize(points.length / 2 * MeshVG.const_stride);
var f32pos = startpos >> 2;
var vbdata = this._vb._floatArray32 || this._vb.getFloat32Array();
var vbu32Arr = this._vb._uint32Array;
var ci = 0;
var sz = points.length / 2;
for (var i = 0; i < sz; i++) {
vbdata[f32pos++] = points[ci];
vbdata[f32pos++] = points[ci + 1];
ci += 2;
vbu32Arr[f32pos++] = rgba;
}
this._vb.setNeedUpload();
this._ib.append(new Uint16Array(ib));
this._ib.setNeedUpload();
this.vertNum += sz;
this.indexNum += ib.length;
}
releaseMesh() {
this._vb.setByteLength(0);
this._ib.setByteLength(0);
this.vertNum = 0;
this.indexNum = 0;
MeshVG._POOL.push(this);
}
destroy() {
this._ib.destroy();
this._vb.destroy();
this._ib.disposeResource();
this._vb.deleteBuffer();
}
}
exports.MeshVG = MeshVG;
MeshVG.const_stride = 12;
MeshVG._POOL = [];