UNPKG

laya-coreui-es

Version:

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

59 lines (58 loc) 1.85 kB
import { LayaGL } from "../../layagl/LayaGL"; import { Mesh2D } from "./Mesh2D"; export class MeshVG extends Mesh2D { static __init__() { var gl = 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(); } } MeshVG.const_stride = 12; MeshVG._POOL = [];