laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
62 lines (61 loc) • 2.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VertexBuffer2D = void 0;
const Buffer2D_1 = require("./Buffer2D");
const LayaGL_1 = require("../../layagl/LayaGL");
const Buffer_1 = require("./Buffer");
class VertexBuffer2D extends Buffer2D_1.Buffer2D {
get vertexStride() {
return this._vertexStride;
}
constructor(vertexStride, bufferUsage) {
super();
this._vertexStride = vertexStride;
this._bufferUsage = bufferUsage;
this._bufferType = LayaGL_1.LayaGL.instance.ARRAY_BUFFER;
this._buffer = new ArrayBuffer(8);
this._floatArray32 = new Float32Array(this._buffer);
this._uint32Array = new Uint32Array(this._buffer);
}
getFloat32Array() {
return this._floatArray32;
}
appendArray(data) {
var oldoff = this._byteLength >> 2;
this.setByteLength(this._byteLength + data.length * 4);
var vbdata = this.getFloat32Array();
vbdata.set(data, oldoff);
this._upload = true;
}
_checkArrayUse() {
this._floatArray32 && (this._floatArray32 = new Float32Array(this._buffer));
this._uint32Array && (this._uint32Array = new Uint32Array(this._buffer));
}
deleteBuffer() {
super._disposeResource();
}
_bindForVAO() {
var gl = LayaGL_1.LayaGL.instance;
gl.bindBuffer(gl.ARRAY_BUFFER, this._glBuffer);
}
bind() {
if (Buffer_1.Buffer._bindedVertexBuffer !== this._glBuffer) {
var gl = LayaGL_1.LayaGL.instance;
gl.bindBuffer(gl.ARRAY_BUFFER, this._glBuffer);
Buffer_1.Buffer._bindedVertexBuffer = this._glBuffer;
return true;
}
return false;
}
destroy() {
super.destroy();
this._byteLength = 0;
this._upload = true;
this._buffer = null;
this._floatArray32 = null;
}
}
exports.VertexBuffer2D = VertexBuffer2D;
VertexBuffer2D.create = function (vertexStride, bufferUsage = 0x88e8 ) {
return new VertexBuffer2D(vertexStride, bufferUsage);
};