UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

37 lines 3.38 kB
export class TgdBuffer { constructor(gl, options = {}) { var _a, _b; this.gl = gl; const buffer = gl.createBuffer(); if (!buffer) throw new Error("Unable to create WebGLBuffer!"); this._target = (_a = options === null || options === void 0 ? void 0 : options.target) !== null && _a !== void 0 ? _a : "ARRAY_BUFFER"; this._usage = (_b = options === null || options === void 0 ? void 0 : options.usage) !== null && _b !== void 0 ? _b : "STATIC_DRAW"; this.buffer = buffer; const { data } = options; if (data) { this.bufferData(Object.assign(Object.assign({}, options), { data })); } } get target() { return this._target; } bind(target) { const { gl, buffer } = this; this._target = target !== null && target !== void 0 ? target : this._target; gl.bindBuffer(gl[this._target], buffer); } bufferData(options) { var _a, _b; const { gl } = this; this._usage = (_a = options.usage) !== null && _a !== void 0 ? _a : this._usage; this._target = (_b = options.target) !== null && _b !== void 0 ? _b : this._target; this.bind(options.target); gl.bufferData(gl[this._target], options.data, gl[this._usage]); } delete() { const { gl, buffer } = this; gl.deleteBuffer(buffer); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1ZmZlci9idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJBLE1BQU0sT0FBTyxTQUFTO0lBTWxCLFlBQ29CLEVBQTBCLEVBQzFDLFVBQXFDLEVBQUU7O1FBRHZCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBRzFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtRQUU3RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sbUNBQUksY0FBYyxDQUFBO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxtQ0FBSSxhQUFhLENBQUE7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUN4QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFVBQVUsaUNBQU0sT0FBTyxLQUFFLElBQUksSUFBRyxDQUFBO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBOEI7UUFDL0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ3JDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQTJEOztRQUNsRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3pCLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0IsQ0FBQztDQUNKIn0=