tav-media
Version:
Cross platform media editing framework
19 lines (18 loc) • 767 B
JavaScript
import { WebMask as NativeWebMask } from '../core/web-mask';
import { getCanvas2D, releaseCanvas2D } from './canvas';
export class WebMask extends NativeWebMask {
static create(width, height) {
const webMask = new WebMask(getCanvas2D(), width, height);
return webMask;
}
update(GL) {
var _a;
const gl = (_a = GL.currentContext) === null || _a === void 0 ? void 0 : _a.GLctx;
const ctx = this.canvas.getContext('2d');
const imgData = ctx.getImageData(0, 0, this.canvas.width, this.canvas.height);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, imgData.width, imgData.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(imgData.data));
}
onDestroy() {
releaseCanvas2D(this.canvas);
}
}